过滤器
(Filter)
创建⼀个类实现Filter接⼝
public class
CharSetFilter
implements
Filter
{}
重写接⼝中的⽅法
public
void
destroy
() {
//
销毁的⽅法
}
public
void
doFilter
(
ServletRequest req
,
ServletResponse resp
,
FilterChain
chain
)
throws
ServletException
,
IOException
{
//过滤⽅法 主要是对
request
和
response
进⾏⼀些处理,然后交给下⼀个过滤器或
Servlet处理
chain
.
doFilter
(
req
,
resp
);
}
public
void
init
(
FilterConfig config
)
throws
ServletException
{
/*初始化⽅法
接收⼀个
FilterConfig
类型的参数 该参数是对
Filter
的⼀些配置
*/
}
在web.xml⽂件中配置
<
filter
>
<
filter
-
name
>
过滤器名称
</
filter
-
name
>
<
filter
-
class
>
过滤器所在的路径
</
filter
-
class
>
</
filter
>
<
filter
-
mapping
>
<
filter
-
name
>
过滤器名称
</
filter
-
name
>
<
url
-
pattern
>
需要过滤的资源
</
url
-
pattern
>
</
filter
-
mapping
>
使⽤场景
如何防⽌⽤户未登录就执⾏后续操作
String name=(String)session.getAttribute("key");
if(name==null){
//跳转到登录⻚⾯
}
设置编码⽅式
--
统⼀设置编码
加密解密
(
密码的加密和解密
)
⾮法⽂字筛选
下载资源的限制
过滤器的特点
:
在
servlet
之前和之后都会被执⾏
监听器
(Listener)
分类:
第⼀维度按照被监听的对象划分:
ServletRequest
域、
HttpSession
域、
ServletContext
域
第⼆维度按照监听的内容分:监听域对象的创建与销毁的、监听域对象的属性变化的
监听器的编写步骤(重点)
需要在
web.xml
中进⾏配置
—
注册
<
listener
>
<
listener
-
class
>
监听器所在的路径
</
listener
-
class
>
</
listener
>
创建监听器类:
public class SessionListener implements HttpSessionListener { }
重写方法: