- 浏览: 40409 次
- 性别:
- 来自: 上海
文章分类
一、使浏览器不缓存页面的过滤器
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class ForceNoCacheFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException
{
((HttpServletResponse) response).setHeader("Cache-Control","no-cache");
((HttpServletResponse) response).setHeader("Pragma","no-cache");
((HttpServletResponse) response).setDateHeader ("Expires", -1);
filterChain.doFilter(request, response);
}
public void destroy()
{
}
public void init(FilterConfig filterConfig) throws ServletException
{
}
}
二、检测用户是否登陆的过滤器
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.io.IOException;
public class CheckLoginFilter
implements Filter
{
protected FilterConfig filterConfig = null;
private String redirectURL = null;
private List notCheckURLList = new ArrayList();
private String sessionKey = null;
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession();
if(sessionKey == null)
{
filterChain.doFilter(request, response);
return;
}
if((!checkRequestURIIntNotFilterList(request)) && session.getAttribute(sessionKey) == null)
{
response.sendRedirect(request.getContextPath() + redirectURL);
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy()
{
notCheckURLList.clear();
}
private boolean checkRequestURIIntNotFilterList(HttpServletRequest request)
{
String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo());
return notCheckURLList.contains(uri);
}
public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
redirectURL = filterConfig.getInitParameter("redirectURL");
sessionKey = filterConfig.getInitParameter("checkSessionKey");
String notCheckURLListStr = filterConfig.getInitParameter("notCheckURLList");
if(notCheckURLListStr != null)
{
StringTokenizer st = new StringTokenizer(notCheckURLListStr, ";");
notCheckURLList.clear();
while(st.hasMoreTokens())
{
notCheckURLList.add(st.nextToken());
}
}
java源动力,java开源社区,http://www.web-java.com
}
}
三、字符编码的过滤器
import javax.servlet.*;
import java.io.IOException;
public class CharacterEncodingFilter
implements Filter
{
protected FilterConfig filterConfig = null;
protected String encoding = "";
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
{
if(encoding != null)
servletRequest.setCharacterEncoding(encoding);
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy()
{
filterConfig = null;
encoding = null;
}
public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
}
}
四、资源保护过滤器
package catalog.view.util;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
//
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SecurityFilter implements Filter {
//the login page uri
private static final String LOGIN_PAGE_URI = "login.jsf";
//the logger object
private Log logger = LogFactory.getLog(this.getClass());
//a set of restricted resources
private Set restrictedResources;
public void init(FilterConfig filterConfig) throws ServletException {
this.restrictedResources = new HashSet();
this.restrictedResources.add("/createProduct.jsf");
this.restrictedResources.add("/editProduct.jsf");
this.restrictedResources.add("/productList.jsf");
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
this.logger.debug("doFilter");
String contextPath = ((HttpServletRequest)req).getContextPath();
String requestUri = ((HttpServletRequest)req).getRequestURI();
this.logger.debug("contextPath = " + contextPath);
this.logger.debug("requestUri = " + requestUri);
if (this.contains(requestUri, contextPath) && !this.authorize((HttpServletRequest)req)) {
this.logger.debug("authorization failed");
((HttpServletRequest)req).getRequestDispatcher(LOGIN_PAGE_URI).forward(req, res);
}
else {
this.logger.debug("authorization succeeded");
发表评论
-
深入解析Java对象的hashCode和hashCode在HashMap的底层数据结构的应用
2016-01-02 19:45 632一、java对象的比较 等号(==):对比对象实例 ... -
I/O输入输出流
2012-08-21 22:54 1711 -
正则表达式
2012-01-29 21:01 624句点:句点匹配所有字符,包含空格、TAB甚至是换行符。 ... -
java反射机制
2011-12-12 23:44 840问题: 在运行时,对一个JAVA类,能否知道属性和方 ... -
JAVA内部类的作用、方法、使用
2011-11-16 22:40 659引用:JAVA内部类的作 ... -
java虚拟机
2011-08-23 22:50 6321 JVM简介 JVM是我们Javaer的最基 ... -
jvm参数配置说明
2011-08-23 22:45 706Java虚拟机(JVM)参数配置说明 在Java、 ... -
泛型简介
2011-08-22 23:13 639在Java SE 1.5之前,没有泛型的情况的下,通过对类型 ... -
java与模式笔记
2011-02-23 23:36 6821, 模式:人们在自己的环境中不断发现问题和寻找问题 ... -
JUNIT应用
2010-07-07 15:55 693Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被 ... -
Bad version number in .class file问题
2010-07-03 18:23 700项目启动时碰到了这样一个问题提示"java.l ... -
Eclipse中xml文件编写无提示
2010-06-29 09:38 2118如果你在Eclipse或是MyEclipse中编写xml ... -
增强Eclipse ,MyEclipse 的代码自动提示功能
2010-06-25 17:44 612本文转载CSDN elifefly,在此表示感谢! 一般 ... -
Log4j日志级别
2010-06-23 14:38 1005× Debug × Info ... -
log4j
2010-06-23 14:34 754Log4j是Apache的一个开放源代码项目,通过使 ...
相关推荐
在给定的文件中,提到了四个有用的Java过滤器实例,分别是: 1. **使浏览器不缓存页面的过滤器**: 这个过滤器的目的是防止用户浏览器缓存页面,确保每次请求都能获取服务器最新的内容。它通过设置HTTP响应头来...
这两个Java过滤器示例展示了如何利用Servlet过滤器机制来增强Web应用程序的功能性和安全性。`ForceNoCacheFilter`通过控制缓存策略,确保了动态内容的即时性;而`CheckLoginFilter`则通过会话管理,保障了用户数据的...
### 六个有用的Java过滤器知识点详解 在Java Web开发中,过滤器(Filter)是一种非常重要的技术,它能够对用户的请求和响应进行预处理或后处理,从而实现各种功能需求,例如设置缓存策略、登录验证、字符编码转换等...
Java过滤器(Filter)是Java Web开发中的一个重要概念,它主要应用于Servlet容器中,如Tomcat、Jetty等。在ACCP课程中,这个“accp java过滤器 PPT”很可能是为了帮助学习者深入理解如何在Web应用程序中有效地使用...
创建一个Java过滤器,首先需要实现Filter接口,并覆盖其方法。以下是一个简单示例: ```java import javax.servlet.*; import java.io.IOException; public class MyFilter implements Filter { @Override ...
四、其他有用的过滤器 除了上述三个过滤器外,还有其他许多有用的过滤器,例如: * 压缩过滤器:用于压缩响应体,减少网络传输的数据量。 * 安全过滤器:用于检测和防止恶意攻击。 * 记录过滤器:用于记录请求和...
### 二、四个有用的Servlet过滤器实例 #### 1. **中文转码过滤器** 虽然在给定的部分内容中没有直接提供中文转码过滤器的具体代码实现,但我们可以大致推断其功能。该过滤器主要用于处理中文字符的编码问题,确保...
### Java几个过滤器学习技巧 #### 一、概述 在Java Web开发中,过滤器(Filter)是一种非常实用的功能组件,它可以对用户的请求或响应进行预处理或后处理。通过实现`javax.servlet.Filter`接口,开发者可以自定义...
### Java自定义过滤器知识点详解 #### 一、概述 在Java Web开发中,过滤器(Filter)是一种非常实用的功能,它可以对用户请求进行预处理或对响应进行后处理。通过配置过滤器,开发者可以在不修改任何现有代码的...
Java过滤器是Servlet技术中的一项强大工具,能够帮助开发者在不直接修改目标资源代码的前提下增强其功能。通过合理的配置和设计,过滤器可以在不增加复杂性的情况下提高Web应用程序的安全性和灵活性。理解并掌握过滤...
* FilterChain 接口:FilterChain 接口是 Java 中的一种过滤器链接口,用于将多个过滤器连接起来,以便实现链式调用。它提供了一个 doFilter() 方法,用于执行下一个过滤器。 二、自定义编码过滤器 在上面的代码中...
在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它允许开发者在请求到达目标资源之前或之后进行处理。本文将详细介绍标题提及的五种常用过滤器,并提供相关实现代码,帮助理解它们的工作原理和用途。 一...
#### 四、过滤器的作用 1. **统一字符编码设置**:确保在整个Web应用程序中使用一致的字符编码,避免乱码问题。 2. **安全性增强**:可以添加过滤器来检查请求数据的有效性,防止SQL注入等攻击。 3. **性能优化**:...
首先,以myeclipse平台新建一个java project,在新建的project中需要导入相关文件:import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;...
#### 四、过滤器配置 - **配置位置**:过滤器的配置主要发生在`web.xml`文件中。 - **配置示例**: ```xml <filter-name>MyFilter <filter-class>com.example.MyFilter</filter-class> <filter-name>...
- **Filter Chain**:多个过滤器可以按顺序连接起来形成一个过滤器链,每个过滤器依次处理请求。 通过以上介绍,我们可以了解到Servlet过滤器的强大功能及其在Web开发中的重要作用。理解并熟练掌握过滤器的使用可以...
Java Web过滤器详解 Java Web过滤器是一种服务端组件,...在Java Web开发中,过滤器是一个非常重要的组件,它可以用来实现各种功能,例如身份验证、数据过滤、图像格式转换等。因此,掌握过滤器的使用是非常必要的。
第四,对相应的 servlet 和 JSP 页面注册过滤器,在部署描述符文件(web.xml)中使用 filter 和 filter-mapping 元素。最后,禁用激活器 servlet,防止用户利用缺省 servlet URL 绕过过滤器设置。 在建立过滤器时,...