过滤器过滤后出现空白页!
可是我没有让它转向空白页,
是什么原因啊?

解决方案 »

  1.   

    没有错误信息吗?
    把你过滤器中的代码以及web.xml配置过滤器的地方贴出来
      

  2.   

    package filters;import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.IOException;import domain.User;
    public class UserValidateFilter implements Filter
    {
    private FilterConfig filterConfig=null;

    public void init(FilterConfig filterConfig)
    {
    this.filterConfig=filterConfig;
    } public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
    throws IOException,ServletException
    {
    User user=(User)((HttpServletRequest)request).getSession().getAttribute("user");
    if(user==null)
    {
    request.getRequestDispatcher("../MainPage.jsp").forward(request,response);
    }
    }

    public void destroy()
    {
    filterConfig=null;
    }}
      <filter>
    <filter-name>userValidate</filter-name>
    <filter-class>filters.UserValidateFilter</filter-class>
    </filter>

    <filter-mapping>
    <filter-name>userValidate</filter-name>
    <url-pattern>/jsp/*</url-pattern>
    <dispather>request</dispather>
    <dispather>forward</dispather>
    </filter-mapping>
      

  3.   

    java.lang.IllegalStateException: getOutputStream() has already been called for this response
    at org.apache.catalina.connector.Response.getWriter(Response.java:604)
    at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:197)
    at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
    at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
    at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
    at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:119)
    at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:79)
    at org.apache.jsp.image_jsp._jspService(image_jsp.java:146)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:818)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Unknown Source)
      

  4.   


        public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
        throws IOException,ServletException
        {
             request.setCharacterEncoding("utf-8");
             chain.doFilter(request, response);
        }
      

  5.   

       <filter>
    <filter-name>过虑器的别名</filter-name>
    <filter-class>过虑器的包名.类名</filter-class>
    </filter> <filter-mapping>
    <filter-name>过虑器的别名</filter-name>
    <servlet-name>页面1 的别名</servlet-name>
    </filter-mapping>
    <servlet>
    <servlet-name>页面1 的别名</servlet-name>
    <servlet-class>
    页面1 的包名.类名
    </servlet-class> </servlet>
    <servlet-mapping>
    <servlet-name>页面1 的别名</servlet-name>
    <url-pattern>页面1 </url-pattern>
    </servlet-mapping>
     
         <!-- 在页面1的前面设置过虑器   -->
      

  6.   

    将<filter-mapping>
    中的
    <dispather>request</dispather>
    <dispather>forward</dispather>
    这两句代码去掉试试~~