JSP Filter用法
- 在HttpServletRequest请求到达Servlet之前,拦截客户的HttpServletRequest
- 根据需要检查HttpServletRequest的相关信息,修改头信息和数据
- 在HttpServletResponse到达客户端之前可以进行拦截
- 在HttpServletResponse到达客户端之前可以进行检查,也可以修改头信息和数据
- 定义一个类,继承自javax.servlet.Filter类
- 实现javax.servlet.Filter的init(),destroy(),doFilter()方法
- 配置filter在web.xml或者filter的代码中
- package com.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
- public class LogFilter implements Filter {
- private FilterConfig config;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.config=filterConfig;
}- @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
ServletContext context=config.getServletContext();
long time= System.currentTimeMillis();
System.out.println("过滤开始");
System.out.println(time);
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpSession session=request.getSession(true);
String loginpage=config.getInitParameter("loginpage");
if(session.getAttribute("username")==null&&!request.getContextPath().endsWith(loginpage)){
servletRequest.getRequestDispatcher(loginpage).forward(servletRequest,servletResponse);
}else{
System.out.println(request.getContextPath());
filterChain.doFilter(servletRequest,servletResponse);
long atime= System.currentTimeMillis();
System.out.println(time);
System.out.println("过滤结束");
System.out.println("请求被处理时间是:"+request.getContextPath()+"("+(atime-time)+")");
}- }
- @Override
public void destroy() {
config=null;
}
}
- 4.在web.xml中的配置方法
- <filter>
<filter-name>logs</filter-name>
<filter-class>com.filter.LogFilter</filter-class>
<init-param>
<param-name>loginpage</param-name>
<param-value>/login.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>logs</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 说明:filter.doFilter调用是用来区分拦截的前后的
- doFilter的使用可以进行权限的验证,日志的记录等方法
JSP Filter用法的更多相关文章
- python3 filter用法(举例求0~n之间的素数)
在用python3求0~n之间的素数时,关于filter用法的有点模糊,于是上网查了一下filter用法. 求0~n之间素数的脚本prime.py: def f(x): plist = [0,0] + ...
- JSP Filter,GZIP压缩响应流
url:http://hi.baidu.com/xhftx/blog/item/fbc11d3012648711ebc4af59.html 关键词:JSP,Filter,Servlet,GZIP 现在 ...
- Ext.Net学习笔记12:Ext.Net GridPanel Filter用法
Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...
- Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法
Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法 2018/11/06 Chenxin 资料说明 Django基础入 ...
- 转:AngularJS的Filter用法详解
Filter简介 Filter是用来格式化数据用的. Filter的基本原型( '|' 类似于Linux中的管道模式): {{ expression | filter }} Filter可以被链式使用 ...
- Servlet过滤器Filter用法
1 Servlet 过滤器方法 过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法:public void ...
- AngularJS的Filter用法详解
上一篇讲了自定义Directive,本篇是要讲到AngularJS的Filter. Filter简介 Filter是用来格式化数据用的. Filter的基本原型( '|' 类似于Linux中的管道模式 ...
- jsp filter登录限制过滤器
http://www.cnblogs.com/hemingwang0902/archive/2012/01/09/2316956.html UserFilter.java package filter ...
- Python中自定义filter用法
django中新建项目,在项目中新建app,自定义filter一般放到app中.结构目录如下: 1.先在APP中新建一个templatetags的django文件夹,文件夹中新建一个filter的py ...
随机推荐
- CSS4
1.处理溢出(overflow) overflow的取值可以是visible.hidden,scroll,auto,其中visible是默认值.visible表示不裁剪内容,也不添加滚动条,强制显示元 ...
- Javascript ES6
ES6: EMACScript 6 http://javascript.ruanyifeng.com/advanced/ecmascript6.html http://es6.ruanyifeng.c ...
- 编译错误:/usr/bin/ld: cannot find -lz
编译时出现错误/usr/bin/ld: cannot find -lz,安装zlib和zlib-devel yum install zlib yum install zlib-devel
- ubuntu16.04部署RED5流媒体服务器
前提:jdk已经安装 1,下载RED5(https://github.com/Red5/red5-server/releases)选择red5-server-X.X.X-MXX.tar.gz 2,解压 ...
- Y-TDC 的一些函数
typedef void (*func_ptr)(void); func_ptr usm_rom_set_tx2_drive_strength_hs; 定义一个函数指针类型.比如你有三个函数:void ...
- python web前端
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- Html5特性及简介
- rdesktop的使用方法
工作时一般是开两台电脑 ,一台linux,一台windows,以前也用过虚拟机什么的,但是 有时候 跑起来拖泥带水的十分不爽,所以慢慢的就习惯了两台电脑的工作方式,一般我大部时间都在linux下面.用 ...
- 论文阅读(Lukas Neuman——【ICDAR2015】Efficient Scene Text Localization and Recognition with Local Character Refinement)
Lukas Neuman--[ICDAR2015]Efficient Scene Text Localization and Recognition with Local Character Refi ...
- 学习js回调函数
<!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <title> ...