---
title: "AccessBean"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/125159-accessbean"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "AG"
published: "2005-03-26T11:22:06.000Z"
updated: "2005-03-29T21:49:03.000Z"
replies: 15
views: 789
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/125159-accessbean"
---

# AccessBean

## #1 — AG, 2005-03-26T11:22Z

Har börjat arbeta på et böna som jag vill skall returnera ett sant eller falskt värde.
Denna skall användas för att att se om en användre är inloggad, och ifall denna har access till den berörda sidan.
Helst skulle jag vilja kolla på jsp-nivå:

```
ilia.admin.access.AccessBean ab = new ilia.admin.access.AccessBean();

if (!ab.getAccess()) {
	response.sendRedirect("no_access.jsp");
	return;	
}
```

och ha en böna i stil med:

```
package ilia.admin.access;

import ilia.*;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;

public class AccessBean {

	ConnectionPool pool = new ConnectionPool(); 
	Connection con = null;

	public boolean getAccess() throws ClassNotFoundException, SQLException{

		int userPermission = 8;
		String URI = "/ilia/access.jsp";
		PreparedStatement pStmt2 = con.prepareStatement("SELECT * FROM admin_access WHERE status = 1 and url = ? and value = value & ?");
		pStmt2.setString(1, URI);
		pStmt2.setInt(2, userPermission);
		ResultSet rs2 = pStmt2.executeQuery();
			
		if(!rs2.next()){
			return false;

		}
		else{
			return true;
		} 
		pool.putConnection(con);

	}
}
```

Så mina problem är:
1\. Hur kan jag få böna att antingen returnera ett true, eller ett false värde.
2\. Hur kan jag göra så jag kan använda sessions inne i min böna.
3\. Kan jag på något sätt använda, "request.getRequestURI()" inne i bönan?

tack
Andreas

Permalänk: https://www.webforum.nu/p/125159

## #2 — Viktor, 2005-03-26T11:34Z

1\. Gör du inte redan det? Om inte så förstår jag inte riktigt frågan :)
2\. Skicka med pageContext som en parameter till funktionen i din böna, då kommer du åt allt som du kommer åt i JSP sidan.
3\. Se svaret på fråga 2 :)

Sen två saker till, funktionen avslutas direkt efter att du har anroppat return, eftersom du alltid anroppar return, antingen true eller false så kommer koden "pool.putConnection(con);" aldrig att köras och en connection kommer aldrig att lämnat tillbaka, samma sak om något går fel. Kör med try, catch och finally block istället och i t.ex. catch så kan du kasta vidare ett exception om du vill det, men då kommer ändå finally blocket att köras (och där har du "pool.putConnection(con);" koden).

/Viktor

Permalänk: https://www.webforum.nu/p/1580451

## #3 — AG, 2005-03-26T15:12Z

1\. Får felmeddelande, se nedan. Har nu lagt till try, catch, finally också.

```
package ilia.admin.access;

import ilia.*;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;

public class AccessBean {

	ConnectionPool pool = new ConnectionPool(); 
	Connection con = null;

	public boolean getAccess() throws ClassNotFoundException, SQLException{
		try{
			int userPermission = 8;
			String URI = "/ilia/access.jsp";
			PreparedStatement pStmt2 = con.prepareStatement("SELECT * FROM admin_access WHERE status = 1 and url = ? and value = value & ?");
			pStmt2.setString(1, URI);
			pStmt2.setInt(2, userPermission);
			ResultSet rs2 = pStmt2.executeQuery();
			
			if(!rs2.next()){
				return false;
			}
			else{
				return true;
			}
		}
		catch(Exception exp){
			System.out.println(exp);
		}
		finally{
			pool.putConnection(con);
		}

	}
}
```

2\. Hur skall jag skicka med pageContext?

tack
Andreas

Permalänk: https://www.webforum.nu/p/1580503

## #4 — Viktor, 2005-03-26T15:43Z

1\. Vad? Var?
2\. I din böna skriver du såhär,

```
public boolean getAccess(PageContext context)
```

(och lägger till importen för PageContext, javax.xxxxx.PageContext)
och i JSP filen skriver du,

```
if (!ab.getAccess(pageContext)) {
	response.sendRedirect("no_access.jsp");
	return;	
}
```

/Viktor

Permalänk: https://www.webforum.nu/p/1580505

## #5 — AG, 2005-03-26T18:41Z

Oops, missade felmeddelande. det skall vara:

```
:39
missing return statement
}
```

Andreas

Permalänk: https://www.webforum.nu/p/1580552

## #6 — Viktor, 2005-03-26T19:14Z

Eftersom du nu har en catch och en finally så kan programmet hoppa över ditt return statement om något går fel innan det så du måste ha en return i slutet av funktionen också.

```
		finally{
			pool.putConnection(con);
		}
		return(false); //om något går fel, ge inte access.

	}
```

/Viktor

Permalänk: https://www.webforum.nu/p/1580559

## #7 — AG, 2005-03-27T15:16Z

Tack, ligger pagecontext i paketet, "javax.servlet.jsp."?

Andreas

Permalänk: https://www.webforum.nu/p/1580817

## #8 — AG, 2005-03-27T15:19Z

Får fel i AccessBean, att den inte kan hitta 'request' i 'uri2' med följande kod:

