用Filter作用戶授權的例子
阿新 • • 發佈:2018-03-26
equals contex tps gen div pan println stub nts
public class LoginFilter implements Filter { private String permitUrls[] = null; private String gotoUrl = null; public void destroy() { // TODO Auto-generated method stub permitUrls = null; gotoUrl = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest res=(HttpServletRequest) request; HttpServletResponse resp=(HttpServletResponse)response; if(!isPermitUrl(request)){ if(filterCurrUrl(request)){ System.out.println("--->請登錄"); resp.sendRedirect(res.getContextPath()+gotoUrl); return; } } System.out.println("--->允許訪問"); chain.doFilter(request, response); } public boolean filterCurrUrl(ServletRequest request){boolean filter=false; HttpServletRequest res=(HttpServletRequest) request; User user =(User) res.getSession().getAttribute("user"); if(null==user) filter=true; return filter; } public boolean isPermitUrl(ServletRequest request) { boolean isPermit = false; String currentUrl = currentUrl(request); if (permitUrls != null && permitUrls.length > 0) { for (int i = 0; i < permitUrls.length; i++) { if (permitUrls[i].equals(currentUrl)) { isPermit = true; break; } } } return isPermit; } //請求地址 public String currentUrl(ServletRequest request) { HttpServletRequest res = (HttpServletRequest) request; String task = request.getParameter("task"); String path = res.getContextPath(); String uri = res.getRequestURI(); if (task != null) {// uri格式 xx/ser uri = uri.substring(path.length(), uri.length()) + "?" + "task=" + task; } else { uri = uri.substring(path.length(), uri.length()); } System.out.println("當前請求地址:" + uri); return uri; } public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub String permitUrls = filterConfig.getInitParameter("permitUrls"); String gotoUrl = filterConfig.getInitParameter("gotoUrl"); this.gotoUrl = gotoUrl; if (permitUrls != null && permitUrls.length() > 0) { this.permitUrls = permitUrls.split(","); } } }
參考地址:http://www.jb51.net/article/38730.htm
用Filter作用戶授權的例子