过滤器可以在请求到达JSP或Servlet之前或响应返回客户端之前添加一些额外的操作。如果有多个JSP页面和Servlet都需要进行一个相同或相似的操作,我们可以把这个操作抽取到一个Servlet过滤器中,并通过匹配路径截获感兴趣JSP或Servlet。
我们举几个典型的过滤器应用的例子,读者可以推而广之:
·编码转换
乱码问题困扰了不少的Web应用程序开发者,这是因为基于Java的Web应用程序可能运行于不同的Web应用程序器、操作系统平台或硬件服务器上,不同的环境有自己默认的编码类型,在数据的转换过程中不同的默认编码是乱码问题的始作俑者,所以在开发JSP时常常需要将数据进行编码转换。我们可以创建一个Servlet过滤器在请求进入服务程序前都进行编码转换。
·添加统一的标题或脚注
有些网页需要添加统一的标题头或脚注,可以通过Servlet过滤器在响应返回到客户端前给网页添加上统一的标题和脚注。
·进行安全的控制
登录系统后,一般都会将用户信息对象放入到session中,可以通过Servlet过滤器在请求进入JSP或Servlet前判断session中是否有用户信息对象,如果有,则说明用户已经登录,如果没有,则说明用户还没有登录,将请求重定向到登录页面。
过滤器例:
1. package bookstore.servlet;
2. …
3. public class LoginCheckFilter
4. extends HttpServlet implements Filter
5. {
6. …
7. public void doFilter(ServletRequest request, ServletResponse response
8. , FilterChain filterChain)
9. {
10. try
11. {
12. //进行请求和响应的类型转换
13. HttpServletRequest httpRequest = (HttpServletRequest) request;
14. HttpServletResponse httpResponse = (HttpServletResponse) response;
15.
16. boolean isValid = true;
17. String uriStr = httpRequest.getRequestURI().toUpperCase();
18. if (uriStr.indexOf("LOGIN.JSP") == -1 &&
19. uriStr.indexOf("SWITCH.JSP") == -1 &&
20. httpRequest.getSession().getAttribute("ses_userBean") == null)
21. {
22. isValid = false;
23. }
24. if (isValid)
25. {
26. filterChain.doFilter(request, response);
27. } else
28. {
29. httpResponse.sendRedirect("/webModule/login.jsp");
30. }
31.
32. } catch (ServletException sx)
33. {
34. filterConfig.getServletContext().log(sx.getMessage());
35. } catch (IOException iox)
36. {
37. filterConfig.getServletContext().log(iox.getMessage());
38. }
39. }
40. …
41. }
在web.xml中配置如下:
1. <web-app>
2. <display-name>webModule</display-name>
3. <filter>
4. <filter-name>logincheckfilter</filter-name>
5. <filter-class>bookstore.servlet.LoginCheckFilter</filter-class>
6. </filter>
7. <filter-mapping>
8. <filter-name>logincheckfilter</filter-name>
9. <url-pattern>/*</url-pattern>
10. </filter-mapping>
11. …
12. </web-app>
<filter-name>配置过滤器的名字和实现类,而<filter-mapping>配置过滤器的路径匹配模式。
发表评论
-
Tag教程
2010-02-27 14:58 615EL 表达式语言 http://www.code-123. ... -
server.xml元素属性详解
2008-08-23 14:12 732属性名解析 server port ... -
虚拟主目录的建立方法
2008-08-23 14:18 807建立站点www.prodream.com的步骤: 1.建立需 ... -
JSP动作指令
2008-08-23 14:35 662一、Include指令<jsp:include>标 ... -
JSP动作标签
2008-08-23 15:29 823jsp指令负责告诉jsp引擎如何把页面翻译成servlet. ... -
JSP的useBean动作指令-JSP页面加载过程与scope取值
2008-08-23 15:34 1993Jsp的useBean动作标签的JSP页面加载过程 < ... -
JSP内部对象与方法详解
2008-08-23 16:10 744① out - javax.servlet.jsp.jsp ... -
基于端口的虚拟主机的建立(终于晓得为什么没有成功的原因了)
2008-08-23 16:31 774基于端口号的虚拟主机 server.xml中@一个<C ... -
servlet-动态页面
2008-08-27 10:15 793一、动态页面与动态html页面的区别<?xml:name ... -
tomcat-建立虚拟子目录
2008-08-27 14:16 7541.最简单的方法是,在主目录下建立一个文件夹,这个就是一个虚拟 ... -
Servlet运行过程
2008-08-28 09:03 1186一.servlet的特点 二、servlet程序查询数据库的 ... -
servlet配置运行
2008-08-28 15:25 1074一.servlet的注射与运行 二、serv ... -
servlet-filter的一个例子
2008-08-28 16:39 799Filter的意思是可以在Servlet实例进行实质性的处理之 ... -
JSP/Servlet:控制器(Servlet)
2008-09-08 23:54 1160Model 2 架構將應用程式的Web 層區分為Contro ... -
http协议请求行,状态行,响应状态行
2008-09-09 21:19 54911.请求行 格式:请求方式 资源路径 HTTP版本号<C ... -
过滤器
2008-09-11 21:54 637什么是过滤器, 过滤器不是servlet, 它是一个可以 传送 ... -
URLPath匹配原则
2008-09-11 22:50 838URLPath匹配原则 路 ... -
web.xml原理与元素解析
2008-09-11 22:56 1612(tomcat实际上是一个servlet容器,而Apache是 ... -
乱码问题
2008-09-11 23:03 845预备知识: 1.字节和un ... -
servlet常用类
2008-09-22 12:58 756Servlet常用接口public interface S ...
相关推荐
在设计图中使用时,可以根据实际情况添加文字标注来进一步说明过滤器的具体类型或规格。 ##### 2. 带污染指示器的过滤器 - **符号**: 在基本过滤器符号的基础上增加了污染指示器的标志。 - **说明**: 当过滤器内部...
5. **应用案例**:该过滤器已经在钢铁厂的浊水净化、净循环水系统的旁滤处理等多个场合得到应用,并且经过长期运行验证,效果满意,证明了其稳定性和实用性。 6. **技术资料与标准**:虽然未详细列出,但设计规范应...
FFmpeg过滤器可以应用于视频制作、转码、实时视频处理等多种场合,能够极大地增强视频处理的灵活性和创造性。为了使用FFmpeg过滤器,用户需要了解过滤器的基本概念和如何将它们应用到具体的视频处理流程中。 首先,...
6. 环境因素对更换周期的影响:工业环境、使用设备的类型、空气质量、湿度、温度等都会影响过滤器的效率和使用寿命,因此在不同的应用场合,过滤器的更换周期也会有所不同。 7. 维护和监测:为了确保过滤器在适当的...
做成dll可以在很多场合使用,如自己写爬虫,要判断一个url是否已经访问过,判断一个单词是否在某个字典内,当集合很大的时候,用布隆过滤器很有优势,不过使用前,请了解它的优缺点(缺点是有一定的误判率)
Servlet 过滤器的适用场合包括认证过滤、登录和审核过滤、图像转换过滤、数据压缩过滤、加密过滤、令牌过滤、资源访问触发事件过滤等。 Servlet 过滤器接口的构成包括三个必须实现的方法:init、doFilter 和 ...
- CGQ系列过滤器特别适用于需要高可靠性和精细过滤的场合,如精密机械设备中的电液伺服系统及比例控制系统。 - 在这些系统中,过滤器通常安装在关键组件如泵或执行器之前,以保护它们免受杂质的损害。 - 通过去除...
Web页面的过滤与监听 了解Filter基本概念和适用场合 掌握使用Filter的基本步骤 会定义和使用Filter 掌握全局对象监听器的使用和应用 掌握会话对象监听器的使用和应用
根据提供的文档信息,我们可以归纳出以下关键知识点,主要聚焦于小金井过滤器的选型、规格和技术参数等方面。 ### 一、文档概述 文档标题为“小金井 过滤器 选型册.pdf”,这表明该文档是关于小金井品牌的过滤器...
1. 板式过滤器的基本工作原理:板式过滤器是一种利用多层矩形平板式过滤箱进行过滤的精密澄清设备。其工作过程涉及多层过滤箱并联工作,过滤箱层数及垛数可根据过滤流量需求进行调整。过滤器采用立式结构,设计紧凑...
G系列粗效空气过滤器按照效率级别分为G1至G4,以及特殊用途的GN、GH、GC和GT型号,满足不同场合的过滤需求。 过滤器的构造设计至关重要。过滤器的外框通常由坚固的防水板构成,确保折叠好的滤材牢固地固定在外框上...
在实际项目中,"jQuery图片筛选过滤器插件"可用于各种场合,如电子商务网站的商品图片展示,摄影作品集,旅行分享平台等。通过这个插件,不仅可以提高用户在图片库中的导航效率,还能提升网站的专业性和吸引力。 五...
切比雪夫过滤器是一种在信号处理领域广泛应用的数字滤波器类型,特别是在音频处理、通信和图像处理中。在MATLAB环境中,设计和实现这种滤波器是相对直观且高效的。下面我们将深入探讨切比雪夫过滤器的原理、特性以及...
本文将深入探讨QT事件过滤器的工作原理、应用场合以及如何实现自定义事件过滤器,帮助读者更好地理解和运用这一功能。 #### 事件过滤器的基本概念 在QT中,每一个对象(QObject及其子类)都有一个事件循环,负责...
根据给定的文件信息,以下是对“ITM 过滤器用户手册”中涉及的关键知识点进行的详细解读。...通过阅读本手册,用户可以更加深入地了解这些过滤器的工作原理和使用方法,有助于提高设备的使用效率和延长使用寿命。
过滤器与框架间的密封垫必须严密,选择适合高温、高湿环境的材料,以防止生物洁净室和医药洁净室中可能出现的污染问题,金属框体过滤器更适用于这些场合,避免使用可能滋生细菌的木质框体。 综上所述,过滤器的维护...
该耐高温无隔板空气过滤器的实施,有效地提高了空气过滤的效率和在高温环境下的工作性能,特别适用于需要过滤高温空气或消除异味的场合,如工业生产环境、厨房、实验室等。其结构紧凑,操作便捷,通过制冷和吸附双重...
自动卷绕式空气过滤器的控制方式对提高操作的便利性、保证过滤效果及延长使用寿命具有重要作用。控制方式的优化设计包含但不限于自动感应风速、自动调整过滤速度、智能监控系统等。智能控制模块能够根据过滤器两端的...
初效纸框过滤器是空调和通风系统中...综上所述,"初效纸框过滤器.pdf"这份文档可能详细阐述了初效纸框过滤器的设计原则、性能参数、应用场合以及维护保养等方面的知识,对于理解和选用此类过滤器具有很高的参考价值。
- 初阻力与终阻力:新过滤器的初始阻力(初阻力)较低,随着使用过程中的灰尘积累,阻力逐渐增加,达到终阻力时,过滤器需要更换。终阻力通常是初阻力的2~4倍,但不应过高以免影响空调系统风量。 3. 过滤器规格: ...