创建用户登录的过滤器

来源:互联网 发布:短信平台和网络 编辑:程序博客网 时间:2024/05/16 09:13
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequestreq=(HttpServletRequest)request;
HttpServletResponse resp=(HttpServletResponse)response;
News_1 loginUser=(News_1)req.getSession().getAttribute("loginUser");
String servletPath=req.getServletPath();
System.out.println("当前拦截到的请求为"+servletPath);
//拼一个动态的绝对路径
String path = req.getContextPath();
String basePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/";
boolean flag=false;
String[] go={"/login.jsp","/LoginServlet.do","/reg.jsp","/RegServlet.do","/city.jsp","/CitySverlet.do"};
for(String str:go){
if(str.equals(servletPath)){
flag=true;
}
}
if(loginUser!=null||flag){
//说明登陆过,放行
chain.doFilter(req, resp);
}else{
//没有登陆过,跳转到登录页面
req.getSession().setAttribute("error", "非法请求,请先登录");
resp.sendRedirect(basePath+"login.jsp");
}
}
原创粉丝点击