Java小服务程序 |需要过滤器
借助几个示例可以理解实现过滤器的必要性让我们以一个 Web 应用程序为例,该应用程序将要以特定格式呈现给客户端的数据格式化,例如 Excel 但是,在稍后的时间点,客户端可能需要数据其他格式,例如超文本标记语言 (HTML) 可移植文档格式 (PDF) 或 Word。在这种情况下,不必每次都修改代码来改变数据的格式,而是可以创建一个过滤器来动态地将数据转换为所需的格式。
让我们考虑另一个示例,其中开发人员创建了一个 Web 应用程序,其中一个 servlet 处理用户登录。这意味着当用户提交他的凭据时,servlet 会根据用户信息验证凭据。 serviet 还为用户创建会话,因此应用程序中的其他组件也可以使用用户的会话详细信息。稍后,开发人员可能需要在应用程序服务器的日志系统中为每个用户登录尝试维护一个登录条目。为了实现这一点,开发人员需要更改现有代码或向 servlet 添加额外代码并重新部署 Web 应用程序。
在这种情况下,servlet 除了实现其主要目标(即接受请求并向客户端发送响应)外,还必须实现其他功能。这个额外的 lo servlet 降低了应用程序的效率。为了克服这个问题,引入了可以实现这些附加功能的过滤器,例如验证登录凭据,维护数据库中的服务器日志。过滤器最显着的特性之一是它也可以在其他 Web 应用程序中重用。
可以使用过滤器的一些情况和任务如下:
- 安全验证
- 会话验证
- 记录操作
- 国际化
- 触发资源访问事件
- 图像转换
- 缩放地图
- 数据压缩
- 加密
- 代币化
- Mime 类型更改
- XML 响应的缓存和 XSL 转换
- 调试
详细说明需要过滤器的一些情况:
- 修改请求字符加密:目前,一些浏览器不会在协议请求的 Content-Type 标头中发送字符加密数据。如果购物者请求没有加密,则仪器使用默认加密来分析请求参数。如果购物者没有设置字符加密,并且请求参数区域单元使用特殊加密编码而不是默认值,则参数解析不正确。您将能够使用 ServletRequest 接口中的策略 setCharacterEncoding 来排列密码。由于在解析任何帖子知识或从请求中读取任何输入之前应该知道该技术,因此该执行可能是过滤器的主要应用程序。
- 减少响应的大小:修改响应的过滤器的另一个示例是包含在示例中的压缩过滤器随 Tomcat servlet 引擎一起分发。尽管高速网络连接越来越普遍,但仍然需要有效地使用信息度量。压缩过滤器很方便,因为您可以将其附加到任何 servlet 以减少响应的规模。