在项目中,过滤器如何配置?可以实现拦截!
2015-02-01 08:32
411 查看
在项目中,过滤器是少不了的!但是,该如何配置一个好的过滤器那?请看下面代码:
SessionCheckUserFilter.java文件:
这样就ok了。
SessionCheckUserFilter.java文件:
package cn.itcast.crm.filter; import java.io.IOException; import java.util.ArrayList; import java.util.List; 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.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.itcast.crm.domain.SysUser; import cn.itcast.crm.util.SessionUtils; public class SessionCheckUserFilter implements Filter { private List<String> list; public void init(FilterConfig filterConfig) throws ServletException { //自己处理放置在资源文件,利用流读入 list=new ArrayList<String>(); list.add("/image.jsp"); //验证码页面 list.add("/index.jsp"); list.add("/WEB-INF/page/login.jsp"); list.add("/sys/sysUserAction_isLogin.do"); } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)res; String path=request.getServletPath();
//对 /image.jsp /index.jsp /login.jsp /sys/sysUserAction_isLogin路径过滤器要放行 if(list!=null&&list.contains(path)){ chain.doFilter(request, response); return; } //获取当前的登陆用户 SysUser sysUser=SessionUtils.getSysUserFormSession(request); //如果用户!=null 表示用户已经登陆 if(sysUser!=null){ //放行 chain.doFilter(request, response); }else{ //如果用户==null 表示用户没有登陆 //重定向到login.jsp(index.jsp) response.sendRedirect(request.getContextPath()); } } public void destroy() { } }配置:web.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <span style="color:#ff0000;"><filter> <filter-name>SessionCheckUserFilter</filter-name> <filter-class>cn.itcast.crm.filter.SessionCheckUserFilter</filter-class> </filter> <filter-mapping> <filter-name>SessionCheckUserFilter</filter-name> <url-pattern>*.jsp</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>SessionCheckUserFilter</filter-name> <url-pattern>*.do</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping></span> <filter> <filter-name>StrutsPrepareAndExecuteFilter</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>StrutsPrepareAndExecuteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
这样就ok了。
相关文章推荐
- 有个奇怪的问题,配置成/system/index,jsp页面时没有经过过滤器进行拦截,而配置成redirectAction时是可以直接跳转刀片loginJsp.action
- 16.如何做到webpack打包vue项目后,可以修改配置文件
- 【转载】Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门
- 配置过滤器filter对跨站脚本攻击XSS实现拦截
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- Java 如何获取控制台日志输出的信息? WriterAppender 可以实现? 配置文件如何配置
- Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门
- 如何实现Java Web项目配置分离
- 如何实现一个项目配置多个商户信息付款给对应商户
- 阿里云 > 教程中心 > java教程 > 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上 详细的图文教程来实现 eclipse
- 2.如何让一个项目的用户目前只能是姓名登录,优化为增加一个字段为姓名和用户名同时都可以实现登录 ,并且用户名不能使中文?
- 配置过滤器filter对跨站脚本攻击XSS实现拦截
- 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上
- ajax实现省级联动以及网站项目中通过写一个过滤器全局配置解觉整个网站的乱码问题
- 高人请进:请教如何实现在CTreeCtrl中的项目可以通过拖曳(drag)来改变排序(暂时只考虑一层节点)
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 在小型项目中如何配置VSS
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 如何在Linux下实现设备的配置
- 使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析