Tomcat:Error Pages werden nicht angezeigt

J2EE, JSP, JSF, VisualWeb-Pack usw.

Moderator: wegus

Antworten
aze
Beiträge: 116
Registriert: 03.08.2009, 13:50

Tomcat:Error Pages werden nicht angezeigt

Beitrag von aze » 08.10.2011, 20:38

Hi

Ich mache gerade meine ersten Gehversuche mit JSP und Tomcat.

Ich habe gerade einen ServletFilter geschrieben, der für jeden Request auf einen Unterbereich "user" prüfen soll ob der Benutzer angemeldet ist und wenn nicht einen statuscode 401 zurückgibt.Das funktioniert auch soweit.Ebenfalls habe ich eine Errorpage 401.jsp erzeugt die auf eine 401 Fehlermeldung reagiert.Diese funktioniert leider nicht.

Hier der Deployment Deskriptor:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>S2DashboardDesktopBackEnd</display-name>
    <filter>
        <filter-name>UserFilter</filter-name>
        <filter-class>filters.UserFilter</filter-class>
    <init-param>
        <param-name>log_category</param-name>
        <param-value>DurationLog</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>UserFilter</filter-name>
        <url-pattern>/user/*</url-pattern>
    </filter-mapping>
    <error-page>
        <error-code>401</error-code>
        <location>/errorPages/401.jsp</location>
    </error-page>
</web-app>
Hier der Filter:

Code: Alles auswählen

package filters;
 
 
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
 
 
public class UserFilter implements Filter {
 
    
   public void init(FilterConfig config) throws ServletException {
       
 
   }
   public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
       HttpServletRequest httpRequest = (HttpServletRequest) request;
       HttpServletResponse httpResponse = ((HttpServletResponse) response);
       HttpSession currentSession = httpRequest.getSession();
       if(currentSession.getAttribute("username") == null || currentSession.getAttribute("password") == null){ 
            httpResponse.setStatus(401);
            }
            else{
                chain.doFilter(httpRequest, httpResponse);
            }
        
       }
      
 
 
   public void destroy() {
   }
}

aze
Beiträge: 116
Registriert: 03.08.2009, 13:50

Re: Tomcat:Error Pages werden nicht angezeigt

Beitrag von aze » 12.10.2011, 14:51

Hab den Fehler gefunden.

Statt setstatus(401) muß man setError(401) schreiben !

Antworten