- 浏览: 153578 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
fddjxllren:
session.find()是不支持动态绑定参数的.要使用it ...
Hibernate查询之list/iterator -
xiaofeiyang:
http://svn.apache.org/repos/asf ...
struts,hibernate,spring 版本控制svn的URL地址 -
peterxiemin:
emp在建立的时候,报无效的月份,为什么 ?
oracle的练习表---employee -
java_bigniu:
...
Hibernate查询之list/iterator -
lanhai921:
学习下,谢谢分享。
itext基本用法
1,什么是过滤器(filter)?
它是以一种组件的形式绑定到web应用程序当中的,与其他的Web应用程序组件不同的是:过滤器是采用“链”的方式进行处理(当需要限制用户访问某些资源或者处理请求时时提前处理某些资源时);当用户发出请求到web服务器,web服务器并没有直接去找到那个相应的web资源,而是交给了过滤器,所有的请求由过滤器去处理,然后在访问相应的web资源;这样可以达到对某些资源的访问限制;
2,实现过滤器!
如果要定义一个过滤器,则直接让一个类实现javax.servlet.Filter接口;此接口定义了3个操作方法:
No | 方法 | 类型 | 描述 |
1 | public void init(FilterConfig filterConfig) throws ServletException | 普通 | 过滤器初始化(容器启动时调用),可以通过FilterConfig配置的初始化参数 |
2 | public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException | 普通 | 完成具体的过滤操作,然后通过FilterChain让请求继续向下传递 |
3 | public void destory() | 普通 | 过滤器销毁时使用 |
上面的doFilter()方法中定义了ServletRequest,ServletResponse和FilterChain3个参数,都是ServletRequest/ServletResponse说明过滤器可以完成对任意协议的操作。FilterChain接口的主要作用是将用户的请求向下传递给其他的过滤器或者Servlet,此接口的方法如下:
No | 方法 | 类型 | 描述 |
1 | public void doFilter(ServletRequest request,ServletResponse response)throws IOException,ServletException | 普通 | 将请求向下继续传递 |
在FilterChain接口中依然定义了一个同样的doFilter()方法,这样是因为一个过滤器后面可能存在另外一个过滤器,也可能是请求的最终目标(Servlet),这样就通过FilterChain形成一个"过滤链"的操作;
3,看一个简单的过滤器!
SimpleFilter:
package com.keith.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; public class SimpleFilter implements Filter { /** * 初始化过滤器 */ public void init(FilterConfig config) throws ServletException { // 取得初始化参数 String initParam = config.getInitParameter("ref"); System.out.println("过滤器被初始化,初始参数:" + initParam); } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { System.out.println("-------执行doFilter()之前---------------"); chain.doFilter(req, resp); System.out.println("-------执行doFilter()之后---------------"); } public void destroy() { System.out.println("-------filter销毁--------"); } }
在web.xml中配置:
<filter> <filter-name>simple</filter-name> <filter-class>com.keith.filter.SimpleFilter</filter-class> <init-param> <param-name>ref</param-name> <param-value>Hello Filter</param-value> </init-param> </filter> <filter-mapping> <filter-name>simple</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
当服务器(tomcat)启动的时候:会输出:过滤器被初始化,初始参数:Hello Filter
当我们在浏览器访问目录的时候:会在控制台上:
-------执行doFilter()之前---------------
-------执行doFilter()之后---------------
过滤器(Filter)和servlet的配置很相似,其中的<url-pattern>标签中,是拦截的内容,/*将对所有访问进行拦截,而如果我们只想对某些目录进行拦截可以这样:
<url-pattern>/jsp/*</url-pattern> <url-pattern>/js/*</url-pattern>
4,过滤器的应用:
过滤器(Filter)属于是以一个组件的形式加入到应用程序中,
- 编码过滤
如果我们在每一个jsp或者servlet中都写一个request.setCharsetEncoding("UTF-8");这样的工作太无趣和累赘,这个时候,我们就可以用到Filter:
EncodingFilter:
package com.keith.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; public class EncodingFilter implements Filter { // 设置字符编码 private String charSet; public void init(FilterConfig filterConfig) throws ServletException { // 取得初始化参数 this.charSet = filterConfig.getInitParameter("charSet"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 设置统一编码 request.setCharacterEncoding(this.charSet); } public void destroy() { } }
在web.xml里:
<filter> <filter-name>encoding</filter-name> <filter-class>com.keith.filter.EncodingFilter</filter-class> <init-param> <param-name>charset</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- 登陆验证:验证登陆是Web开发中不可缺少的一部分,以前都是通过验证session的方式完成,如果每个页面都这样做的话,会造成大量的冗余代码,这时候就可以通过Filter轻松的完成;
LoginFilter:
package com.keith.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 init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpSession session = req.getSession(); if (session.getAttribute("user") != null) { chain.doFilter(request, response); }else{ request.getRequestDispatcher("login.jsp").forward(request, response); } } public void destroy() { } }
以上2个过滤器只是个演示,在实际开发中,并不是这么简单!
发表评论
-
JSTL标签之XML标签库,函数标签库
2011-01-20 13:14 0在JSTL中可提供了用于XML解析的操作,这样可以减少 ... -
JSTL常用标签之大聚集---下
2011-01-20 10:17 1390JSTL国际化标签库: 其主要标签如下: NO ... -
JSTL常用标签之大聚集---中
2011-01-20 08:52 991<c:forEach>标签: 主要 ... -
JSTL常用标签之大聚集---上
2011-01-17 22:53 1096JSTL已经被继承到了javaEE ... -
jsp标签编程『续』---简单开发
2011-01-17 16:03 1388在jsp1.2之前如果想要对标签库进行开发,要么继承Ta ... -
jsp标签编程『下』---开发迭代标签
2011-01-17 10:48 1290开发一个迭代标签,此标签只可以对list进行迭代(学习)。 ... -
jsp标签编程『下』---TagSupport类
2011-01-17 10:11 2839掌握基本的标签定义后,可以发现定义标签时都需要继承TagSup ... -
jsp标签编程『中』---定义有属性的标签
2011-01-17 09:13 999定义一个日期标签,则用户就必须指定格式化日期的格式; Dat ... -
jsp标签编程『上』---编写标签
2011-01-16 21:30 10711,什么是JSP标签库? JSP标签库(自定义标签 ... -
javaWeb之表达式语言---初始EL
2011-01-16 08:55 10021,何为表达式语言(Expression Language,E ... -
监听器实例之---在线人员统计
2011-01-15 17:30 0当用户成功登录后,会在列表中增加此用户名称,这样就可 ... -
jsp/servlet之监听器
2011-01-15 16:05 16101,什么是监听器? 其主要的功能就是监听Web ... -
MVC之实例操作---MVC设计模式应用
2011-01-15 09:18 3980MVC的第一个实例-----一个登陆: 首先我们需要一个VO ... -
javaWeb之MVC模式
2011-01-13 23:11 1406javaWeb引入了servlet概念 ... -
javaWeb之Servlet跳转
2011-01-13 22:53 1853servlet跳转分为:客户端跳转和服务器端跳转; 客户端 ... -
javaWeb之Servlet
2011-01-13 22:22 1511使用jsp可以完成动态的web开发,但是在开发时发现大量的代码 ... -
javaBean实例之注册验证
2011-01-13 14:29 3123首先定义Bean: package com.keith.be ... -
javaWeb之JavaBean
2011-01-13 13:47 12541,什么是JavaBean? ... -
jsp之阶段性总结
2011-01-13 08:53 9011,web安全性! 在web目录中必须存在一个&q ... -
jsp值application
2011-01-12 22:34 11301,什么是application? application对 ...
相关推荐
- **定义**:过滤器是一种基于Java Servlet API的组件,它在请求被Servlet处理之前和之后进行拦截。根据配置,过滤器可以对请求或响应进行修改、拦截、日志记录等操作。 - **工作原理**:过滤器遵循`Filter`接口,...
2. **配置说明**:这可能指的是web.xml文件,它是Servlet容器的配置文件,用来定义Servlet、过滤器、监听器等组件,并设置它们的初始化参数和映射路径。在分页查询中,可能需要配置数据源或者Servlet的URL映射。 3....
8. **用户认证与授权**:新闻发布系统可能包含用户登录和权限管理功能,这可能涉及session管理和过滤器来实现用户身份验证。 9. **响应式设计**:考虑到新闻系统的多设备访问需求,源码可能采用了响应式设计,如...
在Java Web应用中,部署描述符是配置文件,定义了应用程序的行为,包括Servlet和JSP的映射、过滤器、监听器等设置。它是应用程序部署的关键组成部分。 **Java_ee_javadocs** 这个文件可能是Java EE的API文档,包含...
在 `web.xml` 文件中,开发者可以配置 JSP 页面、Servlet、过滤器和监听器的行为,以及定义 URL 映射、错误处理等。它是整个 Web 应用的配置中心。 9. **常见错误** 在 JSP 和 Servlet 开发中,常见的错误包括...
4. **配置文件**:如`web.xml`,定义Servlet的映射路径、过滤器、监听器等,是部署应用的重要组成部分。 5. **业务逻辑**:包含Java类,执行如验证用户输入、处理业务规则、连接数据库等任务。这部分可能分为模型...
8. 使用过滤器实现中文乱码和非法访问主页面:使用Filter可以实现中文乱码和非法访问主页面的过滤。Filter可以在请求到达Servlet之前对请求进行处理和过滤,从而实现中文乱码和非法访问的解决。 9. 在主页中显示...
在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...
5. **配置文件**:如web.xml,定义了Servlet的映射、过滤器、监听器等,是Web应用的配置中心。 6. **数据库脚本**:如book.sql,用于创建数据库表结构和初始化数据。 学习这个源码,不仅可以了解ACCP 5.0课程中的...
8. **Servlet过滤器**:在请求到达目标Servlet之前或之后进行拦截处理。 9. **Servlet监听器**:监听特定的Web事件,如会话创建或销毁。 深入学习这两个技术,你需要了解它们的原理、API以及如何在实际项目中应用。...
使用servlet和jsp技术时,我们可以通过过滤器(Filter)来实现这样的安全防护机制。过滤器是一种服务器端的组件,它能够对请求和响应进行拦截,执行一些预处理或者后处理操作。它常用于进行登录验证、权限检查、字符...
`web-app`目录通常包含`WEB-INF`目录,里面有`web.xml`部署描述符文件,定义了Servlet和过滤器的配置。`javadocs`则包含了API文档,方便开发者查阅Bean类的使用方法。 在实际应用中,开发者会根据需求创建对应的...
而Filter(过滤器)是Servlet API的一部分,它提供了一种机制,可以在请求到达目标资源之前或之后对请求和响应进行拦截处理。Filter在处理Web请求时扮演着不可或缺的角色,比如日志记录、权限验证、内容压缩等。以下...
**学习JSP和Servlet不仅需要理解基本概念,还要熟练掌握它们的使用,以及如何与数据库、会话管理、过滤器、监听器等其他Web组件协同工作。通过对"jsp考试试题大全"的深入学习和实践,学生可以巩固理论知识,提升实际...
在标题"Servlet过滤器的简单使用源码+文档"中,我们可以理解为这个压缩包包含了一个关于Servlet过滤器的基础应用示例,以及相关的源代码和文档资料。描述中提到的"实现一个登陆界面",表明了过滤器可能被用作验证...
8. **部署描述符(web.xml)**:配置Servlet、过滤器和监听器的核心文件。 **通过这套“JSP Servlet学习资料--全套PPT”,你将能够深入理解这两个技术的原理和应用,掌握它们的实战技能,为你的Java Web开发之路...
本书还涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例。 本书在讲解的过程中,以“微博”项目贯穿全书,随着每一章的讲述都在适当的时候将JSP &Servlet;技术应用于...
而`过滤器(Filter)`是Servlet API的一部分,它提供了一种机制来拦截请求和响应,实现诸如登录验证、字符编码转换、性能监控等功能。在这个场景中,我们关注的是使用过滤器进行登录验证,以及如何利用`session`来...
而过滤器(Filter)和侦听器(Listener)是Servlet规范中的两个重要概念,它们增强了应用的功能和灵活性。 **过滤器(Filter)** 过滤器在JSP中起到中介的作用,它们可以拦截HTTP请求和响应,对数据进行处理或修改...
6. 服务器配置文件:如web.xml,用于部署描述符,定义Servlets和过滤器等。 7. 测试和样例数据:可能包括JUnit测试类和示例数据文件。 开发这样一个系统需要掌握JSP和Servlet的核心概念,如生命周期、页面指令、...