dodoegg

常用链接

统计

最新评论

用过滤器来限制登录权限

 

package com.accp.epet.common;

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.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginFilter extends HttpServlet implements Filter {

  
private final static String[] exact_url = { "index.jsp""styles.css",
      
"/images" ,"login.do" }; // 不用做权限判断的URL

  
public void doFilter(ServletRequest request, ServletResponse response,
      FilterChain chain) 
throws IOException, ServletException {
    HttpServletRequest req 
= (HttpServletRequest) request;
    HttpServletResponse res 
= (HttpServletResponse) response;
    HttpSession session 
= req.getSession(false);
    
boolean needFilt = false;//是否需要过滤
    String uri=req.getRequestURI();
    
    
//.jsp和.do的uri需要过滤
    if (req.getRequestURI().indexOf(".jsp">= 0
        
|| req.getRequestURI().indexOf(".do">= 0)
      needFilt 
= true;
    
    
//不用做权限判断的URL不需要过滤
    for (int i = 0; i < exact_url.length; i++) {
      
if (req.getRequestURI().indexOf(exact_url[i]) >= 0) {
        needFilt 
= false;
        
break;
      }
    }
    
if (needFilt && req.getSession().getAttribute("login"== null) { 
 res.sendRedirect(req.getContextPath() 
+ "/index.jsp"); 
 
return
 } 
 chain.doFilter(req, res);
  }

  
public void init(FilterConfig arg0) throws ServletException {

  }

}

posted on 2008-09-12 22:06 dodoegg 阅读(213) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: