# null bei HttpServletRequest-Funktionen, wieso?



## h.gerg (20. Nov 2006)

Hallo,

ich bin neu im Thema J2EE und probiere etwas rum. Speziell mit HttpRequest und HttpResponse. Nun gibt es da ja so schöne hilfreiche Funktionen um z.B herauszufinden welche Seite aufgerufen wurde und von wem etc. Als ich damit etwas rumprobierte hab ich hier im Forum gelesen das meistens die Funktion getPathInfo() benutzt wird. Als ich dies jedoch bei mir probiert habe kam immer null raus. Woran liegt das? Ich habe diese Funktion mehrfach getestet und bekomme in jeder Situation null. Was genau würde die Funktion denn alles auspucken an Infos? Ich benutze nun getServletPath() um an die aufgerufene Seite und ggf. den Unterordner in dem sie liegt zu bekommen... 
Selbes Problem hatte ich als ich die Remote-Funktionen testen wollte...getRemoteUser() liefert immer null...Wieso?
getRemoteAddress und getRemotePort hingegen funktionieren. 
Gibt es noch Möglichkeiten weitere Informationen über den Client herauszufinden, als nur IP und Port?

Vielen Dank,
H.Gerg


----------



## KSG9|sebastian (20. Nov 2006)

zeig mal n bissl code...
getRemoteUser() liefert ein Userobjekt..aber nur wenn auch ein User eingeloggt ist (über die jeweilige Funktion des AppServers)


----------



## h.gerg (20. Nov 2006)

Hallo,

das mit getRemoteUser ist mir auch schon aufgefallen...also das das nur geht wenn der Client über einen gewissen Mechanismus eingeloggt ist. Aber das mit getPathInfo() wurmt mich. Ziel ist es in einem Filter herauszubekommen welche Seite der Benutzer aufrufen will. Das wollte ich mit diesem viel gerühmten getPathInfo() machen...aber tut nicht bei mir. 

```
public class AuthorizationFilter implements Filter{
       FilterConfig config = null;
       ServletContext servletContext = null;

       public AuthorizationFilter(){}

       public void init(FilterConfig filterConfig) throws ServletException{
             config = filterConfig;
            servletContext = config.getServletContext();
       }

       public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,                     
                   ServletException {
	     HttpServletRequest httpRequest = (HttpServletRequest) request;
	     HttpServletResponse httpResponse = (HttpServletResponse) response;
		
	     String contextPath = httpRequest.getContextPath();
	     String pathInfo = httpRequest.getPathInfo();              // gibt null zurück
	     String servPath = httpRequest.getServletPath();         // gibt /jsf/seiteXYZ.jsf zurück 
	     
	     System.out.println(contextPath);
	     System.out.println(pathInfo);
	     System.out.println(servPath);
             ...
	}

        public void destroy(){}
}
```

Also wie gesagt getServletPath() gibt mir das was ich suche zurück. Nur versteh ich nicht wieso getPathInfo nicht tut. Unabhängig davon ob ich das nun umgehen kann, oder ob es sinnvoll ist so wie ich das gemacht habe (spricht was dagegen?) was würde mir denn PathInfo an Infos geben???

Noch ne andere Frage dazu...kann man noch mehr Infos abgesehen von IP und Port vom Clienten herausfinden? 

Vielen Dank,
H.Gerg


----------

