您的位置:首页 > 其它

基于注解方式的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两个字母



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