【WEBガジェット】EncodingFilter-グローバルエンコーディングの設定
8975 ワード
1.POSTリクエストであればrequestを呼び出す必要があることを知っています.setCharacterEncoding("utf-8")
コードを設計する方法.
2.GETリクエストであれば、エンコードの問題を自分で手動で処理する必要があります.
3.EncodingFilterを使用すると、POSTおよびGET要求の符号化問題が処理される.
Webを変更します.xml:
EncodingFilter()クラスソースコード:
コードを設計する方法.
1 public void doGet(HttpServletRequest request, HttpServletResponse response)
2 throws ServletException, IOException {
3 request.setCharacterEncoding("gbk"); // post , get
4 response.setCharacterEncoding("gbk");
5 }
2.GETリクエストであれば、エンコードの問題を自分で手動で処理する必要があります.
3.EncodingFilterを使用すると、POSTおよびGET要求の符号化問題が処理される.
Webを変更します.xml:
<!-- 。 GET POST, UTS-8 -->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>cn.itcast.filter.EncodingFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
EncodingFilter()クラスソースコード:
1 package cn.itcast.filter;
2
3 import java.io.IOException;
4
5 import javax.servlet.Filter;
6 import javax.servlet.FilterChain;
7 import javax.servlet.FilterConfig;
8 import javax.servlet.ServletException;
9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.http.HttpServletRequest;
12
13
14 public class EncodingFilter implements Filter {
15 private String charset = "UTF-8";
16 @Override
17 public void destroy() {}
18
19 @Override
20 public void doFilter(ServletRequest request, ServletResponse response,
21 FilterChain chain) throws IOException, ServletException {
22 HttpServletRequest req = (HttpServletRequest) request;
23 if(req.getMethod().equalsIgnoreCase("GET")) {
24 if(!(req instanceof GetRequest)) {
25 req = new GetRequest(req, charset);// get
26 }
27 } else {
28 req.setCharacterEncoding(charset);// post
29 }
30 chain.doFilter(req, response);
31 }
32
33 @Override
34 public void init(FilterConfig fConfig) throws ServletException {
35 String charset = fConfig.getInitParameter("charset");
36 if(charset != null && !charset.isEmpty()) {
37 this.charset = charset;
38 }
39 }
40 }