Announcement

Collapse
No announcement yet.

jsp und spring - fehler (org.apache.jasper....)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • jsp und spring - fehler (org.apache.jasper....)

    Hallo,
    ich benutze Spring und habe eine JSP Seite implementiert, mit welcher ich gerne die url-parameter abfragen möchte. Das Projekt funktioniert sehr gut, nur das letzte, was ich eingetragen habe, funktioniert nicht. Wäre toll, wenn mir jemand helfen könnte.

    Hier zunächst der Quellcode (mit der Änderung, die nicht funktioniert, in rot):

    Code:
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Welcome!</title>
    </head>
    <body>
    Dies ist die Startseite.<br/>
    Auf diese Seite haben alle User Zugriff!<br/>
    <br/>
    
    <sec:authorize ifNotGranted="ROLE_ADMIN,ROLE_USER">
    <u>Login</u><br/>
    <br/>
    <form action="${pageContext.request.contextPath}/j_spring_security_check" method="post">
    	Username <input type="text" name="j_username"><br/>
    	Password <input type="text" name="j_password"><br/>
    	<input type="submit" value="Login">
    </form>
    <br/>
    </sec:authorize>
    
    <% 
    
    if (request.getQueryString().equals("login_error=1")) {
    	out.print("Login failed!");
    	} 
    
    %>
    
    <sec:authorize ifAllGranted="ROLE_USER" ifNotGranted="ROLE_ADMIN">
    <font color="990000">Eingeloggt als User</font>
    </sec:authorize>
    
    <sec:authorize ifAllGranted="ROLE_ADMIN">
    <font color="990000">Eingeloggt als Admin</font>
    </sec:authorize>
    <br/>
    <br/>
    <a href="user.html">Für User!</a><br/>
    <a href="admin.html">Nur für Admins!</a>
    <br/>
    <sec:authorize ifAllGranted="ROLE_ADMIN">
    <a href="admin2.html">Geheimer Link - Nur für Admins!</a>
    </sec:authorize>
     
     <sec:authorize ifAnyGranted="ROLE_USER,ROLE_ADMIN">
    <p><a href="${pageContext.request.contextPath}/j_spring_security_logout">Logout</a>
    </sec:authorize>
    
    <br/><br/>
    
    Request URI: <%= request.getRequestURI() %>
    <br>
    Request Parameter: <%= request.getParameterNames() %>
    <br>
    Request URL: <%= request.getRequestURL() %>
    <br>
    Request Header: <%= request.getHeader("login_error") %>
    <br>
    getQueryString Request: <%= request.getQueryString() %>
    <br>
    Request Protocol: <%= request.getProtocol() %>
    <br>
    Servlet path: <%= request.getServletPath() %>
    <br>
    Content length: <%= request.getContentLength() %>
    <br>
    Server name: <%= request.getServerName() %>
    <br>
    Server port: <%= request.getServerPort() %>
    <br>
    Remote user: <%= request.getRemoteUser() %>
    <br>
    Remote address: <%= request.getRemoteAddr() %>
    <br>
    Remote host: <%= request.getRemoteHost() %>
    <br>
    Authorization scheme: <%= request.getAuthType() %> 
    <br>
    Locale: <%= request.getLocale() %>
    
    
    </body>
    </html>
    Hier die Fehlermeldung:
    Code:
    org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 34
    
    31: 
    32: <% 
    33: 
    34: if (request.getQueryString().equals("login_error=1")) {
    35: 	out.print("Login failed!");
    36: 	} 
    37: 
    
    
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
    	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
    	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    
    
    root cause 
    
    java.lang.NullPointerException
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:97)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
    	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
    	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
    	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

  • #2
    Wenn kein Querystring im Request ist, dann...

    Hallo toki,

    hier mal das Javadoc zur Methode getQuerystring, entnommen aus http://java.sun.com/products/servlet...tQueryString():
    getQueryString
    public java.lang.String getQueryString()Returns the query string that is contained in the request URL after the path. This method returns null if the URL does not have a query string. Same as the value of the CGI variable QUERY_STRING.
    Returns:
    a String containing the query string or null if the URL contains no query string
    Die wichtige Info steckt im letzten Satz "...or null if the URL contains no query string". D.h. immer, wenn Du die Seite ohne Querystring aufrufst, liefert getqueryString() null. Wenn Du dann darauf equals aufrufts, fliegt die NullpointerException.

    Gruß ngomo

    P.S. Ach ja, fals nicht bekannt: Der Querystring ist der letzte Teil er url wo name1=wert1&name2=wert2... steht.
    http://www.winfonet.eu

    Comment


    • #3
      Hallo!

      Vielen Dank - nach abfangen mit try catch funktioniert das ganze.
      Noch eine Frage - hast du eine Idee, warum ich

      getRequestParameter("login_error")

      nicht verwenden kann?

      direkt nach dem Parameter login_error zu fragen und dann zu differenzieren wäre nämlich schöner als immer zu schauen, ob in der Url "login_error=1" als text hinten dran vorkommt...

      Comment


      • #4
        Du meinst wohl request.getParameter("login_error") ? Klappt das nicht?

        Comment


        • #5
          ja, damit klappt es!! vielen Dank!!

          Comment

          Working...
          X