JavaWeb專案自定義過濾器(字符集過濾器)
阿新 • • 發佈:2019-01-28
一個簡單的字符集過濾器
此內容旨在記錄JavaWeb專案中擴充套件過濾器的過程,並不能完全解決專案中的亂碼問題
1、 自定義一個過濾器類
package com.jiuqi.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;
/**
1. Title:CharacterFilter<br>
2. Description: 字符集過濾器
3.
4. @author QiuChangjin
5. @version 2018年4月13日
*/
public class CharacterFilter implements Filter {
private String character; // 字符集編碼型別
/**
* Filter的初始化
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 讀取web.xml中Filter配置的初始化引數
character = filterConfig.getInitParameter("character");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
// 讀取初始化的引數character
servletRequest.setCharacterEncoding(character);
servletResponse.setCharacterEncoding(character);
servletResponse.setContentType("text/html; charset=UTF-8");
filterChain.doFilter(servletRequest, servletResponse); // 放行,轉到下一個過濾器
}
/**
* 在Filter銷燬前,完畢某些資源的回收
*/
@Override
public void destroy() {
}
}
2、WEB-INF目錄下的web.xml中增加filter,過濾器載入是有順序的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
version="2.5">
<display-name>MyTest</display-name>
<!-- 定義一個Filter -->
<filter>
<!-- Filter的名字 -->
<filter-name>CharacterFilter</filter-name>
<!-- Filter的實現類 -->
<filter-class>com.jiuqi.filter.CharacterFilter</filter-class>
<!-- 初始化引數 -->
<init-param>
<!-- 引數名 -->
<param-name>character</param-name>
<!-- 引數值,編碼為utf-8 -->
<param-value>utf-8</param-value>
</init-param>
</filter>
<!-- 定義Filter要攔截的url地址 -->
<filter-mapping>
<!-- Filter的名字 -->
<filter-name>CharacterFilter</filter-name>
<!-- 要攔截的url,這裡是所有攔截 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>