专题八 过滤器—Filter_第1页
专题八 过滤器—Filter_第2页
专题八 过滤器—Filter_第3页
专题八 过滤器—Filter_第4页
专题八 过滤器—Filter_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Hands-On实训教程系列实训教程系列企业应用实训教程企业应用实训教程JSP企业级应用企业级应用 Hands-On实训教程系列实训教程系列案例一案例一 过滤器过滤器Filter Hands-On实训教程系列实训教程系列教学目标教学目标 l1.1 Filter简介简介l1.2 Filter的运作方式的运作方式l1.3 Filter的定义与映射的定义与映射l1.4 Filter API介绍介绍 Hands-On实训教程系列实训教程系列工作任务工作任务 l在在Eclipse3.2IDE+Tomcat6.0环境中,编写一环境中,编写一个登录的例子,编写两个过滤器,个登录的例子,编写两个过滤器,Fi

2、lterDemo1过滤器用来对字符编码进行过滤,过滤器用来对字符编码进行过滤,FilterDemo2过滤器用来对页面权限的过滤。过滤器用来对页面权限的过滤。 Hands-On实训教程系列实训教程系列新建项目和开发目录新建项目和开发目录 l新建一个名为新建一个名为Login的的Tomcat Porject项目项目 l在在Login项目的目录中:项目的目录中:创建一个创建一个Hello的文件夹,其包括登录页面的文件夹,其包括登录页面hello.jsp 创建一个创建一个End的文件夹,其包括:登录成功页、的文件夹,其包括:登录成功页、密码错误页和用户名错误页密码错误页和用户名错误页 l在在WEB-I

3、NF/src中创建中创建demo.filter和和demo.servlet两个包两个包 l在在WEB-INF中创建中创建web.xml配置文件配置文件 Hands-On实训教程系列实训教程系列编写登录页面编写登录页面l编写编写Hello文件夹中的登录页面(文件夹中的登录页面(hello.jsp):): 用户名用户名: 密密 码码: Hands-On实训教程系列实训教程系列编写字符编码过滤器编写字符编码过滤器1l新建和编写新建和编写FilterDemo1类类导入需要的类和接口导入需要的类和接口import java.io.IOException;import javax.servlet.Filt

4、er;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest; Hands-On实训教程系列实训教程系列编写字符编码过滤器编写字符编码过滤器2l继承继承Filter接口接口 lInit()方法中设置字符编码方法

5、中设置字符编码filterConfig = filterconfig;targetEncoding = filterconfig.getInitParameter(encoding); Hands-On实训教程系列实训教程系列编写字符编码过滤器编写字符编码过滤器3ldoFilter()方法中设置请求的字符编码方法中设置请求的字符编码lsetFilterConfig()设置过滤器配置环境设置过滤器配置环境ldestroy() 销毁过滤器销毁过滤器HttpServletRequest httpservletrequest =(HttpServletRequest)request;httpservl

