servlet过滤器2 解决用户非法在线 filter

简介: 刚才搞了一个字符集的filter,正好,把这个对用户是否在线,做个过滤器,只要用户session失效或者其他什么因素,反正掉线了,就自动转到登录页面,或者说更高级一些,你记一下跳转来之前的url地址,登录之后再跳回去~~ package com.

刚才搞了一个字符集的filter,正好,把这个对用户是否在线,做个过滤器,只要用户session失效或者其他什么因素,反正掉线了,就自动转到登录页面,或者说更高级一些,你记一下跳转来之前的url地址,登录之后再跳回去~~


package com.tarena.web.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.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;   public class UserFilter implements Filter {       @Override    public void init(FilterConfig filterConfig) throws ServletException {       }       // 判断用户合法性    private boolean process(HttpServletRequest request,            HttpServletResponse response) {        boolean bool = false;         String uri = request.getServletPath();         String action = uri.substring(uri.lastIndexOf("/")+1,uri.lastIndexOf("."));        if(action.equals("login")||action.equals("regist")){            bool = true;        }        HttpSession session = request.getSession(false);        if(session!=null&&session.getAttribute("user")!=null){            bool = true;        }        return bool;    }       @Override    public void doFilter(ServletRequest servletRequest,            ServletResponse servletResponse, FilterChain filterChain)            throws IOException, ServletException {        HttpServletRequest request = (HttpServletRequest) servletRequest;        HttpServletResponse response = (HttpServletResponse) servletResponse;        if(process(request,response)){            filterChain.doFilter(servletRequest,servletResponse);        }else{            response.sendRedirect("login.jsp");        }    }       @Override    public void destroy() {       }   }

web.xml

<filter>        <filter-name>UserFilter</filter-name>        <filter-class>com.tarena.web.filter.UserFilter</filter-class>    </filter>    <filter>        <filter-name>CharacterEncodingFilter</filter-name>        <filter-class>com.tarena.web.filter.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>ignore</param-name>            <param-value>true</param-value>        </init-param>        <init-param>            <param-name>encoding</param-name>            <param-value>UTF-8</param-value>        </init-param>    </filter>         <filter-mapping>        <filter-name>UserFilter</filter-name>        <url-pattern>*.jsp</url-pattern>    </filter-mapping>


同上篇http://hi.baidu.com/ae6623/item/a006f07f0813c615d1dcb366,记得把web.xml中对于filter的配置提至最前...放在第一个<servlet>结点之前,有多前就放多前!

目录
相关文章
|
4月前
|
前端开发 JavaScript Java
Web.xml - Servlet与Filter的url-pattern
Web.xml - Servlet与Filter的url-pattern
56 8
|
1天前
|
容器
Servlet 教程 之 Servlet 编写过滤器 6
该教程介绍了如何在Servlet中编写过滤器。可以创建多个过滤器,如AuthenFilter和LogFilter,并通过不同的映射进行配置。过滤器的应用顺序由web.xml中filter-mapping的顺序决定,可通过调整顺序改变过滤器执行的先后。
9 3
|
7月前
|
XML 开发框架 Java
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)
|
4月前
|
前端开发 Java 程序员
Servlet/过滤器/拦截器/监听器:
Servlet接口在Sun公司有两个默认的实现类:HttpServlet、GenericServlet。Servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。
|
4月前
|
前端开发 Java 容器
SpringBoot中注册Servlet、Filter和Listener(代码和注解两种方式)
SpringBoot中注册Servlet、Filter和Listener(代码和注解两种方式)
58 0
|
4月前
Servlet3.0+环境下使用注解注册Servlet、Filter和Listener组件
Servlet3.0+环境下使用注解注册Servlet、Filter和Listener组件
42 2
|
4月前
|
缓存 Java Spring
servlet/filter/listener/interceptor区别与联系
servlet/filter/listener/interceptor区别与联系
38 0
|
7月前
|
XML 监控 Java
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)4
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)4
|
7月前
|
存储 安全 Java
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
|
7月前
|
Java 应用服务中间件 API
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)2
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)2