Oracle培训(四十六)——Servlet第六章知识点总结——过滤器编程

Oracle培训(四十六)——Servlet第六章知识点总结——过滤器编程

目标

编写一个过滤器

部署一个过滤器

了解请求和响应包装器

在请求分发器下的过滤器

知识点预览

过滤器

过滤器

1. 什么是过滤器

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

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

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

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

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

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

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

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

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

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. 过滤器生命周期

8. 类图

9. HelloFilter代码框架

10. 初始化方法

11. doFilter()方法

12. 过滤器执行流程

13. 过滤器配置

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

i. <filter>标签

1. <filter-name>

2. <filter-class>

3. <init-param>

a) <param-name>

b) <param-value>

14. HelloFilter 配置

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. 实例—包装类

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. 在分发器下的过滤器

过滤器回顾

过滤器的概念

编写和部署过滤器

包装器的概念

编写包装器

Filter请求分发器下的过滤器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle TNS 314 协议是 Oracle 数据库中用于客户端与服务器之间建立网络连接的一种通信协议。在链接认证流程中,客户端与服务器之间需要进行一系列的握手过程来确保安全性和验证身份。 首先,客户端发送一个与服务器建立连接的请求。这个请求的包中包含了一些连接信息,如数据库实例名和监听端口号等。服务器接收到这个请求后,会根据其中的信息寻找对应的数据库实例。 接下来,服务器会发送一个回复包给客户端,包中包含了服务器对连接请求的回应信息。 然后,客户端会发送一个包给服务器,这个包中包含了客户端的用户名和密码等认证信息。这个认证信息会被服务器用于验证客户端的身份。 服务器在收到客户端的认证信息后,会进行身份验证。验证成功后,服务器会发送一个认证成功的回复给客户端。 客户端接收到服务器的认证成功回复后,会发送一个包给服务器,以确认连接状态。 最后,服务器接收到客户端的确认包后,确认连接状态,并发送一个连接确认的回复给客户端。 通过以上的链接认证流程,客户端与服务器之间建立了安全的连接,并且成功验证了双方的身份。这样,客户端就可以通过这个连接与服务器进行数据的传输和交互。 在包分析中,我们可以通过抓包工具(如Wireshark)来捕获这些网络数据包,并进行解析和分析。通过分析这些数据包的结构和内容,我们可以更深入地了解 Oracle TNS 314 协议的工作原理和通信过程,从而为系统的故障排查和性能优化提供依据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值