您的位置:首页 > 大数据 > 人工智能

doFilter如何使用

2017-03-16 21:54 190 查看
原文地址: http://blog.sina.com.cn/s/blog_5bba80460100dlsu.html

我来给你简单的说一下吧:)

首先要明确。Filter是JSP2.0里面的东西 ,顾名思义,也就是过滤器的意思

和你说说如何用吧。要用Filter就得在web.xml中配置

例:

//配置方法和配置普通的Servlet一样的哦

<filter>

      <filter-name>PrivFilter</filter-name>

      <filter-class>com.myPriv.filter.PrivFilter</filter-class>

   </filter>

<filter-mapping>

    <filter-name>PrivFilter</filter-name>

    <url-pattern>/resource/*</url-pattern>

</filter-mapping>

//com.myPriv.filter.PrivFilter是这个过滤器所在的位置。当然这个过滤器必须实现接口javax.servlet.Filter。

然后就可以在过滤器这个接口方法中增加过滤条件了

public void doFilter(ServletRequset request, ServletResponse response,FilterChain chain)

thows ServletException, IOException{



然后你可以把过滤条件写出来,写在doFilter方法里面

我这里写一个简单的例子:

public void doFilter(ServletRequest req, ServletResponse res,

   FilterChain chain) throws IOException, ServletException {

   HttpServletRequest request = (HttpServletRequest) req;

   HttpServletResponse response = (HttpServletResponse) res;

   HttpSession session=request.getSession();

   ServletContext application=session.getServletContext();

  

      if(session.getAttribute("userSession")==null)

      {

       response.sendRedirect("error/priv_error.jsp");

       return;

      }

      else

      {

       chain.doFilter(request, response);

      }

}

在上面的这个过滤方法中,如果session.getAttribute("userSession")==null)那就跳转到错误页面。如果不为空,则继续

所以

chain.doFilter(request, response);的意思就是跳转到下个页面,

明白了吧?

如果还有不明白。,可以留下你的问题

------------------------

还有忘了回答你的问题 了。java会在处理每一个Servlet时都走一次Filter的。所以你不必担心你的过滤不起作用了

而且chain.doFilter(request.response);

是必须的。没有他,程序就不会继续了:)他是让你的request和response继续运行哦

--------------------------------

这个你就可接写/*

好了。它是说对哪些范围起作里这个过滤器

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息