1、概念
・サーブレットフィルタとは、サーブレットやJSPの「共通の前後処理」を記述するための仕組みです。
・フィルタはサーブレットやJSPの前に位置し、実行前と後に、リクエスト、レスポンスに対して任意の処理を行うことができます。
・フィルタの処理対象は任意のURLパターンが指定可能です。フィルタ対象はサーブレットとJSPだけではなく、
 Html、画像などWebアプリケーション内のリソースであれば何にでもフィルタをかけることができます。

2、フィルタの作成
・javax.servlet.Filter インターフェイス を実装したフィルタクラスを作成する。
・web.xmlにフィルタを登録する。

3、フィルタインタフェース
【javax.servlet.Filter】
フィルタクラスは、このインタフェースを実装して作成します。
3つのメソッドが定義されており、処理のある・なしにかかわらず3つとも実装必要です。
・void init(FilterConfig filterConfig): 初期化
・void doFilter(ServletRequest request, ServletResponse response, FilterChain chain):フィルタ処理
・void destroy() :終了処理

【javax.servlet.FilterConfig】
Filter.init()メソッドの引数に指定されるインタフェースです。

【javax.servlet.FilterChain】
Filter.doFilter()メソッドの引数に指定されるインタフェースです。
Filter は、チェーン内の次のフィルタを呼び出す時あるいは、呼び出している Filter がチェーン内の最後の Filter なら、
チェーンの終わりのリソースを呼び出す時に FilterChain を利用します。

4、web.xmlへの登録
    <filter>
        <filter-name>フィルタ名</filter-name>
        <filter-class>クラスファイル</filter-class>        
        <init-param>
            <param-name>初期化パラメータ名</param-name>
            <param-value初期化>値</param-value>
        </init-param>
    </filter>

<filter-mapping>
        <filter-name>フィルタ名</filter-name>
        <url-pattern>フィルタをかけるURL対象</url-pattern>
    </filter-mapping>

「url-pattern」は、
・「/*」は、全てのURLリソースに対してフィルタを適用します。
・「/admin/*」は、adminディレクトリ以下への呼び出しにフィルタ適用。
・「*.do」は、.doというURLに適用

5、フィルタのオン/オフ
フィルタへweb.xmlを編集することで付けたりはずしたりできます。
例えば、<filter-mapping>要素のコメントアウトでフィルタをオフします。

6、フィルタの順序
<filter-mapping>要素を記述した順番でフィルタが呼ばれます。

7、初期化パラメータ
フィルタは実行時に設定情報をweb.xmlから読み込むことができます。
初期化パラメータは<filter>の<init-param>要素で指定できます。
web.xmlに指定した初期化パラメータをフィルタクラスで読み込むためには、
Filter.init()メソッド内でjavax.servlet.FilterConfig.getInitParameter()メソッドを使用します。

Servlet基本_Filter的更多相关文章

  1. 深入Jetty源码之Servlet框架及实现(Servlet、Filter、Registration)

    概述 Servlet是Server Applet的缩写,即在服务器端运行的小程序,而Servlet框架则是对HTTP服务器(Servlet Container)和用户小程序中间层的标准化和抽象.这一层 ...

  2. servlet文件下载

    创建web工程servlet,新建DownloadServlet.java package com.xmyself.servlet; import java.io.File; import java. ...

  3. java中servlet的各种路径

    1. web.xml中<url-pattern>路径,(叫它Servlet路径!) > 要么以“*”开关,要么为“/”开头 2. 转发和包含路径 > *****以“/”开头:相 ...

  4. Servlet监听器笔记总结

    监听器Listener的概念 监听器的概念很好理解,顾名思义,就是监视目标动作或状态的变化,目标一旦状态发生变化或者有动作,则立马做出反应. Servlet中的也有实现监听器的机制,就是Listene ...

  5. JavaWeb——Servlet

    一.基本概念 Servlet是运行在Web服务器上的小程序,通过http协议和客户端进行交互. 这里的客户端一般为浏览器,发送http请求(request)给服务器(如Tomcat).服务器接收到请求 ...

  6. servlet 简介,待完善

    什么是Servlet?① Servlet就是JAVA 类② Servlet是一个继承HttpServlet类的类③ 这个在服务器端运行,用以处理客户端的请求 Servlet相关包的介绍--javax. ...

  7. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  8. servlet使用入门

    创建web工程servlet,然后新建TestServlet.java package com.xmyself.servlet; import java.io.IOException; import ...

  9. 基于jsp+servlet图书管理系统之后台万能模板

    前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...

随机推荐

  1. Zabbix利用orabbix插件监控Oracle数据库

    一.jdk的安装(Orabbix Server) 1.软件解压,放到固定位置 1 2 tar zxf jdk-8u51-linux-x64.tar.gz mv jdk1.8.0_51/ /usr/lo ...

  2. ZooKeeper系列(8):ZooKeeper伸缩性

    一.ZooKeeper中Observer 1.1 ZooKeeper角色 经过前面的介绍,我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower.Leader可以接受 ...

  3. C# Microsoft.Office不存在空间名称Interop和Excel

    在实际开发过程中,我们经常会对Excel表进行操作.相信大家都都已经很熟悉C#操作Excel的步骤:添加引用->COM->Microsoft Office Excel 11 Object. ...

  4. 使用Solrj 获取语句分词结果的代码

    import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.log4 ...

  5. 浅析Redis 和MongoDB

    今天来聊聊什么事nosql,一听nosql也许很多人会觉得很高大上的感觉,但其实接触过了也还觉得还行,随着当今数据的疯狂爆炸性的增长,传统的RDBMS也越来越暴露出他的不足之处,所以,作为一名合格的程 ...

  6. git将多个commit合并成一个

    1. 查看提交历史(最近10个) git log - 2. 回到前面第十个commit,且将后面九个commit提交的内容状态改为未提交 git reset commitID(第十个commit的ID ...

  7. 动态参数(*args,**kwargs),命名空间和作用域,global和nonlocal,函数的嵌套

    1. 动态参数 位置参数的动态参数: *args 关键字参数的动态参数 : **kwargs 顺序: 位置,*args,默认值,**kwargs 在形参上*聚合, **聚合 在实参上*打散, **打散 ...

  8. Java平台编写运行Ruby和Python

    Java不仅是一门编程语言,还是一个平台,通过JRuby和Jython,我们可以在Java平台上编写和运行Ruby和Python程序.

  9. 2014年第五届蓝桥杯JavaB组省赛试题解析

    题目及解析如下: 题目大致介绍: 第一题到第三题以及第六题是结果填空,方法不限只要得到最后结果就行 第四题和第五题是代码填空题,主要考察算法基本功和编程基本功 第七题到第十题是编程题,要求编程解决问题 ...

  10. 《机器学习实战》Logistic回归

    注释:Ng的视频有完整的推到步骤,不过理论和实践还是有很大差别的,代码实现还得完成 1.Logistic回归理论 http://www.cnblogs.com/wjy-lulu/p/7759515.h ...