Struts2使用过滤器验证登陆状态
2015-09-29 14:22
369 查看
在Web.xml中增加个配置过滤器loginFilter:
在处理登陆的action中,登陆成功后,往session中写入一个值,作为是否登陆的标记,这里写入用户名username:
然后编辑相应的过滤器类LoginFilter,过滤器检查session中username的值是否为空,为空则跳转至登陆页面:
这样就可以了,除了login页面外全部都会被过滤器检测。
注:
浏览器关闭后session将被销毁,用户需重新登陆。
退出操作则将session中的username值设置为null即可。
文章来源:http://www.cnblogs.com/myfjd/archive/2011/11/25/2263699.html
<filter> <filter-name>loginFilter</filter-name> <filter-class>com.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
在处理登陆的action中,登陆成功后,往session中写入一个值,作为是否登陆的标记,这里写入用户名username:
1 HttpServletRequest request = ServletActionContext.getRequest(); 2 request.getSession().setAttribute("username", username);
然后编辑相应的过滤器类LoginFilter,过滤器检查session中username的值是否为空,为空则跳转至登陆页面:
package com.filter; 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 { public void destroy() { } public void doFilter(ServletRequest sRequest, ServletResponse sResponse, FilterChain filterChain) throws IOException, ServletException{ HttpServletRequest request = (HttpServletRequest) sRequest; HttpServletResponse response = (HttpServletResponse) sResponse; HttpSession session = request.getSession(); String url=request.getServletPath(); String contextPath=request.getContextPath(); if(url.equals("")) url+="/"; if((url.startsWith("/")&&!url.startsWith("/login"))){//若访问后台资源 过滤到login String user=(String)session.getAttribute("username"); if(user==null){//转入管理员登陆页面 response.sendRedirect(contextPath+"/login.jsp"); return; } } filterChain.doFilter(sRequest, sResponse); } public void init(FilterConfig arg0) throws ServletException { } }
这样就可以了,除了login页面外全部都会被过滤器检测。
注:
浏览器关闭后session将被销毁,用户需重新登陆。
退出操作则将session中的username值设置为null即可。
文章来源:http://www.cnblogs.com/myfjd/archive/2011/11/25/2263699.html
相关文章推荐
- java中二进制转换为字节数组
- MyEclipse 2015优化技巧
- SpringMVC使用<mvc:resource>访问静态文件
- 【java】判断字符串编码类型
- Spring MVC @Transactional注解方式事务失效的解决办法
- Eclipse——热键&Help
- java:判断二进制数据中第n位是否为1
- JAVA基础学习day19--IO流一、FileWrite与FileReader
- A*算法--迷宫找最短路径(JAVA实现)
- jdk与eclipse不匹配的各种问题。。。
- Groovy与 Java不离不弃,携手同行
- Spring AOP几个概念
- Mybatis学习之与Spring整合
- Class类详解
- 64位ubuntu 11.10下android开发环境的搭建(jdk+Eclipse+adt+android sdk详细)
- 指定分词器测试分词结果
- Java的内存机制
- SpringMVC的Restful中PUT无法获取参数问题(SSL设置)
- Spring 3.X系列新注解@ResponseBody,@RequestBody
- 【Java高级】ThreadPool用法与优势