- 浏览: 124513 次
- 性别:
- 来自: 深圳
文章分类
最新评论
doFilter方法中有一个FilterChain参数,用于表示过滤器链,下面这个草图就是过滤器链的简单表述。
将在第15课中的登录程序使用过滤器重写
LoginFilter.java 在这个过滤器中判断session中的user是否存在,如不存在就返回登录界面
package com.test.filter; import java.io.IOException; import javax.servlet.Filter; 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; import javax.servlet.http.HttpSession; public class LoginFilter implements Filter { public void destroy() { System.out.println("filter destroy invoed"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest r = (HttpServletRequest)request; String requestURI = r.getRequestURI(); //下面这两个页面,不能过滤,在MyLoginServlet中还是需要判断session中的user是否为空 if(requestURI.endsWith("login.jsp") || requestURI.endsWith("MyLoginServlet")){ chain.doFilter(request, response); return; } HttpSession session = r.getSession(); //如果session中的user为空,则返回登录页面 if(null == session.getAttribute("user")){ request.getRequestDispatcher("/filter/login.jsp").forward(request, response); return; }else{ chain.doFilter(request, response); } } public void init(FilterConfig filterConfig) throws ServletException { System.out.println("filter init invoked"); } }
过滤器新建好后,需要配置web.xml文件
<filter> <filter-name>loginfilter</filter-name> <filter-class>com.test.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>loginfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
过滤链
存在多个过滤链时,是以在web.xml文件中的序列来排队过滤。
如下图,两个url-pattern是一样的,表示都对note进行过滤,先进filter1再进filter2过滤器。
此外还可以为过滤器配置初始参数
<filter> <filter-name>loginfilter</filter-name> <filter-class>com.test.filter.LoginFilter</filter-class> <init-param> <param-name>hello</param-name> <param-value>world</param-value> </init-param> <init-param> <param-name>zhang</param-name> <param-value>sang</param-value> </init-param> </filter>
然后在filter类的init方法中取出。
public void init(FilterConfig filterConfig) throws ServletException { String value1 = filterConfig.getInitParameter("hello"); String value2 = filterConfig.getInitParameter("zhang"); }
此外还可以在filter类中获取application对象,如下
filterConfig.getServletContext();
HttpServletRequest r = (HttpServletRequest)request; r.getSession().getServletContext();
发表评论
-
深入研究Servlet线程安全性问题(转)
2012-11-21 00:13 710http://www.yesky.com/334/195133 ... -
Web开发20:Http详解
2011-07-31 02:01 1107所谓无状态是指你发 ... -
Web开发19:自定义标签库
2011-07-24 21:55 673所谓上层标签就如下面的bbb标签 ... -
Web开发18:EL表达式
2011-07-24 19:38 687f -
Web开发17:Servlet监听器
2011-07-24 00:01 1395写了一个MyServletContextList ... -
Web开发15:Session在实际项目中的应用
2011-07-22 23:50 1148写一个登录例子: 用户在login.jsp页面登录,如果用户 ... -
Web开发14:Session
2011-07-19 00:52 1167当客户端浏览器第一次访问时,会在服务器的Servl ... -
Web开发13:Cookie
2011-07-17 23:31 845下面是个简单的例子,演示在客户端添加Coo ... -
Web开发12:Servlet多线程同步问题详细探寻
2011-07-17 22:50 1118下面看一个具体的 ... -
Web开发11:Servlet
2011-07-17 02:08 804我们编写的Servlet一般继承HttpServ ... -
Web开发10:对复杂表单进行客户端服务端验证
2011-07-16 19:27 975对上面这个用户基本信息页面进行客户端与服务器端的验证,下面 ... -
Web开发9:JavaBean
2011-07-16 00:05 441具体实例: 写一个JAV ... -
Web开发8:使用JavaScript与Servlet实现客户端与服务器端验证
2011-07-14 23:30 1106下面写一个注册页面 register.jsp,主 ... -
Web开发7:请求转发与重定向的区别
2011-07-13 22:11 1068需注意的是:所谓重 ... -
Web开发6:JSP内置对象比较与分析2
2011-07-11 21:25 968先看个小例子: request1.jsp <%@ p ... -
Web开发5:JSP内置对象比较与分析
2011-06-24 00:21 942内置对象与J2EE类的映射 以下是reques ... -
Web开发4:JSP转换为Servlet源代码深度解析
2011-06-22 00:20 1463JSP的注释写法是:<% ... -
Web开发3:Tomcat根据JSP生成Servlet机制深度剖析及核心源代码详解
2011-06-21 00:10 16951:什么是JSP(Java Server Pages): 在 ... -
Web开发2:第一个Servlet程序深度剖析,Web.xml文件深入详解
2011-06-19 14:28 24391,新建一个WEB工程:servletTest 在工程目录下 ... -
Web开发1:Tomcat环境配置
2011-06-15 23:40 831从http://tomcat.apache.org/获取T ...
相关推荐
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
- **Web开发**:Java Servlet和JavaServer Pages (JSP)是构建动态网站的核心技术。 - **大数据技术**:Java在Hadoop等大数据技术栈中占据重要地位。 - **桌面应用**:JavaFX为构建富客户端应用程序提供了API。 - **...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
Java Servlet是Java Web开发中的核心组件之一,它是一种用于扩展Web服务器功能的接口。本教程“深入学习:Java Servlet开发与实例”旨在帮助Java从业者深入理解Servlet技术,并通过实例进行实践,提升开发能力。 ...
在JavaWeb开发中,Servlet技术扮演着至关重要的角色。Servlet是一种Java编程语言的接口,它由Java Servlet API...在实际开发中,结合Servlet与MVC模式、Filter和其他JavaWeb组件,可以构建出高效、可维护的Web应用。
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
在实际的开发环境中,"Servlet UT"可能表示Servlet单元测试的相关代码,包括Filter的测试类和测试方法。这些文件应包含如何配置和运行测试的细节,以及期望的测试结果。 总的来说,Servlet Filter的单元测试是一个...
在本文中,我们将深入探讨"简单的web开发——servlet案例"这一主题,旨在为初学者提供一个基础的servlet应用理解。Servlet是Java Web开发中的重要组成部分,它是一种用于扩展服务器功能的Java类,通常用来处理HTTP...
2. **开发工具**: 提及的博客可能推荐了一些用于开发和调试JasperReport和Servlet应用的工具,如IDEA、Eclipse、Tomcat等。 综上所述,这个主题涵盖了使用JasperReport生成报表并与Servlet结合在Web应用中进行打印...
Servlet、Filter 和 Listener 是 JavaEE 中三种重要的组件,它们在 Web 开发中扮演着重要的角色。Servlet 负责处理客户端的请求,Filter 负责过滤和拦截 Web 资源,而 Listener 负责监听Servlet 容器中的事件。
web.xml是Web应用的部署描述符,它包含了应用的配置信息,如Servlet、Filter、Listener的定义,以及它们之间的映射关系。通过web.xml,Tomcat知道如何正确地初始化和管理Web应用的各个组件。 5. **Tomcat源码分析*...
* 基于 Annotation 配置 Servlet、Filter、Listener 和安全,替代 web.xml 文件 * 可以将配置分割为若干 xml 片段文件,实现 Web 应用的模块化 * 异步 Servlet(Asynchronous Servlet)避免长任务阻塞服务器 创建 ...
Servlet API 提供了丰富的接口和类,例如 Servlet、GenericServlet、HttpServlet、ServletRequest、ServletResponse 等,用于开发 Web 组件。 2. Servlet 的定义: Servlet 可以从不同的角度进行描述: - 技术层面...
**Java Servlet 深入学习:开发与实例** ...通过这份《深入学习:Java Servlet开发与实例》的学习,开发者不仅可以掌握Servlet的基础知识,还能了解其在实际项目中的应用,进一步提升Java Web开发能力。
Servlet和JSP是Java Web开发中的核心技术,它们与Tomcat服务器紧密相连,共同构成了Web应用程序的基础。本篇文章将深入探讨这三个关键概念,并介绍如何利用它们进行基于Tomcat的Web开发。 **Servlet概述** Servlet...
【标题】"javax.servlet...综上所述,"javax.servlet-3.0"代表了Servlet API的一个重要里程碑,提供了许多现代化的特性,极大地改进了Java Web开发的效率和性能。对于Java开发者来说,理解和掌握这些特性是至关重要的。
在Java Web开发中,`javax.servlet`包是核心的API之一,它提供了处理HTTP请求和响应的标准接口。这个jar包是Java Servlet规范的一部分,用于构建动态、交互式的Web应用程序。当你遇到“找不到javax.servlet.*”这样...
总之,Servlet 3.0的这些特性大大简化了Java Web开发,提高了开发效率,并为现代Web应用的需求提供了更强的支撑。在实际项目中,使用"javax.servlet-api-3.0.1.jar"可以享受到这些改进带来的益处。
初学者在接触Java Web开发时,常常会被各种框架所吸引,然而,资深的开发者建议,初学者应当先远离框架,从基础的Servlet开发开始学习。这样做的目的是为了更好地理解Web开发的基本原理,为后续深入学习和掌握复杂...