Java EE 之 过滤器入门学习与总结(2)

今天就对使用Filter技术能做什么来个小小的归纳。也为了方便今后的复习。


控制浏览器不进行对jsp页面的缓存


//在doFilter方法中添加这样的代码
HttpServletRequest request = (HttpServletRequest )req;
HttpServletResponse response = (HttpServletResponse )resp;

response.setDateHeader("Expires",-1);
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");

//放行
chain.doFilter(request,response);

然后记得在web.xml文件中进行声明,最重要的是在url-pattern中设置为*.jsp即可。其余的就不在过多的讲述。
这样,就可以实现不缓存jsp页面的方法了。


Filter 映射的细节



在filter-mapping中配置dispatcher子标签可以控制过滤的范围和方向。有如下四个级别(或者选择性):

  • REQUEST:默认值;对以请求方式访问的有效
  • FORWARD:对转发方式的过滤有效
  • INCLUDE:对include方式的过滤有效
  • ERROR“对error方式的过滤有效
    需要注意的是:filter-mapping可以对一个filter配置多个;
    dispatcher标签也可以配置多个,而且同时有效!
    使用的时候需要考虑清楚对哪一种方式进行过滤。这样才会有针对性的对网站起到优化的作用!

使用过滤器增强request的转义的功能



实现的步骤:

  • 自定义一个实现了HttpServletRequestWrapper类的类
  • 重写里面的getParameter方法,完成转义的效果
  • 在过滤器的doFilter方法中进行相关字符串的转移效果
  • 最后调用chain.doFilter方法进行放行即可
    具体的转义功能实现代码如下:
//该方法来自Tomcat\apache-tomcat-8.0.24\webapps\examples\WEB-INF\classes\util\HTMLFilter.java.
//我们只需要把要进行转义的字符串调用此方法进行转义即可
public static String filter(String message) {

        if (message == null)
            return (null);

        char content[] = new char[message.length()];
        message.getChars(0, message.length(), content, 0);
        StringBuilder result = new StringBuilder(content.length + 50);
        for (int i = 0; i < content.length; i++) {
            switch (content[i]) {
            case '<':
                result.append("&lt;");
                break;
            case '>':
                result.append("&gt;");
                break;
            case '&':
                result.append("&amp;");
                break;
            case '"':
                result.append("&quot;");
                break;
            default:
                result.append(content[i]);
            }
        }
        return (result.toString());

    }


未完 ,待续······

时间: 2024-09-29 08:24:06

Java EE 之 过滤器入门学习与总结(2)的相关文章

Java EE 之 过滤器入门学习与总结(1)

使用Filter技术来配合开发会使得开发变得简单起来.简单的一个例子就表现在"乱码问题"上.不使用Filter的话,我们有可能需要为每一个网页设置字符编码集,如request.setCharacterEncoding("charsetname");response.setCharacterEncoding("charset")以及response.setContentType("text/html;charset="+targ

Java EE应用程序入门

本文将详细介绍使用 EJB 3.0 技术开发企业应用程序的基础知识,而 EJB 3.0 是 Java EE 5 平台的组成部分.本文还将阐述如何通过 EJB 3.0 技术简化开发企业应用程序的流程.本文使用的是 NetBeans IDE 6.0 发行版. 先决条件 本文假定您在以下方面拥有基本知识和编程经验: Java 编程 NetBeans IDE 教程所需软件 对于本教程,您需要在计算机上安装以下软件: "Web & Java EE" 或 "All" 下

JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)

[前言] JSP本身是JavaWeb中的知识,但是在学习Android网络时,必然要涉及到与服务器之间的交互,所以学一下JSP以及其他JavaWeb的内容还是很有必要的,至少能明白程序在访问服务器时,整个过程的原理. 其实,在学习Android之前,Java和JavaWeb的知识都是要先学习的.本人是在2014年7月正式开始Android方向的研究学习,在这之前没有接触任何和计算机软件相关的知识(唯一相关的是,本科学过一门C语言课程,不过现在已经忘光了). 我们来看下面的这张图就知道了: 两张图

Java Web Filter 过滤器学习教程(推荐)_java

一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过F

针对Java EE 7三个特性进行详细的剖析

Java EE 7 使得开发人员可以写更少的样板代码,通过丰富的组件来提供一个完整.全面.集成的堆栈来支持和构建最新的 Web 应用程序和框架,同时提供更具扩展性.丰富性和简易的功能.企业将会从便捷式批处理.改进的扩展性等新功能中获益.本文将通过对这个版本中新增组件 WebSocket 1.0.JSON Processing 1.0.JAX-RS 2.0.JSF 2.2 和 JMS 2.0 的介绍及若干示例的展示,来对以上三个特性进行详细的剖析. Java EE 作为一个企业应用的部署平台,具有

EJB入门学习代码实例

对于一个Java开发人员来说,EJB入门是一个小的关口,因为它比单纯的开发java.servlet.JSP更多 了几分系统设置上的麻烦,同时需要你更先要去了解更为广泛的知识后才能好的利用它.好了,我们就开 始我们的又一次EJB学习品罢. 本程序使用了Sun的J2EE系统(如果你在使用J2EE设置上有什么问题,可以去参见本人的代码人生之学 习品中的<J2EE使用指南>的文章).使用的例程也是J2EE中的一个最简单的例子.使用的编辑和make工 具是JBuilder.不过你也可以使用手动来用jav

最重要的Java EE最佳实践

引言 在过去的几乎整整十年中,人们编写了很多有关 Java Platform, Enterprise Edition (Java EE) 最佳实践的内容.现在有十多本书籍 和数以百计(可能更多)的文章,提供了关于应该如何编写 Java EE 应用程序的 见解.事实上,这方面的参考资料如此之多,并且这些参考资料之间往往还存在 着一些矛盾的建议,以至于在这些混杂的内容中进行学习本身也成为了采用 Java EE 的障碍.因此,为了给刚进入这个领域的客户提供一些简单的指导,我们汇编 了这个最重要的最佳实

Java EE 5技术简介

NetBeans IDE 6.0 的开发是在 Java EE 和 Glassfish 工作组的密切合作下完成的,它实现了与新的 Java EE 5 规范的完美集成,从而可以在此 IDE 中轻松地使用新规范.NetBeans IDE 6.0 是您快速学习 Java EE 5 编程并使用它高效工作的最佳途径. 本文档介绍了 Java EE 5 规范的一些重要概念,以及它们如何与您目前的编程项目相关联的.本文将 介绍以下主题: 标注取代部署描述符 简化的 EJB 软件开发 使用依赖关系注入来访问资源

Java EE 5

简介 Java EE 技术是 Java 语言平台的扩展,支持开发人员创建可伸缩的强大的可移植企业应用程序.它为应用程序组件定义了四种容器:Web.Enterprise JavaBean(EJB).应用程序客户机和 applet.一个应用服务器规范详细描述了这些容器和它们必须支持的 Java API,这促使 Java EE 产品相互竞争,同时保证符合这个规范的应用程序可以在服务器之间移植. 这个平台的最新版本 Java EE 5 已经于 2006 年 5 月发布.Java EE 5 主要关注提高开