创建Servlet过滤器的向导

开发 后端
本文介绍创建Servlet过滤器的向导,包括指定过滤器的路径匹配模式,添加统一的标题或脚注等。

过滤器可以在请求到达JSP或Servlet之前或响应返回客户端之前添加一些额外的操作。如果有多个JSP页面和Servlet都需要进行一个相同或相似的操作,我们可以把这个操作抽取到一个Servlet过滤器中,并通过匹配路径截获感兴趣JSP或Servlet。

我们举几个典型的过滤器应用的例子,读者可以推而广之:

◆编码转换
乱码问题困扰了不少的Web应用程序开发者,这是因为基于Java的Web应用程序可能运行于不同的Web应用程序器、操作系统平台或硬件服务器上,不同的环境有自己默认的编码类型,在数据的转换过程中不同的默认编码是乱码问题的始作俑者,所以在开发JSP时常常需要将数据进行编码转换。我们可以创建一个Servlet过滤器在请求进入服务程序前都进行编码转换。

◆添加统一的标题或脚注
有些网页需要添加统一的标题头或脚注,可以通过Servlet过滤器在响应返回到客户端前给网页添加上统一的标题和脚注。

◆进行安全的控制
登录系统后,一般都会将用户信息对象放入到session中,可以通过Servlet过滤器在请求进入JSP或Servlet前判断session中是否有用户信息对象,如果有,则说明用户已经登录,如果没有,则说明用户还没有登录,将请求重定向到登录页面。

本节所提供的Servlet过滤器就是为了实现安全控制,下面我们就来开发这个Servlet。

1.打开创建Servlet过滤器的向导。

和创建标准的Servlet相似,在这步里指定过滤器的类名和包名。在Class name中输入LoginCheckFilter,包名依就为bookstore.Servlet。按Next到下一步。

2.指定过滤器的路径匹配模式
◆Name:logincheckfilter,指定过滤器的名字
◆URL pattern:/*,指定过滤器路径匹配模式,这里我们使过滤器对所有的请求都进行过滤。

按Finish创建此过滤器。

打开向导创建的LoginCheckFilter.java文件,并录入粗体所示的代码,如下所示:

package bookstore.servlet;  
…  
public class LoginCheckFilter  
extends HttpServlet implements Filter  
{  
public void doFilter(ServletRequest request, ServletResponse 
response, FilterChain filterChain)  
{   try   {   //进行请求和响应的类型转换   HttpServletRequest httpRequest = (HttpServletRequest) request;   HttpServletResponse httpResponse = (HttpServletResponse) response;   boolean isValid = true;   String uriStr = httpRequest.getRequestURI().toUpperCase();   if (uriStr.indexOf("LOGIN.JSP") == -1 &&   uriStr.indexOf("SWITCH.JSP") == -1 &&   httpRequest.getSession().getAttribute("ses_userBean") == null)   {   isValid = false;   }   if (isValid)   {   filterChain.doFilter(request, response);   } else   {   httpResponse.sendRedirect("/webModule/login.jsp");   }   } catch (ServletException sx)   {   filterConfig.getServletContext().log(sx.getMessage());   } catch (IOException iox)   {   filterConfig.getServletContext().log(iox.getMessage());   }   }   …  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.

【编辑推荐】

  1. Servlet中的doFilter方法
  2. 配置Servlet过滤器
  3. 安装Servlet和JSP开发工具
  4. Java Servlet入门教程
  5. Servlet过滤器是什么
责任编辑:佚名 来源: IT专家网
相关推荐

2021-07-05 15:22:03

Servlet过滤器客户端

2009-07-08 15:30:56

Servlet过滤器

2009-07-08 16:07:04

Servlet过滤器配

2009-07-06 13:02:49

Servlet过滤器

2009-07-03 18:26:11

Servlet过滤器

2011-07-14 13:20:49

Servlet过滤器

2009-07-08 16:10:36

Servlet和JSPJSP页面

2024-01-05 09:04:35

隆过滤器数据结构哈希函数

2009-06-18 10:13:00

Hibernate过滤

2024-11-04 08:45:48

布隆过滤器元数据指纹值

2009-07-14 09:09:08

Swing模型过滤器

2011-06-29 16:14:59

Qt 事件 过滤器

2009-09-29 13:55:23

Hibernate设置

2016-12-07 09:56:13

JavaFilter过滤器

2009-09-25 15:19:44

Hibernate过滤

2017-07-18 14:10:31

大数据Apache Flum过滤器

2017-04-12 14:43:01

Spring ClouZuul过滤器

2024-03-15 11:21:22

布隆过滤器数据库数据

2023-01-26 01:41:27

核心全局过滤器

2024-12-06 14:34:00

Spring过滤器
点赞
收藏

51CTO技术栈公众号