Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1590120
  • 博文数量: 43
  • 博客积分: 169
  • 博客等级: 入伍新兵
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 15:35
文章分类

全部博文(43)

文章存档

2021年(1)

2019年(4)

2016年(6)

2015年(8)

2013年(19)

2012年(5)

分类: Java

2015-01-09 16:21:47

Servlet的中的过滤器和监听器的应用实例:
所有的过滤器和监听器都需要配置在web.xml中
过滤器配置:

点击(此处)折叠或打开

  1. <!-- 过滤器 -->
  2.     <filter>
  3.         <filter-name>encoding</filter-name> <!-- 设置过滤器名称 以便mapping匹配过滤器 -->
  4.         <filter-class>com.cn.fanjg.servlet.EncodingServlet</filter-class><!-- 过滤器实现类 -->
  5.         <init-param><!-- 初始化参数 可以在FilterConfig中读取该参数 -->
  6.             <param-name>encoding</param-name>
  7.             <param-value>utf-8</param-value>
  8.         </init-param>    
  9.     </filter>
  10.     <!-- 过滤器匹配条件 -->
  11.     <filter-mapping>
  12.         <filter-name>encoding</filter-name>
  13.         <url-pattern>/*</url-pattern>
  14.     </filter-mapping>
这里,笔者直说一下标签,此标签是用来匹配请求的标签,/*表示匹配所有的请求:对于所有的web请求都需要执行一下此过滤器。当然我们也可以通过此标签设定特定的过滤器,比如说我们只想在登录时做过滤处理,那么就可以通过设置>/login.jsp来实现。

过滤器代码:

点击(此处)折叠或打开

  1. public class EncodingServlet extends HttpServlet implements Filter {

  2.     /**
  3.      *
  4.      */
  5.     private static final long serialVersionUID = 1L;
  6.     private FilterConfig config = null;
  7.     private String encoding = "";

  8.     @Override
  9.     public void doFilter(ServletRequest request, ServletResponse response,
  10.             FilterChain chain) throws IOException, ServletException {
  11.         HttpServletResponse resp = (HttpServletResponse) response;
  12.         resp.setCharacterEncoding(encoding);
  13.         java.io.PrintWriter print = response.getWriter();
  14.         print.print("过滤器设置编码为:" + this.encoding);
  15.         chain.doFilter(request, response);

  16.     }

  17.     @Override 
  18.     public void init(FilterConfig config) throws ServletException {
  19.         this.config = config;
  20.         this.encoding = config.getInitParameter("encoding");
  21.     }
  22. }

阅读(2990) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~