```
package ilia.admin.access;

import ilia.*;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
import javax.servlet.jsp.PageContext;

public class AccessBean {

	ConnectionPool pool = new ConnectionPool(); 
	Connection con = null;

	public boolean getAccess(PageContext context) throws ClassNotFoundException, SQLException{
		try{
			String uri2 = request.getRequestURI();
			int userPermission = 8;
			String URI = "/ilia/access.jsp";
			PreparedStatement pStmt2 = con.prepareStatement("SELECT * FROM admin_access WHERE status = 1 and url = ? and value = value & ?");
			pStmt2.setString(1, URI);
			pStmt2.setInt(2, userPermission);
			ResultSet rs2 = pStmt2.executeQuery();
			
			if(!rs2.next()){
				return false;
			}
			else{
				return true;
			}
		}
		catch(Exception exp){
			System.out.println(exp);
		}
		finally{
			pool.putConnection(con);
		}
		return(false);
	}
}
```

tack
Andreas

Permalänk: https://www.webforum.nu/p/1580819

## #9 — Viktor, 2005-03-27T15:35Z

[Java API - PageContext](http://java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html), request blir inte en global variabel för att du skickar med PageContext utan du måste hämta ditt request objekt från din PageContext,

```
context.getRequest().getRequestURI();
```

/Viktor

Permalänk: https://www.webforum.nu/p/1580825

## #10 — AG, 2005-03-28T11:29Z

Tack igen Viktor, men jag hänger inte med.
Skall jag använda något i stil med, 
"String uri2 = context.getRequest().getRequestURI();"

Andreas

Permalänk: https://www.webforum.nu/p/1581044

## #11 — AG, 2005-03-28T15:11Z

Fullständig kod ser nu ut:

```
package ilia.admin.access;

import ilia.*;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
import javax.servlet.jsp.PageContext;

public class AccessBean {

	ConnectionPool pool = new ConnectionPool(); 
	Connection con = null;

	public boolean getAccess(PageContext context) throws ClassNotFoundException, SQLException{
		try{
			String uri2 = context.getRequest().getRequestURI();
			int userPermission = 8;
			String URI = "/ilia/access.jsp";
			PreparedStatement pStmt2 = con.prepareStatement("SELECT * FROM admin_access WHERE status = 1 and url = ? and value = value & ?");
			pStmt2.setString(1, URI);
			pStmt2.setInt(2, userPermission);
			ResultSet rs2 = pStmt2.executeQuery();
			
			if(!rs2.next()){
				return false;
			}
			else{
				return true;
			}
		}
		catch(Exception exp){
			System.out.println(exp);
		}
		finally{
			pool.putConnection(con);
		}
		return(false);
	}
}
```

Genererar fel:

```
ilia/admin/access/AccessBean.java:19: cannot find symbol
symbol : method getRequestURI()
location : interface javax.servlet.ServletRequest
String uri2 = context.getRequest().getRequestURI();
1 error
```

tack
Andreas

Permalänk: https://www.webforum.nu/p/1581127

## #12 — antilizaer, 2005-03-28T17:01Z

Du måste casta om ServletRequest objektet till ett HttpServletRequest objekt för att använda dig av getRequestURI() metoden.

```
String uri2 = ((HttpServletRequest)context.getRequest()).getRequestURI();
```

Permalänk: https://www.webforum.nu/p/1581207

## #13 — AG, 2005-03-28T19:30Z

Nepp, får nu fel:

```
C:\Tomcat 5.5\webapps\ilia\WEB-INF\classes>javac ilia/admin/access/AccessBean.ja
va
ilia/admin/access/AccessBean.java:20: cannot find symbol
symbol  : class HttpServletRequest
location: class ilia.admin.access.AccessBean
                        String uri2 = ((HttpServletRequest)context.getRequest())
.getRequestURI();
                                        ^
1 error
```

Andreas

Permalänk: https://www.webforum.nu/p/1581271

## #14 — Viktor, 2005-03-28T19:33Z

Har du importerat HttpServletRequest i din java fil?

> import javax.servlet.http.HttpServletRequest

/Viktor

Permalänk: https://www.webforum.nu/p/1581273

## #15 — AG, 2005-03-29T20:26Z

Skumt importerade "import javax.servlet.\*;" då fungerade inte, men när jag specifierade som du beskrev Viktor så fungerade det. Tack.
Hur gör jag nu lättas för att hämta session-värden?

Andreas

Permalänk: https://www.webforum.nu/p/1581733

## #16 — Viktor, 2005-03-29T21:49Z

> **AG skrev:**
>
> Skumt importerade "import javax.servlet.\*;" då fungerade inte, men när jag specifierade som du beskrev Viktor så fungerade det. Tack.

**Http**ServletRequest ligger inte i det paketet utan i

```
import javax.servlet[b].http.[/b]HttpServletRequest
```

> **AG skrev:**
>
> Hur gör jag nu lättas för att hämta session-värden?

```
HttpSession session=((HttpServletRequest)context.getRequest()).getSession();
System.out.println(session.getAttribute("Kalle"));
```

/Viktor

Permalänk: https://www.webforum.nu/p/1581778

---

Tråden på webben: https://www.webforum.nu/amne/java/125159-accessbean
