基于注解方式的Filter执行顺序
2014-04-07 15:45
603 查看
package com.joyplus.filter; 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.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; @WebFilter(filterName="sessionFilter",urlPatterns="/*") public class ASessionFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest)request; SessionManager.sessionLocal.set(httpServletRequest.getSession()); filterChain.doFilter(request, response); SessionManager.releaseCurrentSession(); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } } package com.joyplus.filter; 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.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import com.csis.helper.SpringHelper; import com.joyplus.beans.ControllerBean; import com.joyplus.myinterface.PermissionInterface; import com.joyplus.util.Utility; @WebFilter(filterName="permissionFilter",urlPatterns="*.do") public class BPermissionFilter implements Filter { @Override public void destroy() { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; String url = httpRequest.getRequestURL().toString(); ControllerBean controllerBean = new ControllerBean(); controllerBean.setMethod(Utility.getMethodName(url)); controllerBean.setName(Utility.getControllerName(url)); PermissionInterface permissionInterface = (PermissionInterface)SpringHelper.getBean("permissionInterface"); if(permissionInterface.allowAccess(controllerBean)){ chain.doFilter(request, response); }else{ return; } } @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub } }
你可以看到第一个Filter类名称首字母是A,第二个Filter首字母是B,这是因为我发现Filter执行顺序和类名称字母顺序有关,为了让Filter按照我希望的顺序执行, 我额外添加了A和B两个字母
相关文章推荐
- windows访问linux共享文件夹
- 我的欧拉工程之路_12
- OM设置摘要知识点
- iOS开发(7)通过uiimageView浅谈UIView
- Opengl RC(Render context,渲染下下文)与像素格式(转)
- Android四大组件之Service
- 网络小组学习计划
- python 获取当前运行的类名函数名
- 抓到网页数据后编码转换
- FORCEINLINE 关键字
- Java集合类详解
- 非农行情的做单策略
- 开源代码网站
- ubuntu工具之minicom
- STM32_APIO 复用(转)
- android widget使用
- 互联网思维到底是什么?
- linux DM9000网卡驱动中设置多播地址功能的理解
- 深入理解CRITICAL_SECTION
- iOS多国语言开发图解