1
package filter.lepapillon.bbs;
2
3
import java.io.IOException;
4
5
import javax.servlet.FilterChain;
6
import javax.servlet.FilterConfig;
7
import javax.servlet.ServletException;
8
import javax.servlet.ServletRequest;
9
import javax.servlet.ServletResponse;
10
import javax.servlet.http.HttpServletRequest;
11
12
/** *//**
13
* Servlet implementation class for Servlet: EncodingConvFilter
14
* 本程序是實現bbs中文字符集轉換的過濾器
15
*
16
*/
17
/** *//**
18
* @author 劉亭宇
19
*
20
*/
21
public class EncodingConvFilter implements javax.servlet.Filter
{
22
23
/**//*
24
* 定義字符串encoding,也就是字符集
25
*/
26
private String TargetEncoding = "UTF-8";
27
28
/**//*
29
* 定義filterConfig
30
*/
31
private FilterConfig filterConfig = null;
32
33
/**//*
34
* 過濾器銷毀方法
35
*
36
* @see javax.servlet.Servlet#destroy()
37
*/
38
public void destroy()
{
39
// EXE 過濾器銷毀方法
40
this.filterConfig = null;
41
42
}
43
44
/**//*
45
* 字符集過濾器初始化方法、在doFilter()前初始化字符集
46
*
47
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
48
*/
49
public void init(FilterConfig request) throws ServletException
{
50
// EXE 字符集過濾器初始化方法、在doFilter()前初始化字符集
51
// 從web.xml配置文件中取得encoding的值;xml文件中的默認為:UTF-8
52
this.TargetEncoding = filterConfig.getInitParameter("encoding");
53
54
}
55
56
/**//*
57
* 過濾器方法、對字符集進行轉換
58
*
59
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
60
* javax.servlet.ServletResponse, javax.servlet.FilterChain)
61
*/
62
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
63
FilterChain chain) throws IOException, ServletException
{
64
// EXE 過濾器方法、對字符集進行轉換
65
66
// 將ServletRequest請求轉換成HttpServletRequest
67
HttpServletRequest hsrequest = (HttpServletRequest) srequest;
68
hsrequest.setCharacterEncoding(TargetEncoding);
69
chain.doFilter(srequest, sresponse);
70
}
71
}

2

3

4

5

6

7

8

9

10

11

12


13

14

15

16

17


18

19

20

21



22

23


24

25

26

27

28


29

30

31

32

33


34

35

36

37

38



39

40

41

42

43

44


45

46

47

48

49



50

51

52

53

54

55

56


57

58

59

60

61

62

63



64

65

66

67

68

69

70

71

web.xml配置




















