[转]doFilter使用_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > [转]doFilter使用

[转]doFilter使用

 2015/3/24 21:32:50  ft4453080  程序员俱乐部  我要评论(0)
  • 摘要:首先要明确。Filter是JSP2.0里面的东西,顾名思义,也就是过滤器的意思和你说说如何用吧。要用Filter就得在web.xml中配置例://配置方法和配置普通的Servlet一样的哦<filter><filter-name>PrivFilter</filter-name><filter-class>com.myPriv.filter.PrivFilter</filter-class></filter><
  • 标签:使用

首先要明确。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继续运行哦

发表评论
用户名: 匿名