JBuilder2005 Servlet开发之过滤器

2016-02-19 18:59 3 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的JBuilder2005 Servlet开发之过滤器,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - 编程语言 】

  过滤器可以在请求到达jsp或Servlet之前或响应返回客户端之前添加一些额外的操作。假如有多个JSP页面和Servlet都需要进行一个相同或相似的操作,我们可以把这个操作抽取到一个Servlet过滤器中,并通过匹配路径截获感爱好JSP或Servlet。
  
   我们举几个典型的过滤器应用的例子,读者可以推而广之:
  
   ·编码转换
  
  乱码问题困扰了不少的Web应用程序开发者,这是因为基于Java的Web应用程序可能运行于不同的Web应用程序器、操作系统平台或硬件服务器上,不同的环境有自己默认的编码类型,在数据的转换过程中不同的默认编码是乱码问题的始作俑者,所以在开发JSP时经常需要将数据进行编码转换。我们可以创建一个Servlet过滤器在请求进入服务程序前都进行编码转换。
  
   ·添加统一的标题或脚注
  
   有些网页需要添加统一的标题头或脚注,可以通过Servlet过滤器在响应返回到客户端前给网页添加上统一的标题和脚注。
  
   ·进行安全的控制
  
   登录系统后,一般都会将用户信息对象放入到session中,可以通过Servlet过滤器在请求进入JSP或Servlet前判定session中是否有用户信息对象,假如有,则说明用户已经登录,假如没有,则说明用户还没有登录,将请求重定向到登录页面。
  
   本节所提供的Servlet过滤器就是为了实现安全控制,下面我们就来开发这个Servlet。
  
   1.打开创建Servlet过滤器的向导。
  
   通过File->New...->Web->双击Filter Servlet图标启动创建Servlet过滤器的向导,如下图所示:
  
  
  图 7 指定Servlet过滤器的名字

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  
   和创建标准的Servlet相似,在这步里指定过滤器的类名和包名。在Class name中输入LoginCheckFilter,包名依就为bookstore.servlet。按Next到下一步。
  
   2.指定过滤器的路径匹配模式
  
  
  图 8 指定过滤器的匹配路径模式

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  
   ·Name:logincheckfilter,指定过滤器的名字
  
   ·URL pattern:/*,指定过滤器路径匹配模式,这里我们使过滤器对所有的请求都进行过滤。
  
   按Finish创建此过滤器。
  
   打开向导创建的LoginCheckFilter.java文件,并录入粗体所示的代码,如下所示:
  
   代码清单 4 LoginCheckFilter.java代码
  
  

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)
  

来源:https://www.tulaoshi.com/n/20160219/1619732.html

延伸阅读
标签: Web开发
说明: 以下代码运行环境:jdk1.4,工具JBuilder2005,Servlet2.4,JSP2.0红色标记为关键代码.由于工程太大,我在这里只放有XML文件、JSP文件、过滤器具体内容用论坛回复。 顺序为:JSP文件---过滤器---XML文件.  %@ page contentType="text/html; charset=GBK" % %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" % % Object s...
阿里云邮箱如何设置过滤器   阿里云邮箱设置过滤器方法: 1、点击邮箱页面上方的"邮箱设置"链接,在新页面点击"过滤器"。 2、进入"过滤器"编辑页面,点击"创建过滤器规则"按钮,一个空的过滤器将会显示在此页上。 3、设置邮件过滤规则,默认是启用状态,在"收到邮件...
1、上部过滤器 架于鱼缸上部的过滤槽(盒),由沉水式水泵或离水式水泵驱动供水,靠泻流口,使水流回鱼缸,维护间格时间较短维护较方便,但不推荐用于加注co2的水草缸 2、沉水式过滤器 在沉水式水泵下方进水口处直接装上置有滤棉或深化棉的滤盒(桶)维护间格时间较短,亲洗较不便,价格便易 3、外置式过滤器 一般为...
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.colorchooser.*; /**  * pTitle: 颜色选择器/p  * pDescription: 演示一个颜色选择器,可以从样本中选择,可以使用HSB模式和RGB模式/p  * pCopyright: Copyright (c) 2003/p  * pFilename: ColorChoos...