6、etrequest.setCharacterEncoding(targetEncoding);filterchain.doFilter(request, response); Hands-On实训教程系列实训教程系列编写验证权限过滤器编写验证权限过滤器l新建和编写新建和编写FilterDemo2类类 继承继承Filter接口接口编写编写doFilter()方法方法username = (String) session.getAttribute(username);if (username!= null&username.equals(handson)chain.doFilter(req

7、uest, response);elsehttpRequest.getRequestDispatcher(/Hello/hello.jsp).forward(httpRequest, httpResponse); Hands-On实训教程系列实训教程系列编写编写HelloServlet类类 l继承继承HttpServlet类类l编写编写doGet()方法方法l编写编写doPost()方法方法if(username!=&username.equals(handson)if(pwd!=&pwd.equals(handson)session.setAttribute(username

8、, username);response.sendRedirect(./End/success.html);elseresponse.sendRedirect(./End/error.html);elseresponse.sendRedirect(./End/faild.html); Hands-On实训教程系列实训教程系列配置过滤器配置过滤器1l配置配置FilterDemo1过滤器过滤器FilterDemo1demo.filter.FilterDemo1encodingGB2312FilterDemo1/* Hands-On实训教程系列实训教程系列配置过滤器配置过滤器2l配置配置Filter

9、Demo2过滤器过滤器FilterDemo2demo.filter.FilterDemo2FilterDemo2/End/* Hands-On实训教程系列实训教程系列配置配置Servletl配置配置HelloServlet类类HelloServlet demo.servlet.HelloServlet HelloServlet /HelloServlet.do Hands-On实训教程系列实训教程系列创建页面创建页面l创建创建success.html页面页面 l创建创建error.html页面页面 l创建创建faild.html页面页面 Hands-On实训教程系列实训教程系列总结总结lFil

10、ter的运作方式的运作方式lFilter的定义与映射的定义与映射lFilter API介绍介绍 Hands-On实训教程系列实训教程系列过滤器简介过滤器简介 lFilter是在是在Servlet 2.3和和JSP 1.2才新增加进来的功才新增加进来的功能。能。过滤器可附加到一个或多个过滤器可附加到一个或多个servlet或或JSP页面页面上,并且可以检查进入这些资源的请求信息。过滤上,并且可以检查进入这些资源的请求信息。过滤器可以做到:器可以做到:以常规的方式调用资源(即,调用以常规的方式调用资源(即,调用servlet或或JSP页面)页面)利用修改过的请求信息调用资源利用修改过的请求信息调用

11、资源调用资源,但在发送响应到客户机前对其进行修改调用资源,但在发送响应到客户机前对其进行修改阻止该资源调用,代之以转到其他的资源,返回一个特定阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出的状态代码或生成替换输出 Hands-On实训教程系列实训教程系列过滤器的运作方式过滤器的运作方式 l拦截从客户端发来的请求,对请求进行相应处拦截从客户端发来的请求,对请求进行相应处理,根据配置,发送到下一个过滤器理,根据配置,发送到下一个过滤器l在下一个过滤器中,进行进一步的处理,发送在下一个过滤器中,进行进一步的处理,发送到下一个过滤器到下一个过滤器l如此循环,直到传递到如此循

12、环,直到传递到Servlet、页面或者发、页面或者发送响应到客户端送响应到客户端 Hands-On实训教程系列实训教程系列Filter接口接口1 l一个执行过滤器的一个执行过滤器的Java类必须实现类必须实现javax.servlet.Filter接口。接口中含有三个过接口。接口中含有三个过滤器必须执行的方法:滤器必须执行的方法:init():容器所调用的初始化方法。它保证了在第:容器所调用的初始化方法。它保证了在第一次调用一次调用doFilter()前由容器调用。能获取在前由容器调用。能获取在web.xml文件中指定的初始化参数。该方法接受文件中指定的初始化参数。该方法接受一个一个Filte

13、rConfig类型的对象作为输入类型的对象作为输入 Hands-On实训教程系列实训教程系列Filter接口接口2doFilter():完成过滤行为的方法。过滤器拥有单:完成过滤行为的方法。过滤器拥有单个用于处理请求和响应的方法个用于处理请求和响应的方法doFilter()。这个方。这个方法接受三个输入参数:一个法接受三个输入参数:一个ServletRequest、一、一个个ServletResponse和一个和一个FilterChain对象。引对象。引入的入的FilterChain对象提供了后续过滤器所要调用对象提供了后续过滤器所要调用的信息的信息destroy():方法执行任何清理操作,这

14、些操作需:方法执行任何清理操作,这些操作需要在自动垃圾收集之前进行要在自动垃圾收集之前进行 Hands-On实训教程系列实训教程系列Filter的定义与映射的定义与映射1 l所有配置包含在所有配置包含在和和 中中元素名元素名必需必需/可选可选描述描述filter-name必需必需给过滤器分配一个选定的名字给过滤器分配一个选定的名字display-name可选可选过滤器别名过滤器别名description可选可选描述过滤器功能,及其它注释描述过滤器功能,及其它注释filter-class必需必需指定过滤器实现类的完全限定名指定过滤器实现类的完全限定名init-param可选可选定义可利用定义可利用FilterConfig的的getInitParameter方法读方法读取的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论