JSP Filter用法

1.filter的作用

  • 在HttpServletRequest请求到达Servlet之前,拦截客户的HttpServletRequest
  • 根据需要检查HttpServletRequest的相关信息,修改头信息和数据
  • 在HttpServletResponse到达客户端之前可以进行拦截
  • 在HttpServletResponse到达客户端之前可以进行检查,也可以修改头信息和数据

2.实现方式

  • 定义一个类,继承自javax.servlet.Filter类
  • 实现javax.servlet.Filter的init(),destroy(),doFilter()方法
  • 配置filter在web.xml或者filter的代码中

3.具体实现

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的使用可以进行权限的验证,日志的记录等方法
时间: 2024-10-13 18:00:30

JSP Filter用法的相关文章

jQuery -&gt; filter用法

利用filter函数可以从wrapper set中过滤符合条件的DOM元素. 如果我们有一个内容如下的html文件,要获取类为external的<a>元素,使用filter可以很easy地搞定. <a href="#" class="external">link</a> <a href="#" class="external">link</a> <a href=

jsp标签jsp:setProperty用法

jsp标签jsp:setProperty用法 来源:http://blog.csdn.net/wanghaishanren/article/details/2047400 <jsp:setProperty>用来设置已经实例化的Bean对象的属性 第一种形式: <jps:setProperty name = "JavaBean实例名"  property = "*"/> 该形式是设置Bean 属性的快捷方式.在Bean 中属性的名字,类型必须和

JavaWeb项目笔记包括jsp的用法selevt,HTML5

-------------------<认识HTML5>----------------- 1 <>生成的快捷键 是table键 ctrl+D是直接复制一行 2 <h1>-<h6> 标题 字体由大到小 <p> 段落 <br> 换行标签 <hr> 水平线标签 <em> 斜体 <strong> 字体加粗 ../ 返回上一级目录 > 大于号 < 小于号   空格 " 引号"

js filter用法比较

讲解一个很实用的JS小语法 filter 就是从数组中找到适合条件的元素(比如说大于某一个元素的值) var arr=[1,23,5,78,34,55,13]; 如何才能找到大于23的所有元素呢, 1,下面是传统的解决思路,就是用$.each(),这种用法,先不说这种用法好不好,先看代码: var max23=[]; $.each(arr,function(index,value){if(value>23){ max23.push(value)}}); 然后在console中输入max23 输出

AngularJS的Filter用法详解

Filter简介 Filter是用来格式化数据用的. Filter的基本原型( '|' 类似于Linux中的管道模式): {{ expression | filter }} Filter可以被链式使用(即连续使用多个filter): {{ expression | filter1 | filter2 | ... }} Filter也可以指定多个参数: {{ expression | filter:argument1:argument2:... }} AngularJS内建的Filter Angu

Servlet过滤器Filter用法

1 Servlet 过滤器方法 过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法:public void doFilter (ServletRequest, ServletResponse, FilterChain)该方法完成实际的过滤操作,当客户端请求方法与过滤器设置匹配的URL时,Servlet容器将先调用过滤器的doFilter方法.FilterChain用户访问后续过滤器. public vo

转:AngularJS的Filter用法详解

Filter简介 Filter是用来格式化数据用的. Filter的基本原型( '|' 类似于Linux中的管道模式): {{ expression | filter }} Filter可以被链式使用(即连续使用多个filter): {{ expression | filter1 | filter2 | ... }} Filter也可以指定多个参数: {{ expression | filter:argument1:argument2:... }} AngularJS内建的Filter Angu

Pig filter用法举例

filter:过滤数据,只有符合特定条件的数据才会被保留下来,然后进入下一个数据流. 1)等值比较 filter data by $0 == 1 filter data by $0 != 1 2)字符串 正则匹配  JAVA的正则表达式 字符串以CM开头 filter data by $0 matches 'CM.*'; 字符串包含CM filter data by $0 matches '.*CM.*'; 3)not filter data by not $0==1; filter data

CSS3的filter用法

最近到处看到有人在说CSS3的filter一直没有时间自己去测试这效果.今天终于抽出时间学习这个CSS3的Filter.不整不知道呀,一整才让我感到吃惊,太强大了.大家先来看个效果吧: 我想光看上面的效果就能吸引你了,要是你自己动手的话,我想您更会感到神奇.细一看,这些效果就像是photoshop整出来的一样,其实是真是这样的,有很多效果都是类似于photoshop中的特效.不过有一点大家需要特别的注意:此处的CSS3 filter和css filter完全是两样东东.更不是我们一直说的IE滤镜