`
jiasongmao
  • 浏览: 649753 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Servlet过滤器示例

阅读更多
几个有用的Servlet过滤器


import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 用于的使 Browser 不缓存页面的过滤器
*/
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;
/**
* 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面<p>
* 配置参数<p>
* checkSessionKey 需检查的在 Session 中保存的关键字<br/>
* redirectURL 如果用户未登录,则重定向到指定的页面,URL不包括 ContextPath<br/>
* notCheckURLList 不做检查的URL列表,以分号分开,并且 URL 中不包括 ContextPath<br/>
*/
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());
   }
  }
}
}

import javax.servlet.*;
import java.io.IOException;
/**
* 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题
*/
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");
}
}
分享到:
评论

相关推荐

    Servlet过滤器示例代码

    这里面的代码,是对Servlet的过滤器,进行学习的,里面详尽的写出了Servlet过滤器的作用,以及一些使用方法!

    java servlet过滤器使用示例

    Servlet过滤器简介 Servlet过滤器实际上就是一个标准的java类,这个类通过实现Filter接口获得过滤器的功能。它在jsp容器启动的时候通过web.xml配置文件被系统加载。Servlet过滤器在接收到用户请求的时候被调用,当...

    rediswebcaching:使用 Redis 和 Servlet 过滤器缓存 HTTP Get 请求

    缓存机制是通过 Servlet 过滤器实现的,因此可以轻松地从任何 servlet 中添加或删除缓存功能。 下图给出了项目功能的高级描述。 一个说明性的例子 以下示例分别演示了缓存 servlet 和未缓存 servlet 的情况。 要...

    jsp filter 过滤器功能与简单用法示例

    可以将一个或多个过滤器附加到一个 Servlet 或一组 Servlet。过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。 在客户端的请求访问后端资源之前,拦截这些请求。 在服务器的响应发送回客户端之前,...

    SpringFilter:Springboot过滤器示例

    弹簧过滤器 [MVC生命周期](#MVC生命周期) [如何使用过滤器](#如何使用过滤器) 使用指南 , 弹簧过滤器 使用Servlet的ServletContext函数,可以在用户调用Servlet之前/之后检查并设置用户的请求/响应标头信息...

    如何配置Filter过滤器处理JSP中文乱码

    配置Filter过滤器处理JSP中文乱码 参考Tomcat服务器目录webapps的examples示例 简单配置步骤: 1.在项目web.xml文件添加过滤器标记和; 2.实现过滤器代码; 3.对Tomcat服务器conf目录里的Server.xml文件配置...

    Web应用与开发作业

    (2)有3个http响应头字段可以禁止浏览器缓存当前页面,它们在Servlet中的示例代码如下。 response.setDateHeader("Expires",-1); response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma",...

    cas无过滤器 j2ee系统接入示例

    给使用某些没有filter框架java系统接入cas单点登录样例,导入工程到eclipse即可运行,查看main servlet 调用CasValidate类与cas服务器进行交互验证获取登录帐号

    过滤器实现图片过滤功能

    实现网站的内容过滤,示例为过滤图片,可以定义多个

    ContentSecurityPolicyFilter:一个可配置的Java Servlet过滤器,将“ Content-Security-Policy”标头添加到ServletResponse

    内容安全策略过滤器(Java) 将“ Content-Security-Policy”或“ Content-Security-Policy-Report-Only”标头添加到响应中。 另请参阅: 通常,您只需要有限的数目,也不需要任何init参数。 如果未定义init参数...

    浅谈SpringMVC的拦截器(Interceptor)和Servlet 的过滤器(Filter)的区别与联系 及SpringMVC 的配置文件

    主要介绍了浅谈SpringMVC的拦截器(Interceptor)和Servlet 的过滤器(Filter)的区别与联系 及SpringMVC 的配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    assignment-3

    CPD-4414 第 4 课的 Build It 示例 小服务程序 此存储库包含基于 Servlet 的课程示例。 要检索这些文件并使用它们: ...Servlet 过滤器的示例 异步 Servlet 的示例 安全 Servlet 的示例 异步、安全 Servlet 的示例

    logback-servlet:Servlet for Logback在运行时配置日志级别

    按名称过滤记录器 用法 将文件放入您的项目中,并将其声明为Servlet。 Servlet 3示例: Dynamic logback = servletContext . addServlet( " logback " , new LogbackServlet ()); logback . addMapping( " /...

    Java™ Servlet 规范.

    1.6.1 监听器(Listener)顺序 ...............................................................................................................14 1.6.2 注解处理 .............................................

    servlet3-filter-async-test

    Servlet 3 过滤器链异步模式测试 源自及其示例代码的(非常有用的)帖子。 异步模式下的过滤器链(servlet 规范 3.0+)在 servlet 规范中似乎受到严重限制(整个过滤器-servlet 处理链必须在同一线程中运行)并且并...

    ibatis + filter

    iBatis示例教程,使用Servlet过滤器实现用户登录验证

    SpringMVC示例

    本次实践内容包括RequestMapping关键字修饰类和方法(请求方式、请求参数&请求头、Ant风格路径)、PathVariable注解、HiddenHttpMethodFilter 过滤器(将Get请求转换成PUT、DELETE请求)、 RequestParam 注解、...

    Head First Servlet JSP(清晰中文版).part2

    《Head First Servlets·JSP》(中文版)结合SCWCD考试大纲讲述了关于如何编写servlets和JSP代码,如何使用JSP表达式语言,如何部署Web应用,如何开发定制标记,以及会话状态、包装器、过滤器、企业设计模式等方面的...

    Head First Servlet JSP(清晰中文版).part3

    《Head First Servlets·JSP》(中文版)结合SCWCD考试大纲讲述了关于如何编写servlets和JSP代码,如何使用JSP表达式语言,如何部署Web应用,如何开发定制标记,以及会话状态、包装器、过滤器、企业设计模式等方面的...

Global site tag (gtag.js) - Google Analytics