博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
servlet过滤器2 解决用户非法在线 filter
阅读量:6550 次
发布时间:2019-06-24

本文共 2154 字,大约阅读时间需要 7 分钟。

刚才搞了一个字符集的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>

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

转载地址:http://ptuco.baihongyu.com/

你可能感兴趣的文章
进程调度算法
查看>>
shell中read使用
查看>>
Java 发送邮件工具类
查看>>
团队项目-地铁线路数据录入代码
查看>>
字符串国际化教程
查看>>
javascript多种方法实现数组去重
查看>>
week06 08 postman 测试jsonrpc
查看>>
henplus
查看>>
[转]iPhone/Mac Objective-C内存管理教程和原理剖析
查看>>
[转]感知器(Perceptron)原理和应用
查看>>
Jquery判断表里的某个值
查看>>
IE地址栏小图标问题
查看>>
使用lua写gui程序系列汇总
查看>>
.net 使用SqlBulkCopy极速插入数据到 SQL Server
查看>>
NHibernate二级缓存(第十一篇)
查看>>
ecshop完美解决前台和后台自动退出、购物车自动清空
查看>>
设计的四大原则
查看>>
使用Razor模板构建应用注意的细节
查看>>
给UIImageView增加点击事件
查看>>
【转】QRCode二维码的应用心得
查看>>