Filter,它的名字是过滤器,可以批量拦截修改servlet的请求和响应。

需要实现接口Filter

配置

<filter> 

    <filter-name>EncodingFilter</filter-name> 

    <filter-class>anni.EncodingFilter</filter-class> 

</filter> 

<filter-mapping> 

    <filter-name>EncodingFilter</filter-name> 

    <url-pattern>/*</url-pattern> 

</filter-mapping>

filter标签部分定义使用的过滤器,

filter-mapping标签告诉服务器把哪些请求交给过滤器处理。这里的

/*表示所有请求,

/表示根路径,

*(星号)代表所有请求,加在一起就变成了根路径下的所有请求。

EncodingFilter.java,来批量设置请求编码。

package

 anni; 

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; 

public

class

 EncodingFilter 

implements

 Filter { 

public

void

 init(FilterConfig config) 

throws

 ServletException {} 

public

void

 destroy() {} 

public

void

 doFilter(ServletRequest request, 

            ServletResponse response, 

            FilterChain chain) 

throws

 IOException, ServletException { 

        request.setCharacterEncoding(

"gb2312"

); 

        chain.doFilter(request, response); 

    } 

}

filter控制用户访问权限

两个点(..)代表当前路径的上一级路径

你可以使用三种方式定义url-pattern

1.直接映射一个请求。

<servlet-mapping> 

    <servlet-name>ContactServlet</servlet-name> 

    <url-pattern>/contact.do</url-pattern> 

</servlet-mapping> 

2,映射一个路径下的所有请求。

<servlet-mapping> 

    <servlet-name>EncodingFilter</servlet-name> 

    <url-pattern>/*</url-pattern> 

</servlet-mapping>

如果这个路径下还有子路径,那么子路径下的请求也会被过滤操作

需要注意的是,这种写法必须以/开头,写成与绝对路径的形式,即便是映射所有请求也要写成/*,不能简化成*

3.映射结尾相同的一类请求

<servlet-mapping> 

    <servlet-name>ControllerServlet</servlet-name> 

    <url-pattern>*.do</url-pattern> 

</servlet-mapping>

这样做的一个好处是语义更清楚,只要看到以.do结尾的请求就知道肯定是交给ControllerServlet处理了,不管这个请求是在根路径还是子路径下,都会准确无误的找到对应的servlet。

缺点就是不同路径之间进行forward,jsp里就不能再使用相对路径了

过滤链

服务器会按照web.xml中过滤器定义的先后循序组装成一条链,然后一次执行其中的doFilter()方法。

而在实际使用时,就要特别注意过滤链的执行顺序问题,像EncodingFilter就一定要放在所有Filter之前,这样才能确保在使用请求中的数据前设置正确的编码

filter详细配置

<filter-mapping> 

    <filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher> </filter-mapping>

filter过滤指定的servlet

<

filter-mapping

> 

    <filter-name>TestFilter</filter-name> 

    <servlet-name>TestServlet</servlet-name> 

<

/filter-mapping

JSP入门 Filter的更多相关文章

  1. Jsp入门学习笔记

    #Jsp入门 一.JSP基础语法 1.JSP指令: page inlcude taglib 2.JSP注释: a.html注释: <!-- abcdefghijklmn --> b.jsp ...

  2. JSP入门:介绍什么是JSP和Servlet(转)

    转自:http://developer.51cto.com/art/200907/134506.htm JSP入门:什么是jsp? JSP(Java Server Pages)是由Sun Micros ...

  3. JSP入门必读

    JSP基础知识:转自老师上课梳理的笔记,希望对大家有所帮助.有什么不妥当的地方还望大家批评指正. 特别适用于JSP入门的人员使用.1.JSP [1] 简介1.1 HTML    HTML擅长显示一个静 ...

  4. 九、JSP入门(1)

    JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的 ...

  5. Invalid /admin/*.jsp in filter mapping

    完成错误信息 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache ...

  6. day11(jsp入门&Cookie&HttpSession&一次性图片校验码)

    day11 JSP入门   1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. ...

  7. JSP入门之自定义标签

    第二部分简单讲解:主要讲解el表达式,核心标签库.本章主要讲解:自定义标签库:404页面,505页面,错误页面配置方法 全部代码下载:链接 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素 ...

  8. Jsp入门实战上

    前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入门教程分为上下两部分,第一部分简单讲解:jsp语法的规范,以及三大编译指令,七个动作指 ...

  9. [Java] JSP笔记 - Filter 过滤器

    一.什么是Web过滤器 Servlet API 很久以前就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充. Servlet 过滤器是可插入的 Web 组件, ...

随机推荐

  1. web安全普及:通俗易懂,如何让网站变得更安全?以实例来讲述网站入侵原理及防护。

    本篇以我自己的网站[http://www.1996v.com]为例来通俗易懂的讲述如何防止网站被入侵,如何让网站更安全. 要想足够安全,首先得知道其中的道理. 本文例子通俗易懂,从"破解网站 ...

  2. PHP文件操作整理

    三种目录表示: ./     代表当前目录 ../    代表父级目录 /   代表根目录 常用的文件操作函数有 通用读写:                  fpen()  fwrite() fre ...

  3. django下进行项目的部署

    -------------------Django下进行对应的服务器配置1.服务器购买 本人在阿里云购买了一个服务器,操作系统为windows server2008/Linux(ubuntu) 2.服 ...

  4. 【搬运工】之YSlow安装教程

    YSlow安装教程(我只是搬运工,推荐好用的地址) 地址: https://devework.com/yslow.html YSlow (解析为 why slow)是雅虎基于网站优化规则推出的工具,帮 ...

  5. ZXing生成条形码、二维码、带logo二维码

    采用的是开源的ZXing,Maven配置如下,jar包下载地址,自己选择版本下载,顺便推荐下Maven Repository <!-- https://mvnrepository.com/art ...

  6. 入门-什么是webshell?

    webshell是什么? 顾名思义,"web" - 显然需要服务器开放web服务,"shell" - 取得对服务器某种程度上操作权限. webshell常常被称 ...

  7. Jsp与beetl的比较

    首先介绍一下模板引擎的概念,是为了使用户界面与业务数据分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎,就会生成一个标准的html文档. Jsp全名是JavaServer Page,中文名叫 ...

  8. 团队作业4----第一次项目冲刺(Alpha版本)4.24

    a.提供当天站立式会议照片 会议内容: ①:对数据库的设计存在问题的进一步讨论 ②:讨论需求分析中的存在的难解决的问题,比如要做到较好的反应用户的行为. ③:分配今天的任务 b. 每个人的工作 工作完 ...

  9. 团队作业9——Beta版本展示博客

    一. 骆杰宁(组长) 风格:少说话,多做事. 擅长技术:Jsp 编程兴趣:GUI 希望角色:PM 一句话宣言:年轻是本钱,不努力就不值钱. 胡丹丹 风格:不断沉淀自己 擅长技术:擅长TCP/IP协议模 ...

  10. expect实现scp/ssh-copy-id非交互

    expect工具可以实现自动应答,从而达到非交互的目的. expect具体使用用法比较复杂,中文手册我正在翻译中,以后翻译完了做了整理再补.本文只有几个ssh相关最可能用上的示例. yum -y in ...