`

JSP学习系列 -- 过滤器

 
阅读更多

实现通过过滤器截获所有的请求,并将访问Http的头和内容打印处理

 

创建过滤器类

过滤器定义:过滤器先与Servlet执行,某个请求被一个过滤器处理完成后,它会自动将请求交给下一个过滤器处理,这样,客户的请求在过滤链里逐个处理,直到请求处理完毕。

过滤器必须实现接口Filter

 

 

public class TestFilter implements Filter {
    public TestFilter() {}
	public void destroy() {}
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest)request;
    	Enumeration enu = req.getHeaderNames();
    	System.out.println("---- read header -------");
    	while(enu.hasMoreElements()){
    		String name = (String)enu.nextElement();
    		System.out.println(name + "=" + req.getHeader(name));
    	}
    	System.out.println("--------------");
		BufferedReader reader = req.getReader();
    	String str;
    	System.out.println("-----read content-------");
    	while((str = reader.readLine()) != null){
    		System.out.println(str);
    	}
    	System.out.println("--------------");
    	
		chain.doFilter(request, response);
	}
	public void init(FilterConfig fConfig) throws ServletException {}
}

在以上代码中之所以可以将ServletRequest强制转换为HttpServletRequest 是

因为Sun初始的设计是想兼容除了HTTP协议,还想兼容别的协议,而实际Servlet目前只是实现了

Http协议,所有基本可以认为所有的ServletRequest 都是HttpServletRequest 。

 

HttpServletRequest req = (HttpServletRequest)request;
 

 

 

 在web.xml进行配置

 

  <filter>
    <display-name>TestFilter</display-name>
    <filter-name>TestFilter</filter-name>
    <filter-class>com.hry.test.TestFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>TestFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

 经过以上配置后,服务器将打印所有的请求的内容。

 

补充:

过滤器还常被应用到处理Post方式提交表单里的乱码。

分享到:
评论

相关推荐

    JSP Servlet学习资料--全套PPT

    7. **过滤器链**:多个过滤器按顺序执行,理解其工作原理和配置。 8. **部署描述符(web.xml)**:配置Servlet、过滤器和监听器的核心文件。 **通过这套“JSP Servlet学习资料--全套PPT”,你将能够深入理解这两个...

    管理系统系列--图书管理系统---基于Jsp+Servlet实现.zip

    2. Servlet基础:涵盖Servlet生命周期、服务方法、请求和响应对象、会话管理以及过滤器和监听器。 3. 数据库连接与操作:使用JDBC(Java Database Connectivity)进行数据库连接,执行SQL语句,处理结果集。 4. MVC...

    jsp课程设计-学生成绩管理系统

    可以使用过滤器(Filter)进行预处理,限制非法请求。同时,合理设计数据库索引,优化查询性能,提升用户体验。 8. **测试与部署** 完成系统开发后,需进行单元测试、集成测试和系统测试,确保各功能正常运行。...

    JSP2.0大学教程-覃华

    6. **Servlet 2.4兼容**:JSP 2.0与Servlet 2.4规范兼容,利用了Servlet的许多改进,如过滤器、监听器等。 7. **错误处理和调试**:引入了更友好的错误处理机制,以及在开发过程中方便的调试工具。 8. **标签文件*...

    JSP-Shopping-Cart.zip_JSP购物_shopping_shopping cart_类似淘宝_购物车

    3. **JSTL(JavaServer Pages Standard Tag Library)**:提供一系列标签库,简化JSP页面的编写,如用于数据库操作的SQL标签。 4. **MVC(Model-View-Controller)**:一种设计模式,用于分离业务逻辑、视图展示和...

    Servlet和Jsp学习指南源代码.rar

    这份"Servlet和Jsp学习指南源代码.rar"压缩包很可能包含了一系列示例代码,帮助初学者理解这两种技术的工作原理和实际应用。 Servlet是Java语言编写的服务端组件,主要负责处理HTTP请求,并生成响应。它提供了对...

    JSP中文参考手册-离线版.rar

    **JSP开发** 过程中可能涉及的其他主题包括错误处理、过滤器、监听器、会话管理、安全性、性能优化等方面。通过深入理解这些知识点,开发者能够编写出高效、健壮且易于维护的JSP应用程序。 **JSP_Web** 涉及到的是...

    9. 过滤器.zip过滤器

    过滤器.zip”可能包含一系列的视频教程和代码示例,旨在教授如何在实际项目中应用过滤器技术。 过滤器的主要功能包括: 1. **数据转换**:在请求到达目标Servlet或JSP之前,可以对请求参数进行转换,如字符编码...

    JSP学习笔记截屏1

    在《JSP学习笔记截屏1》中,我们可以预见到这是一份关于学习JSP过程中的记录,包含了韩顺平老师的视频教程内容和个人的学习心得。韩顺平老师是一位知名的Java和Web开发领域的讲师,他的课程通常深入浅出,易于理解,...

    JSP-网上书店购物系统

    文件"store"可能是项目的根目录,包含了一系列的子目录和文件,如WEB-INF目录,其中存放了web.xml配置文件,定义了Servlet和过滤器的映射,以及其他部署相关的配置。此外,可能还有源代码目录(如src),存放Java类...

    jsp学习资料,有关动态网页制作的基础学习

    3. "examples"可能是更多JSP或相关Java Web技术的实例,涵盖Servlet、过滤器、监听器等,帮助你深入理解Web应用的架构和工作流程。 通过这些学习资料,你可以逐步掌握如何使用JSP进行动态网页开发: - 学习JSP基本...

    jsp系列资料(chm)

    总结来说,这个`jsp系列资料`压缩包是一个全面的JSP学习资源库,从基础概念到高级技术,从环境配置到实战经验,为学习和精通JSP提供了丰富的材料。通过深入学习这些资料,开发者不仅可以掌握JSP的基本操作,还能理解...

    javaEE(上下文_监听器_过滤器) ppt

    Java EE(Java Platform, Enterprise Edition)是用于构建企业级分布式应用程序的框架,它提供了一系列标准接口和组件模型,包括上下文、监听器和过滤器。这些概念是Java EE开发中的核心组成部分,对于理解和优化Web...

    jsp-计算器

    4. `WEB-INF/web.xml` - 应用的部署描述符,可能配置了Servlet或过滤器。 5. 其他辅助文件,如图片资源或额外的Java类文件。 通过这个简单的项目,开发者可以学习到JSP的基本语法、JavaScript的前端交互以及如何...

    登录之jsp+servlet+jstl+el+过滤器+监听器.zip_OAI_Serverlet_severlet

    在IT行业中,Web开发是至关重要的领域,而`JSP(JavaServer Pages)`、`Servlet`、`JSTL(JavaServer Pages Standard Tag Library)`、`EL(Expression Language)`以及`过滤器(Filter)`和`监听器(Listener)`是...

    关于jsp的一系列错误整理

    需设置过滤器以指定请求编码,例如在`struts-config.xml`或`struts2-convention-plugin.xml`中配置`filterEncoding`。 通过不断学习和实践,我们可以避免这些常见错误,提高JSP开发效率。同时,分享和交流错误解决...

    More-Servlets-and-JSP

    2. **过滤器(Filters)**:在Servlets中,过滤器可以对请求和响应进行预处理和后处理,如字符编码转换、登录检查等。了解如何配置和实现Servlet Filter是提升应用功能的关键。 3. **监听器(Listeners)**:监听器...

    耿祥义源jsp,java系列教材代码合集

    此外,还会涉及Servlet、JDBC、MVC架构、过滤器和监听器等核心概念,这些都是Java Web开发中的重要组成部分。 此外,由于压缩包的格式为.rar,这表明你需要使用支持RAR格式的解压工具,如WinRAR或7-Zip,来提取其中...

    管理系统系列--心理咨询预约管理系统(javaEE),个人毕业设计.zip

    4. **配置文件**:如web.xml,用于配置应用服务器中的Servlet和过滤器。 5. **数据库脚本**:创建表、定义关系以及初始化数据的SQL语句。 6. **测试代码**:单元测试和集成测试,可能使用JUnit或其他测试框架。 7...

Global site tag (gtag.js) - Google Analytics