フィルターフィルター
**
JSPコードは、ユーザがログインしているかどうかを確認するために使用することができるが、いくつかのHTMLページのような、および画像へのアクセスのみをフィルタすることによって制御することができる:フィルタ応答は、フィルタリング、要求を傍受することができ
1创建一个类实现Filter接口
2实现doFilter方法进行请求的拦截
3web.xml中配置拦截地址(配置的标签跟Servlet的一样 /*表示工程名下的所有资源)
注意 filter里面成功了话要调用 chain.doFilter 否则无法放行
ライフサイクルフィルターフィルター:同じサーブレットのライフサイクルと
1构造方法
2init初始化方法
3doFilter过滤方法 每一次拦截到都会执行
4destroy销毁方法
**
FilterConfig:フィルタは、フィルタの構成情報を取得してもよいです
**
作用:
1获取filter的名称 filterConfig.getFilterName();
2获取filter的初始化参数 filterConfig.getInitParameter();
3获取ServletContext对象 filterConfig.getServletContext();
**
フィルタ実行順序複数の決定実行web.xmlの順に上から下です。
**
**
アドレスフィルタフィルタをインターセプト
**
Filter的拦截路径
--精确匹配
比如: /aaa/a.jsp 它表示只有请求地址是:http://ip:port/工程名/aaa/a.jsp的时候,Filter过滤器才会拦截。
--目录匹配
比如: /aaa/* 它表示只有请求地址是: http://ip:port/工程名/aaa/* 的时候,Filter过滤器才会拦截。
--后缀名匹配 *打头的地址匹配前面不可以加上/ 会报错
比如:
*.html 表示请求地址必须以html结尾,Filter才会拦截到。
*.jsp 表示请求地址必须以jsp结尾。filter才会拦截到。
*.action 表示请求地址必须以 action结尾。Filter才会拦截到。
*.do 表示请求地址必须以do结尾。Filter过滤器才会拦截到
*.abc 请求地址必须以abc结尾,Filter过滤器才会拦截到。
Filter只关心请求地址。不关闭资源是不是存在。
Filter可以用来实现事务~但是需要注意要把异常抛到filter去
**
シナリオ
**
1) 对密码进行加密
2) 对请求参数进行字符编码设置
3) 对请求进行权限控制
4) 对请求参数值进行非法字符过滤
5) 修改响应的结果数据。...
ルールをフィルタリングフィルター!!!
默认只对请求过滤,对转发不过滤 也就是对服务器内部的请求是不会进行过滤的
修改规则
在<filter-mapping>中增加转发过滤设置
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
**
フィルタ順序
**
按匹配规则过滤.
如果多个过滤器的匹配规则都匹配到这个路径,按照<filter-mapping>匹配顺序来执行过滤器