servletフィルタのEncodingFilter
2130 ワード
ActionでJSPページからのデータを得てoracleに挿入すると文字化けしていたので、以下のように解決します.
まず、
文字化けしているのを見つけてに設定
まだだめだtomcatでxml
本来はservletに入れます
しかしservletがなくstrutsのactionでどのようにコードを設定するか分からない.
最後にフィルターを思いついたので、やはりフィルターを使いましょう.
まずクラス実装Filterインタフェースを作成する
Webでxmlでとを構成
まず、
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
文字化けしているのを見つけてに設定
<meta http-equiv="content-type" content="text/html; charset=GBK">
まだだめだtomcatでxml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK"/>
本来はservletに入れます
request.setCharacterEncoding();
しかしservletがなくstrutsのactionでどのようにコードを設定するか分からない.
最後にフィルターを思いついたので、やはりフィルターを使いましょう.
まずクラス実装Filterインタフェースを作成する
package com.itmyhome.drp.filter;
import java.io.*;
import javax.servlet.*;
public class EncodingFilter implements Filter {
private String charSet;
public void init(FilterConfig config) throws ServletException {
//
this.charSet = config.getInitParameter("charset");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(this.charSet);
//
chain.doFilter(request, response);
}
public void destroy() {
}
}
Webでxmlで
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.itmyhome.drp.filter.EncodingFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>