我們在servlet頁面中讀取前臺的數(shù)據(jù)時 經(jīng)常會出現(xiàn)亂碼問題
而自己每次都要在servlet中使用
1
2
3
|
String encoding= "utf-8" ; request.setCharacterEncoding(enconding); response.setCharacterEncoding(enconding); |
來進行編碼的轉(zhuǎn)換 會很麻煩
所以使用過濾器 我們可以避免這些重復(fù)的工作
web.xml配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
< filter > < filter-name >encodingFilter</ filter-name > < filter-class >com.scx.filter.Filter</ filter-class > <!-- 初始化參數(shù) --> < init-param > < param-name >encoding</ param-name > < param-value >utf-8</ param-value > </ init-param > </ filter > <!-- filter映射關(guān)系 --> < filter-mapping > < filter-name >encodingFilter</ filter-name > < url-pattern >/*</ url-pattern > </ filter-mapping > |
Filter
1
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
|
package com.scx.filter; import java.io.IOException; 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; public class Filter implements javax.servlet.Filter{ //讀取過濾器配置文件 private FilterConfig config; public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest request=(HttpServletRequest) arg0; HttpServletResponse response=(HttpServletResponse) arg1; String encoding=config.getInitParameter( "encoding" ); if (encoding== null || "" .equals(encoding)){ encoding= "utf-8" ; } request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub config=arg0; } } |
這樣的話 在servlet里面讀取到的數(shù)據(jù)就不會出現(xiàn)亂碼的情況了
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持服務(wù)器之家!
原文鏈接:http://blog.csdn.net/su20145104009/article/details/53191827