过滤器的问题

悬赏分:20|
我要过滤所有页面除了登陆页面该做过滤所有/*,过滤登陆页写谢谢
知识库标签: 过滤器   |列兵
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.io.IOException;
/**
* 用于检测用户否登陆过滤器未登录则重定向指登录页面
* <p>
* 配置参数
* <p>
* checkSessionKey 需检查 Session 保存关键字<br/> redirectURL
* 用户未登录则重定向指定页面URL包括 ContextPath<br/> notCheckURLList
* 做检查URL列表分号分开并且 URL 包括 ContextPath<br/>
*/
public class LoginFilter implements Filter {

private String redirectURL = null;
private List notCheckURLList = null;
private String sessionKey = null;
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession();
if (sessionKey == null) {
filterChain.doFilter(request, response);
return;
}
if ((!checkRequestURIIntNotFilterList(request))
&& session.getAttribute(sessionKey) == null) {
response.sendRedirect(request.getContextPath() + redirectURL);
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy() {
notCheckURLList.clear();
}
private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) {
String uri = request.getServletPath()
+ (request.getPathInfo() == null ? "" : request.getPathInfo());
return notCheckURLList.contains(uri);
}
public void init(FilterConfig filterConfig) throws ServletException {
redirectURL=....
sessionKey=.....
notCheckURLList=new ArrayList();
notCheckURLList.add("登陆页面");
notCheckURLList.add("/login.jsp");
notCheckURLList.add("登陆控制器");
}
}
用修改XML文件 XML直接完全过滤
使用过滤器 初始化时候定义 过滤页面和控制器
除了登陆页面还需要过滤 登陆控制器否则...
为最佳答案评分?
100% (1)
不好 0% (0)
(目前有 1 个人评价)

其 他 回 答共3条

1楼

哦样用session检查session空时侯显示样了用session登陆给session赋值
知识库标签: |列兵

2楼


只有在过滤器时处理了.如果是登击页面就让它通过.
知识库标签: 过滤器   |列兵

我来回答这个问题

立即登陆回答获取会员积分,提高用户级别
友情链接:
Copyright © 商名网 All Rights Reserved.