# Session Exception



## MQue (16. Jun 2009)

Hallo,

ich hab folgende Methode (doPost), welche auch schön aufgerufen wird wenn ich bei meiner form "submit" drücke, was ich nicht verstehe ist, dass der else - Zweig nie aufgerufen wird und ich daher im if Zweig bei list.add(bean); eine NullpointerException bekomme,
Wie kann das sein, kann sich das jemand erklären, die Session muss ja am Anfang null sein, oder, wei gibts das, dass ich nur in den if- Zweig komme?

Vielen Dank für Hilfe,
lg



```
@SuppressWarnings("unchecked")
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		final AnmeldeBean bean = new AnmeldeBean();
		bean.setVorname(request.getParameter("vorname"));
		bean.setNachname(request.getParameter("nachname"));
		bean.setPlz(request.getParameter("plz"));		
		HttpSession session = request.getSession(false);			
		if(session != null) {										
			final ArrayList<AnmeldeBean> list = (ArrayList<AnmeldeBean>) session.getAttribute("Liste");			
			list.add(bean);
			}
		else {
			session = request.getSession(true);				
			final ArrayList<AnmeldeBean> list = new ArrayList<AnmeldeBean>();
			list.add(bean);
			session.setAttribute("Liste", list);
			}
		final String url = response.encodeURL("/AnmeldeListe.jsp");
		final RequestDispatcher view = request.getRequestDispatcher(url);
		view.forward(request, response);
		}
```


----------



## maki (16. Jun 2009)

> Wie kann das sein, kann sich das jemand erklären, die Session muss ja am Anfang null sein, oder, wei gibts das, dass ich nur in den if- Zweig komme?


Der ServletContainer erzeugt eine neue Session ID wenn keine vorhanden ist bevor der Request dein Servlet errreicht, die session ist nie null.
Du kannst aber prüfen ob eine Session neu ist


----------



## MQue (17. Jun 2009)

maki hat gesagt.:


> Der ServletContainer erzeugt eine neue Session ID wenn keine vorhanden ist bevor der Request dein Servlet errreicht, die session ist nie null.
> Du kannst aber prüfen ob eine Session neu ist



Vielen Dank erstmal, war gestern schon verzweifelt, ganz versteh ichs aber immer noch nicht, wir haben nämlich den Pseudocode so vorgegeben bekommen, der Prof geht also davon aus, dass keine Session vom Container erzeugt wird für eine (neue) Anfrage,
Kann man das auch irgendwie unterbinden (z.B.: im deployment descriptor)?

dann würde man session.getSession(false) auch nie benötigen, da sowieso immer eine Session existiert, oder?

Vielen Dank!!,


----------



## MQue (22. Jun 2009)

maki hat gesagt.:


> Der ServletContainer erzeugt eine neue Session ID wenn keine vorhanden ist bevor der Request dein Servlet errreicht, die session ist nie null.
> Du kannst aber prüfen ob eine Session neu ist



Jetzt hab ich nochmal einen Spezialfall zu diesem Thema und zwar hab ich als start eine index.jsp und diese leitet dann weiter an ein Servlet,
wenn ich jetzt im Servlet abfrage ob die Session neu ist (session.isNew()), dann bekomme ich immer false, 
heißt das, dass diese Session schon von der jsp angelegt wird und deshalb im Servlet sowieso nie null ist?

lg


----------



## maki (22. Jun 2009)

> Jetzt hab ich nochmal einen Spezialfall zu diesem Thema und zwar hab ich als start eine index.jsp und diese leitet dann weiter an ein Servlet,
> wenn ich jetzt im Servlet abfrage ob die Session neu ist (session.isNew()), dann bekomme ich immer false,
> heißt das, dass diese Session schon von der jsp angelegt wird und deshalb im Servlet sowieso nie null ist?


Natürlich, eine JSP ist auch nur ein Servlet.


----------



## MQue (22. Jun 2009)

maki hat gesagt.:


> Natürlich, eine JSP ist auch nur ein Servlet.



nie new ist, also isNew() immer false zurückgibt, wollte ich schreiben, sorry!


----------

