我想在过滤器里面的url-patten里面的所有的请求都满足,除了某些之外,我应该怎样配置呢
我是想通过一个Filter来验证当前用户是否已登录,如果没有登录的话就转到登录页面;但是这样的话那个登录页面是不需要进行验证的,所以在url-patten里面我要把登录的那个页面除去,但我不知道应该怎样配置,请有经验的朋友们帮一下忙,谢谢了!
我是想通过一个Filter来验证当前用户是否已登录,如果没有登录的话就转到登录页面;但是这样的话那个登录页面是不需要进行验证的,所以在url-patten里面我要把登录的那个页面除去,但我不知道应该怎样配置,请有经验的朋友们帮一下忙,谢谢了!
解决方案 »
- SSH框架适合做什么样的项目
- hibernate和jdbc。。 数据量大的时候,哪个更适用。。。
- DWR同步的问题,执行DWR方法前显示“执行中”文字提示用户失败。
- string 转 int 问题急~~
- servlet 无法编译通过 ,急求解决办法
- 小弟刚刚学Struts1,请高手达人进!
- 新闻图片如何显示(新手)
- 100分相送!!哪位大哥能给我一个 jsp中插入 Applet 的具体例子(含有jsp 和 Applet 之间的通信)吗?
- 怎么样把tomcat启动加道win2000服务中去?
- 新手,想学习java web,想知道大概要学习哪些东西???
- 报错:Hibernate映射配置问题Could not parse configuration
- request的属性问题
public void destroy() {
} public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)resp;
//requestURI = ?
String requestURI = request.getRequestURI();
String page = requestURI.substring(request.getContextPath().length());
//判断HTTP SESSION中是否有LOGIN_ADMIN
String loginAdmin = (String)request.getSession().getAttribute("LOGIN_ADMIN"); if(page.matches(filterPattern)){
if(loginAdmin == null && !page.equals("/backend/login.jsp") && !page.equals("/backend/LoginServlet")
){
//redirect到login.jsp
response.sendRedirect(request.getContextPath()+"/backend/login.jsp");
return;
}
}
//继续向下执行
chain.doFilter(req, resp);
} public void init(FilterConfig config) throws ServletException {
filterPattern = config.getInitParameter("filterPattern");
}}
web.xml配置:
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>cn.com.leadfar.cms.backend.view.LoginFilter</filter-class>
<init-param>
<param-name>filterPattern</param-name>
<param-value>.*Servlet|.*\.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
还有,
如果你过滤器中转登录页面用的是forward而不是redirect方式,则默认并不会再次被过滤,不存在什么无穷循环的问题。也就是说:对/*过滤好了,没什么大问题。