【复习】servlet之过滤器

一,servlet的过滤器有两种目的:
1,拦截客户端请求
2,处理发送客户端的响应

二,各种类型的过滤器
1,身份验证过滤器(Authentication Filters)。
2,数据压缩过滤器(Data compression Filters)。
3,加密过滤器(Encryption Filters)。
4,触发资源访问事件过滤器。
5,图像转换过滤器(Image Conversion Filters)。
6,日志记录和审核过滤器(Logging and Auditing Filters)。
7,MIME-TYPE 链过滤器(MIME-TYPE Chain Filters)。
8,标记化过滤器(Tokenizing Filters)。
9,XSL/T 过滤器(XSL/T Filters),转换 XML 内容。

三,下面写一个处理中文乱码的过滤器

package com.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.HttpSession;

public class ServlterFilter implements Filter{

@Override
public void destroy() {


}

@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
        throws IOException, ServletException {
        HttpServletRequest request=(HttpServletRequest) req;
        HttpServletResponse response=(HttpServletResponse) resp;
        HttpSession session=request.getSession();
        //获取请求的uri
        String uri=request.getRequestURI();
        String ctx=request.getContextPath();

        uri=uri.substring(ctx.length());
        int count=uri.lastIndexOf("/");

        try {
            //对请求进行编码转换
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            response.setContentType("text/html");
        } catch (Exception e) {

        }
        chain.doFilter(req, resp);

}

@Override
public void init(FilterConfig arg0) throws ServletException {


}

}

2,配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>servlet_05_filter</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <!-- 主要在这里配置 -->
  <filter>
    <filter-name>utf8</filter-name>
    <filter-class>com.filter.ServlterFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>utf8</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

</web-app>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值