- 浏览: 237184 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
u012414590:
博主,我想问一下,webdav能否集成到自己的服务器上,打个比 ...
WebDav 测试开发笔记 -
icarusliu:
java1997 写道博主,你好,正好用到这个,能不能贴个完整 ...
关于JTextPane中进行搜索结果显示的问题及解决 -
java1997:
博主,你好,正好用到这个,能不能贴个完整的使用代码啊,谢谢
关于JTextPane中进行搜索结果显示的问题及解决 -
RangerWolf:
非常感谢啊!
wsdl文档结构 -
chenk008:
Tomcat的类加载机制
过滤器 API 包含 3 个简单的接口,它们整洁地嵌套在 javax.servlet 包中。那 3 个接口分别是 Filter 、
FilterChain 和 FilterConfig 。从编程的角度看,过滤器类将实现 Filter 接口,然后使用这个过滤器类中的
FilterChain 和 FilterConfig 接口。该过滤器类的一个引用将传递给 FilterChain
对象,以允许过滤器把控制权传递给链中的下一个资源。 FilterConfig 对象将由容器提供给过滤器,以允许访问该过滤器的初始化数据。
为了与我们的三步模式保持一致,过滤器必须运用三个方法,以便完全实现 Filter 接口:
init()
:这个方法在容器实例化过滤器时被调用,它主要设计用于使过滤器为处理做准备。该方法接受一个 FilterConfig 类型的对象作为输入。
doFilter()
:与 servlet 拥有一个 service() 方法(这个方法又调用 doPost() 或者 doGet()
)来处理请求一样,过滤器拥有单个用于处理请求和响应的方法?D?D doFilter() 。这个方法接受三个输入参数:一个
ServletRequest 、 response 和一个 FilterChain 对象。
destroy()
:正如您想像的那样,这个方法执行任何清理操作,这些操作可能需要在自动垃圾收集之前进行。
SessionFilter.java
package net.pms.web.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.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; /** * @author jfish * @since 2006.1.12 */ public class SessionFilter implements Filter { public static boolean isContains(String container, String[] regx) { boolean result = false; for (int i = 0; i < regx.length; i++) { if (container.indexOf(regx[i]) != -1) { return true; } } return result; } public FilterConfig config; public void setFilterConfig(FilterConfig config) { this.config = config; } public FilterConfig getFilterConfig() { return config; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpreq = (HttpServletRequest) request; HttpServletResponse httpres = (HttpServletResponse) response; HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper( (HttpServletResponse) response); String logonStrings = config.getInitParameter("logonStrings"); String includeStrings = config.getInitParameter("includeStrings"); String redirectPath = httpreq.getContextPath() + config.getInitParameter("redirectPath"); String disabletestfilter = config.getInitParameter("disabletestfilter"); if (disabletestfilter.toUpperCase().equals("Y")) { chain.doFilter(request, response); return; } String[] logonList = logonStrings.split(";"); String[] includeList = includeStrings.split(";"); Object user = httpreq.getSession().getAttribute("userinfo"); if (user == null) { if (!this.isContains(httpreq.getRequestURI(), includeList)) { chain.doFilter(request, response); return; } if (this.isContains(httpreq.getRequestURI(), logonList)) { chain.doFilter(request, response); return; } wrapper.sendRedirect(redirectPath); } else { chain.doFilter(request, response); } } public void destroy() { this.config = null; } public void init(FilterConfig filterConfig) throws ServletException { this.config = filterConfig; } }
4.配置 Servlet 过滤器
在web.xml中:
<filter> <filter-name>SessionFilter</filter-name> <filter-class>net.pms.web.filter.SessionFilter</filter-class> <init-param> <param-name>logonStrings</param-name> <param-value>login.jsp</param-value> </init-param> <init-param> <param-name>includeStrings</param-name> <param-value>.jsp;.html</param-value> </init-param> <init-param> <param-name>redirectPath</param-name> <param-value>/login.jsp</param-value> </init-param> <init-param> <param-name>disabletestfilter</param-name> <param-value>N</param-value> </init-param> </filter> <filter-mapping> <filter-name>SessionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
其中参数logonStrings,登陆页面
includeStrings,过滤页面参数
redirectPath,没有登陆转向页面
disabletestfilter,过滤器是否有效。
发表评论
-
JS开源控件
2010-01-26 11:59 8791. Highslide: http://highslide. ... -
上传文件当中出现的错误
2010-01-13 12:57 925在使用SmartUpload与apache的FileUploa ... -
CSS兼容IE/Firefox要点(http://www.iwms.net/n1960c40.aspx)
2010-01-11 12:23 1382首先我们说说firefox和IE ... -
div宽度自适应
2010-01-11 12:14 4222自适应宽度的层不要指定宽度和float属性 自适应宽度的层 ... -
HTML问题集总
2009-12-03 09:29 9191. 防止单元格被撑开: 在table的css属性当 ... -
Tomcat的类加载机制
2009-09-15 15:48 2383对于只用于某一个web应用的类或资源 ,放在这个we ... -
关于doctype
2009-07-16 09:33 969(今天在弄hibernate的 ... -
jsp页面显示的奇怪乱码问题
2009-02-19 10:18 1078今天在写一个 axis2的一个jsp页面的时候,出现一个奇怪的 ... -
sql三种分页方式
2008-12-08 14:31 1079表中主键必须为标识列,[ID] int IDENTITY (1 ... -
url传中文参数的问题
2008-10-20 09:49 1612页面编码假设是"UTF-8",则取得传递参 ... -
jsp中出现对话框提示保存来自一个网页的内容的主要代码
2008-10-09 15:36 1995<%@page import="java.io ... -
jsp实现文件下载与中文文件名乱码问题解决
2008-10-09 14:51 2659之前,写过一个Download.jsp文件,可以解决下载文件乱 ... -
强制JSP页面刷新,防止被服务器缓存
2008-10-08 11:22 3354对于jsp页面,为了防止页面被服务器缓存、始终返回同样的结果。 ... -
cookie的使用
2008-10-08 11:03 1040今天遇到了Cookie的问题 ... -
cookie机制和session机制
2008-10-08 11:02 1158一、cookie机制和session机制的区别具 ... -
在jsp页面中得到请求页面的url
2008-10-08 10:34 1607String reqUrl = request.getHea ... -
[转]多Web服务器之间共享Session的解决方案
2008-10-07 17:01 1200转自heiyeluren的Blog:http://blog.c ... -
IE6.0、IE7.0 与 FireFox CSS
2008-09-16 15:29 30561.DOCTYPE 影响 CSS 处理 2. ...
相关推荐
**JSP过滤器详解与项目实例** 在Java Web开发中,JSP(JavaServer Pages)是用于创建动态网页的一种技术,而过滤器(Filter)则是Servlet API中的一部分,用于处理HTTP请求和响应,提供了一种预处理和后处理请求的...
在标题“jsp过滤器(编码)”中,我们关注的是如何使用过滤器来处理编码问题。在`web.xml`配置文件中,我们可以定义一个过滤器来设定请求和响应的编码格式。以下是一个示例配置: ```xml <filter-name>...
### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...
JSP过滤器是Servlet规范的一部分,它遵循`javax.servlet.Filter`接口。过滤器通过在请求到达目标资源(如Servlet、JSP页面)之前拦截请求,以及在响应返回给客户端之前拦截响应,实现了对HTTP请求和响应的透明处理。...
jsp过滤器与监听器,很好的讲课和学习的ppt
【jsp过滤器开发】 在JavaEE的Web应用中,过滤器(Filter)是Servlet2.3和JSP1.2规范引入的重要组件,它在处理HTTP请求和响应时扮演着关键角色。过滤器的主要功能是对请求和响应进行预处理和后处理,允许开发者在...
【JSP过滤器及乱码解决详解】 在Web开发中,字符编码问题一直是困扰开发者的重要问题,特别是当涉及到多语言环境时。JSP过滤器的使用可以帮助我们有效地处理字符编码,确保数据在不同组件之间的一致性和正确性。...
首先,我们需要了解JSP过滤器的基本概念。在Servlet规范中,过滤器是拦截请求和响应的组件,可以在请求到达目标资源之前或响应离开目标资源之后进行预处理和后处理。它们是基于Delegation模型工作的,通过`doFilter...
本篇文章将详细讲解如何处理JSP中的中文乱码以及如何通过过滤器(Filter)来解决这一问题。 首先,中文乱码的处理主要涉及到字符集(Charset)的概念。在JSP中,当请求参数包含中文字符时,如果不设定字符编码,...
**JSP过滤器详解** JSP(JavaServer Pages)过滤器是Servlet API的一部分,它允许开发者在请求到达目标资源(如JSP页面、Servlet等)之前或之后进行处理。过滤器是实现动态网页应用程序功能扩展的重要工具,尤其...
JSP过滤器是基于Servlet规范的Filter接口实现的,它可以拦截请求,对请求和响应进行预处理或后处理。在`web.xml`配置文件中,我们定义一个filter和filter-mapping,指定过滤器的类和需要拦截的URL模式。 ```xml ...
本篇将深入讲解`JSP`中的过滤器,并通过实例来帮助理解其工作原理和应用场景。 首先,我们需要了解`Filter`的基本概念。过滤器是一个实现了`javax.servlet.Filter`接口的类,它可以拦截HTTP请求并进行预处理,或者...
JSP过滤器提供了一种更为统一和高效的方式来解决这个问题。在上述例子中,我们创建了一个名为`XssFilter`的Servlet过滤器,它实现了`javax.servlet.Filter`接口。这个过滤器在请求到达业务层之前拦截它们,并使用`...
为了解决这个问题,我们可以使用jsp过滤器来实现编码设置。我今天要分享的就是使用jsp过滤器解决中文乱码问题的方法。 什么是jsp过滤器? jsp过滤器(Filter)是一种特殊的jsp组件,用于对jsp页面的请求和响应进行...
JSP过滤器是一种有效的防止XSS攻击的方法,通过在请求进入业务逻辑之前对输入数据进行处理,过滤掉可能包含恶意代码的字符。 首先,我们来理解Servlet过滤器的工作原理。Servlet过滤器是Java Servlet API的一部分,...
JSP过滤器(Filter)是Servlet技术中的一个组件,用于对进入目标资源(如Servlet、JSP页面)的请求和/或从目标资源发出的响应进行干预和处理。这篇文章汇总了在web.xml文件中配置JSP过滤器Filter的多种方法,介绍了...
本文将深入探讨如何在JSP中利用过滤器实现用户权限限制功能。 首先,我们需要了解过滤器的概念。在Servlet规范中,过滤器是Java Web应用中的一个组件,它可以在请求被Servlet处理之前和之后执行一些预处理或后处理...
### JSP Filter 过滤器判断用户是否登录 在Web应用开发中,权限验证是非常重要的一个环节。通过使用过滤器(Filter),可以在请求到达目标资源(如Servlet或JSP页面)之前进行处理,例如实现登录状态检查、权限验证...
过滤器在Servlet容器中扮演着拦截请求和响应的角色,可以在请求到达目标资源(如JSP页面)之前对其进行预处理,包括设置合适的字符编码,以确保中文字符正确解析。下面将详细介绍如何使用过滤器来解决这个问题。 ...