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

刚才搞了一个字符集的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>结点之前,有多前就放多前!

时间: 2024-08-03 23:13:17

servlet过滤器2 解决用户非法在线 filter的相关文章

servlet过滤器1 解决字符集乱码 filter

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.ser

Servlet输出中文乱码的问题之Filter解决方法

Servlet输出中文乱码的问题之Filter解决方法 Filter过滤器的代码如下: package filter; import java.io.IOException; import java.util.Collection; import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.servlet.Filter; import javax.servlet.FilterChain;

java servlet过滤器使用示例_JSP编程

Servlet过滤器简介      Servlet过滤器实际上就是一个标准的java类,这个类通过实现Filter接口获得过滤器的功能.它在jsp容器启动的时候通过web.xml配置文件被系统加载.Servlet过滤器在接收到用户请求的时候被调用,当服务器接收到用户的请求的时候,依次调用配置好的过滤器,完成后将执行请求所要求的servlet,而servlet执行后的响应,则先通过配置好的过滤器后再发送给用户. 过滤器的用途:1.用户认证和授权管理.2.统计web应用的访问量和访问命中率,生成访问

Servlet过滤器介绍之原理分析

1.Servlet过滤器 1.1 什么是过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上.过滤器可附加 到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息.在这之后,过 滤器可以作如下的选择: ①以常规的方式调用资源(即,调用servlet或JSP页面). ②利用修改过的请求信息调用资源. ③调用资源,但在发送响应到客户机前对其进行修改. ④阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出. 1.2 Servl

详解JavaEE使用过滤器实现登录(用户自动登录 安全登录 取消自动登录黑用户禁止登录)_java

在我们生活中,对于账户的自动登录已经很常见了,所以利用过滤器实现这个功能. 主要介绍用户的自动登录和取消自动登录,以及实现一天自动登录或者n天实现自动登录,当用户ip被加入到黑名单之后,直接利用过滤器返回一个警告页面. 过滤器的功能很是强大,我们只需要在写好的前台后servlet之后进行添加就可以实现这个功能 Ps:这个仅仅只是一个演示而已,里面的访问数据库的部分,自己随意模拟了下,主要是突出实现自动登录的功能. 前台代码: 前台代码是成功与否都在这个页面显示.用到的技术:jstl标签的应用,s

servlet过滤器

一.过滤器作用 用户认证与授权管理,统计web应用访问量(找到就访问,没的话转到其他页面)和访问命中率和形成访问报告. 实现web应用的日志处理功能 实现数据压缩和加密功能 实现xml和xstl的转换. 二.预备知识 init() :这个方法在容器实例化过滤器时被调用,它主要设计用于使过滤器为处理做准备.该方法接受一个 FilterConfig 类型的对象作为输入. doFilter() :与 servlet 拥有一个 service() 方法(这个方法又调用 doPost() 或者 doGet

Servlet过滤器介绍之实用过滤器

6.禁止站点过滤器 如果你希望在你的过滤器检测到不正常的异常而中途中断后面的过滤过程时,可这样做: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { HttpServletRequest req = (HttpServletRequest) request; HttpServletRespo

servlet-关于Servlet过滤器修改输出内容的疑惑

问题描述 关于Servlet过滤器修改输出内容的疑惑 如题,先上代码,代码很简单,一个将jsp输出内容转为大写字母的过滤器: ```public class UpperCaseFilter implements Filter { private HttpServletRequest request; private HttpServletResponse response; public void init(FilterConfig config) throws ServletException

Servlet 过滤器详细介绍_java

1. 建立一个实现Filter接口的类所有过滤器都必须实现javax.servlet.Filter.这个接口包含三个方法,分别为doFilter.init和destroy. 复制代码 代码如下: public void doFilter(ServletRequset request,                ServletResponse response,               FilterChain chain)    thows ServletException, IOExce