公司的框架提供了对页面表格的验证功能,但必须要通过webfaster(类似于action)转到页面才会解析,因此在利用过滤器判断session是否失效时一定要放掉login.webfaster,于是写了一个过滤器来实现对ignoreURL的处理
过滤器代码:
import java.util.ArrayList;
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;
import java.io.IOException;
public class FilterTest implements Filter{
protected String ignoreURL = null;
protected String [] allIgnoreURL = null;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
String url=req.getRequestURL().toString();
url= url.substring(url.lastIndexOf("/"));//获取*.webfaster
if(isIgnoreURL(url)){//如果是过滤器要忽略的url则继续执行请求
chain.doFilter(request, response);
}else if(session.getAttribute("userinfo")==null){//若session失效则通过relogin.webfaster转到login.html页面
StringBuffer scriptString=new StringBuffer();
scriptString.append(" <script>\n\r");
scriptString.append("self.top.location.href=\""+"relogin.webfaster"+"\"\n\r");
scriptString.append(" </script>\n\r");
response.getOutputStream().print(scriptString.toString());
}else{
chain.doFilter(request, response);
}
}
public void init(FilterConfig config) throws ServletException {
this.ignoreURL=config.getInitParameter("ignoreURL");
allIgnoreURL=ignoreURL.split(",");
}
public boolean isIgnoreURL(String url)
{
for (int i = 0; i < this.allIgnoreURL.length; i++)
{
if (url.equals(this.allIgnoreURL[i])) {
return true;
}
}
return false;
}
}
WEB.XML中的配置:
<filter>
<filter-name>FilterTest</filter-name>
<filter-class>com.servyou.filter.FilterTest</filter-class>
<init-param>
<param-name>ignoreURL</param-name>
<param-value>
/relogin.webfaster,/login.webfaster
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterTest</filter-name>
<url-pattern>*.webfaster</url-pattern>
</filter-mapping>
分享到:
相关推荐
总结,自定义过滤器是ASP.NET 2.0中实现逻辑复用和增强应用程序功能的重要手段,尤其在处理Response内容时,能帮助开发者在不改变原有业务代码的情况下,灵活地控制和修改应用程序的输出。通过理解并熟练运用这一...
在开发Java Web应用程序时,尤其是使用JSP技术时,经常遇到的一个问题是中文...通过自定义过滤器并在`web.xml`中配置,我们可以确保所有请求都以正确的字符集处理,同时过滤器还可以扩展用于其他数据验证和清理任务。
在管道过滤器模式中,数据流通过一系列的过滤器进行处理。每个过滤器都是一个独立的类,负责对输入数据进行某种特定的处理,并将处理后的结果传递给下一个过滤器。这个过程就像是数据通过一根管道,依次经过各个过滤...
过滤器在IT行业中,特别是在Web开发领域,是一个重要的概念,它主要用于在客户端和服务器之间处理HTTP请求和响应。本文档将深入探讨过滤器的使用及其功能。 **过滤器概述** 过滤器(Filter)的主要作用是对客户端...
在Java Web环境中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前对请求进行预处理,或者在响应发送给客户端之后进行后处理。这些过滤器的配置通常在`web.xml`部署描述符文件...
例如,在图像处理系统中,可以采用管道过滤器模式构建一个高效的图像处理流水线。首先使用一个过滤器进行图像加载,然后通过另一个过滤器进行颜色空间转换,接着是噪声滤除、边缘检测等多个过滤器。每个过滤器专注于...
在标题“过滤器拦截并处理request请求”中,我们关注的是如何使用Servlet Filter来对客户端发送的HTTP请求进行操作。描述指出,过滤器可以捕获这些请求,分析并修改它们,以便后台服务能够接收到经过处理的数据。 ...
Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将深入讲解如何配置和使用Servlet过滤器,以及介绍五个经典的过滤器实例。 首先,让...
10. **FilterConfig与ServletContext**:过滤器在初始化时可以获得FilterConfig对象,从中获取配置信息。同时,可以通过FilterConfig获取ServletContext,从而获取整个应用的上下文信息。 以上就是使用过滤器进行...
STM32的CAN(Controller Area Network)过滤器是其通信模块的重要组成部分,主要负责筛选接收到的数据帧,确保只有目标设备所需的消息被接收并存储在FIFO(First In First Out,先进先出队列)中。STM32的CAN控制器...
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在HTTP请求到达Servlet之前或之后进行拦截处理。在标题"Servlet过滤器的简单使用源码+文档"中,我们可以理解为这个压缩包包含了一个关于Servlet过滤器的...
过滤器在Java Web开发中扮演着极其重要的角色,它不仅可以增强应用的安全性,还能提高代码的可维护性和可扩展性。通过对给定的过滤器配置进行深入解析,我们可以更好地理解过滤器的工作原理和配置方式,这对于实际...
在JavaWeb开发中,中文过滤器是一个至关重要的组件,它主要负责解决在数据传输过程中可能出现的中文乱码问题。在Web应用中,由于编码格式不一致或者处理不当,经常会导致中文字符显示为乱码,影响用户体验。中文过滤...
总之,Socket通信是网络编程的基础,封包处理确保了数据在网络中的安全传输,而Filter过滤器则提供了对数据处理的灵活性和控制力。这三个知识点相互结合,构成了构建复杂网络应用的关键技术栈。深入理解并熟练运用...
以上三个案例展示了JavaWeb过滤器在实际开发中的应用。它们不仅能够提升网站的功能,还能增强系统的安全性与稳定性。理解并熟练掌握过滤器的使用,对于提升JavaWeb开发技能大有裨益。在实践中,开发者可以根据需求...
而`Filter`(过滤器)是Java Servlet API中的一部分,用于在请求被实际处理之前或之后进行拦截和处理,提供了一种灵活的机制来增强Web应用程序的功能。本篇将深入讲解`JSP`中的过滤器,并通过实例来帮助理解其工作...
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达目标Servlet之前或之后对请求和响应进行处理。在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证...
在JAVA Web开发中,过滤器(Filter)是一个至关重要的组件,它主要负责在请求被Servlet处理之前或之后执行一些预处理或后处理操作。过滤器是JAVA Servlet API的一部分,通过实现javax.servlet.Filter接口来创建...
在处理加密时,可以利用过滤器在请求到达目标资源之前加密数据,在响应返回客户端之前解密数据,从而确保数据的安全传输。 **示例代码(demo)** 这个压缩包中的"demo"可能包含了完整的Java代码示例,展示了如何在...
Java过滤器是Java Web开发中的一个重要概念,它主要用于在HTTP请求和响应的过程中对数据进行预处理或后处理。在这个小样例中,我们看到的是如何使用Java实现字符过滤和标签过滤,以及字符编码的转换。这在处理用户...