過濾器中的doFilter方法:       public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
       { 
               String str=request.getParameter("uname");
            if(str!=null)
            {   
               chain.doFilter(request,response);
            }
            else
            {
               str="error";
                chain.doFilter(request,response);
            }       }form.html
<html>
<head></head>
<body>
<form action="Filterdemo.jsp" method="post">
用户名:<input type="text" name="uname">
<input type="submit" value="提交">
</form>
</body>
</html>Filterdemo.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<html>
  <head></head>
  
  <body> 
  <%
     request.setCharacterEncoding("GB2312"); 
  %>
  <%=request.getParameter("uname") %>
    
  </body>
</html>web.xml配置
<filter>
<filter-name>guolv</filter-name>
<filter-class>jian.MyFilter</filter-class>
</filter>
  <filter-mapping>
<filter-name>guolv</filter-name>
<url-pattern>/Filterdemo.jsp</url-pattern>
  </filter-mapping>為什麽我在form.html中的文本框中沒有輸入任何值的時候,跳转到Filterdemo.jsp不会出现error,还有chain.doFilter(request,response);这句是干什么用的

解决方案 »

  1.   

    因为还要判断“”空字符串啊!chain.doFilter(request,response)这个是把相应的请求与响应转发到响应的servlet
      

  2.   

    判断为空的时候有以下几种情况:"","null",null
      

  3.   

    你的代码好像并没有走到doFilter方法   你觉得Filterdemo.jsp会出现error吗?
      

  4.   

    chain.doFilter(request,response);是经过过滤后将其转发至下一步,或是另一个Filter,或是Servlet.......
      

  5.   

    引用 1 楼 ycf330 的回复:
    因为还要判断“”空字符串啊!chain.doFilter(request,response)这个是把相应的请求与响应转发到响应的servlet