第三章Java基础加强Servlet过滤器.pptx_第1页
第三章Java基础加强Servlet过滤器.pptx_第2页
第三章Java基础加强Servlet过滤器.pptx_第3页
第三章Java基础加强Servlet过滤器.pptx_第4页
第三章Java基础加强Servlet过滤器.pptx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章,Java基础加强-Servlet过滤器,JavaWeb,第1页/共38页,Filter典型应用,Filter(过滤器)简介,Filter(过滤器)接口,本章目标,点重,第2页/共38页,点重,Filter简介,Filter(过滤器)简介 Filter 的基本功能是对 Servlet 容器调用 Servlet 的过程进行拦截,从而在 Servlet 进行响应处理的前后实现一些特殊的功能。 在 Servlet API 中定义了三个接口类来开供开发人员编写 Filter 程序:Filter, FilterChain, FilterConfig Filter 程序是一个实现了 Filter 接

2、口的 Java 类,与 Servlet 程序相似,它由 Servlet 容器进行调用和执行 Filter 程序需要在 web.xml 文件中进行注册和设置它所能拦截的资源:Filter 程序可以拦截 Jsp, Servlet, 静态图片文件和静态 html 文件,第3页/共38页,Filter执行过程,第4页/共38页,Filter 的基本工作原理,编译时当在 web.xml 中注册了一个 Filter 来对某个 Servlet 程序进行拦截处理时,这个 Filter 就成了 Servlet 容器与该 Servlet 程序的通信线路上的一道关卡,该 Filter 可以对 Servlet 容器发

3、送给 Servlet 程序的请求和 Servlet 程序回送给 Servlet 容器的相应进行拦截,可以决定是否将请求继续传递给 Servlet 程序,以及对请求和相应信息是否进行修改 在一个 web 应用程序中可以注册多个 Filter 程序,每个 Filter 程序都可以对一个或一组 Servlet 程序进行拦截。 的若有多个 Filter 程序对某个 Servlet 程序的访问过程进行拦截,当针对该 Servlet 的访问请求到达时,web 容器将把这多个 Filter 程序组合成一个 Filter 链(过滤器链)。Filter 链中各个 Filter 的拦截顺序与它们在应用程序的 we

4、b.xml 中映射的顺序一致,第5页/共38页,Filter接口,第6页/共38页,过滤器部署, LoginFilter LoginFilter com.osekj.oa.web.filter.LoginFilter LoginFilter /* ,第7页/共38页,Filter 子元素,第8页/共38页, 子元素可以设置的值及其意义: REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,那么该过滤器就不会被调用。 INCLUDE:如果目标资源是通过RequestDispatch

5、er的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。 FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。 ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。,典型应用1,浏览器不缓存页面的过滤器 有 3 个 HTTP 响应头字段都可以禁止浏览器缓存当前页面,它们在 Servlet 中的示例代码如下 response.setDateHeader(Expires,-1); response.setHeade

6、r(Cache-Control,no-cache); response.setHeader(Pragma,no-cache); 并不是所有的浏览器都能完全支持上面的三个响应头,因此最好是同时使用上面的三个响应头,第9页/共38页,典型应用2-字符过滤器,第10页/共38页, CharactorFilter com.osekj.oa.util.CharactorFilter encoding UTF-8 CharactorFilter /* ,public class CharactorFilter implements Filter String encoding = null; public

7、 void destroy() encoding = null; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException if(encoding != null) request.setCharacterEncoding(encoding); response.setContentType(text/html; charset=+encoding); chain.doFilter(request,

8、response); public void init(FilterConfig filterConfig) throws ServletException encoding = filterConfig.getInitParameter(encoding); ,典型应用3-权限验证,第11页/共38页,典型应用4-伪静态,1.下载urlrewrite-3.2.0.jar 2.配置web.xml过滤 3. jar包中有个conf-dist.xml文件,复制出来改名为urlrewrite.xml放在WEB-INF目录下,第12页/共38页, UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN UrlRewriteFilter /* REQUEST FORWARD , from: ht

温馨提示

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

评论

0/150

提交评论