Java文字コードフィルタの設定
2663 ワード
(一)フィルタ概念の簡単な説明:
開発フィルタステップ(1)フィルタクラスを定義しjavax.servlet.Filterインタフェースを実現する;(2)init()、doFilter()、destory()メソッドを書き換える;(3)フィルタの構成:web.xml.
フィルタチェーンの開発
(二)文字符号化フィルタの設定
web ,web , , , 。 ,web , 。
開発フィルタステップ(1)フィルタクラスを定義しjavax.servlet.Filterインタフェースを実現する;(2)init()、doFilter()、destory()メソッドを書き換える;(3)フィルタの構成:web.xml.
filterclassname
com.xzz.myfilter.filterclassname
filterclassname
/*
: doFilter() request response ServletRequest ServletResponse
servlet request response HttpServletRequest HttpServletResponse
フィルタチェーンの開発
(1) 、 , javax.servlet.Filter ;
(2) init(),doFilter(),destory() ;
(3) :web.xml 。
:(1) doFilter() , chain(request,response), 。
(2) : web.xml 。
(二)文字符号化フィルタの設定
(1) , javax.servlet.Filter ;
(2) init(),doFilter(),destory() ;
① encode:
private String encode="UTF-8";
② init(FilterConfig filterConfig) :
//
encode=filterConfig.getInitParamater("encode");
if(encode==null){
encode="UTF-8";
}
③ doFilter(ServletRequest req, ServletResponse res, FilterChain chain) :
// http
HttpServletRequest request=(HttpServletRequest )req;
HttpServletResponse response=(HttpServletResponse )res;
// post
if("POST".equalsIgnoreCase(request.getMethod())){
//
request.setCharacterEncoding(encode);
//
response.setCharacterEncoding(encode);
response.setContentType("text/html;charset="+encode);
//
chain.doFilter(request,response);
//
return;
}
//
chain.doFilter(request,response);
④ destory() :
(3) :web.xml 。
filterclassname
com.xzz.myfilter.filterclassname
encode
UTF-8
filterclassname
/*
(4)
① jsp , , post;
② servlet , doget() :
String text=request.getParameter("text");
System.out.println(">>>>>>>"+text);