Servlet第六章知识点总结——过滤器编程

Servlet第六章知识点总结——过滤器编程

 

 

目标

 

编写一个过滤器

部署一个过滤器

了解请求和响应包装器

在请求分发器下的过滤器

 

知识点预览

 

过滤器

 

过滤器

 

1.       什么是过滤器

a)         过滤器处于请求与请求的资源之间

                                      i.              资源可以是一个servlet  JSP页面 HTML.

                                    ii.              他们在请求资源前后执行

                                  iii.              请求/响应可能在传递前后被修改

                                   iv.              过滤器可能作为链的一部分执行

                                     v.              可以使用过滤器器以提供:会话管理、日志记录、安全、编码、XML转换

2.       在J2EE网络程序中的过滤器

 

Servlet第六章知识点总结——过滤器编程_第1张图片

3.       通过过滤器调用路径资源

 

Servlet第六章知识点总结——过滤器编程_第2张图片

4.       网络层过滤器对象交互图

 

Servlet第六章知识点总结——过滤器编程_第3张图片

5.       过滤器开发步骤

a)         第一步:编写过滤器类

b)        第二步:编写测试页面

c)         第三步:编译和部署过滤器

d)        第四步:配置运行目录

e)         第五步:运行

6.       编写过滤器

a)         实现javax.servlet.Filter接口

                                      i.              init(javax.servlet.FilterConfig config)

                                    ii.              doFilter(javax.servlet.ServletRequest res, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain)

                                  iii.              destroy()

                                   iv.              chain.doFilter(javax.servlet.ServletRequest res, javax.servlet.ServletResponse res)

7.       过滤器生命周期

 

Servlet第六章知识点总结——过滤器编程_第4张图片

8.       类图

 

Servlet第六章知识点总结——过滤器编程_第5张图片

9.       HelloFilter代码框架

 

Servlet第六章知识点总结——过滤器编程_第6张图片

10.   初始化方法

 

Servlet第六章知识点总结——过滤器编程_第7张图片

11.   doFilter()方法

 

Servlet第六章知识点总结——过滤器编程_第8张图片

12.   过滤器执行流程

 

Servlet第六章知识点总结——过滤器编程_第9张图片

13.   过滤器配置

a)         在布署描述符中配置过滤器-web.xml

                                      i.              <filter>标签

1.         <filter-name>

2.         <filter-class>

3.         <init-param>

a)         <param-name>

b)        <param-value>

14.   HelloFilter 配置

 

Servlet第六章知识点总结——过滤器编程_第10张图片

15.   配置使用过滤器的位置

a)         标签:

                                      i.              <url-pattern>

b)        实例:

                                      i.              <url-pattern>/*</url-pattern>      所有的地方都通过过滤器

                                    ii.              <url-pattern>/*.jsp</url-pattern> 只有jsp页面通过过滤器

                                  iii.              <url-pattern>/文件夹名/*</url-pattern>     只有在某文件夹下的所有页面,才通过过滤器

                                   iv.              <url-pattern>/servlet/*</url-pattern>   filter映射方式一致的servlet将通过过滤器

16.   拦截请求/响应

a)         [Http]ServletRequestWrapper

Add添加额外的内容

b)        [Http]ServletResponseWrapper

Set设置额外的请求属性

c)         过滤器可以包装请求和响应

d)        给我们能够改变一个请求数据的能力

改变内容类型

添加或删除请求的头信息

e)         包装响应可以获取和改变的响应内容

17.   实例—包装类

 

Servlet第六章知识点总结——过滤器编程_第11张图片

18.   实例—过滤器

a)         public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

HttpServletRequest httpReq=(HttpServletRequest)request;

chain.doFilter(new MyRequestWrapper(httpReq), response);

}

19.   包装器

a)         Request请求包装器将会重写getter()setter()

b)        Response响应包装器一般会重写getWriter()getOutputStream()

                                      i.              为被调用者写入提供自己的缓冲

                                    ii.              然后能操作缓冲

c)         如果响应包装器提供自己的缓冲

                                      i.              必须管理响应头信息以便调用方记得特别设置头信息长度

20.   在分发器下的过滤器

a)         分发器请求的4种方式

                                      i.              REQUEST

                                    ii.              INCLUDE

                                  iii.              FORWARD

                                   iv.              ERROR

b)        设定方法

<dispatcher>元素

21.   在分发器下的过滤器

 

Servlet第六章知识点总结——过滤器编程_第12张图片

过滤器回顾

 

 

过滤器的概念

编写和部署过滤器

包装器的概念

编写包装器

Filter请求分发器下的过滤器

 

你可能感兴趣的:(Servlet第六章,过滤器编程)