Ø 过滤器(filter)
○ 概述:
§ 可以过滤从客户端想服务器发送的请求
○ 使用:
§ 可以进行IP的过滤,
§ 脏话过滤,
§ 自动登录.
§ 同一网站字符集
§ 响应压缩
□ 编写一个类实现Filter接口
□ 配置过滤器
○ 生命周期:
§ 创建:
□ 服务器启动的时候
§ 销毁:
□ 服务器关闭的时候,或者项目移除的时候
○ [FilterConfig(配置对象)]
§ FilterConfig.getFiltername()----获得过滤器的名称
§ FilterConfig.getInitParmeter():获得初始化参数名称
§ FilterConfig.getInitParmeter("初始化参数的名称")----获得初始化参数
代码:
public void init(FilterConfig filterConfig) throws ServletException {
// 获得当前的Filter的名称:
String filterName = filterConfig.getFilterName();
System.out.println(filterName);
// 获得初始化参数:
String username = filterConfig.getInitParameter("username");
String password = filterConfig.getInitParameter("password");
System.out.println(username+" "+password);
// 获得所有的初始化参数的名称:
Enumeration<String> en = filterConfig.getInitParameterNames();
while(en.hasMoreElements()){
String name = en.nextElement();
String value = filterConfig.getInitParameter(name);
System.out.println(name+" "+value);
}
○ <FilterMapping>的配置顺序有关
doFilter(request,response); -- 放行,放行到下一个过滤器中,如果没有下一个过滤器,到达目标资源.
Ø Filter相关的配置
<url-pattern>的配置---拦截的路径:
* 完全路径匹配 :以 / 开始 /demo4/demo1.jsp
* 目录匹配 :以 / 开始 以 * 结束. /* /demo1/*
* 扩展名匹配 :不能以 / 开始 以 * 开始. *.do *.action
Ø <servlet-name>的配置:根据Servlet的名称拦截Servlet.
Ø <dispatcher>的配置---拦截的方式:
* REQUEST :默认值.
* FORWARD :转发.
* INCLUDE :包含.
* ERROR :错误页面跳转.(全局错误页面)
§ cookie中汉子存储
□ 使用URLEncoder.encode(需要转换的字符串."utf-8")---编码
□ 使用URLEncoder.decode()需要解码的字符串,"utf-8")---解码
|
|