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两个字母
基于注解方式的Filter执行顺序
最新推荐文章于 2022-06-12 00:46:52 发布