Struts framework Chinese problem solved

zhaozj2021-02-16  50

Web levels in J2EE applications using the Struts framework have four keytries.

1, the web page starts at each JSP page plus <% @ page language = "java" contenttype = "text / html; charSet = GBK" PageEncoding = "GBK"%> where GBK can also be replaced with UTF-8.

2, the solution has been overwritten in the response1 solution.

3, the best solution to Request is to write a servlet filter, the code is as follows:

Package cn.com.extech.tornado;

import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;

/ **

* @Author ** @version * / public class setcharacterencodingfilter imports filter {

// ------------- Instance variables / ** * The default character encoding to set for reviews That pass through * this filter. * / Protected string encoding = null; / ** * The filter configuration object we are associated with If this value * is null, this filter instance is not currently configured * / protected FilterConfig filterConfig = null;..? / ** * Should a character encoding specified by the client be ignored * / protected boolean ignore = True; / ** / ** * Take this filter out of service. * / public void destroy () {this.encoding = null; this.filterconfig = null;} / ** * select and set (if specified) The character encoding to be used to * interpret request parameters for this request. * * @param request The servlet request we are processing * @param result The servlet response we are creating * @param chain The filter chain we are processing * * @exception IOException IF an input / output error @ @Exception servletexception if a servlet error ocurs * / public void Dofilter (s ervletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {// Conditionally select and set the character encoding to be used if (ignore || (request.getCharacterEncoding () == null)) {String encoding = selectEncoding (request) ; if (encoding = null!) request.setCharacterEncoding (encoding);} // Pass control on to the next filter chain.doFilter (request, response);.} / ** * Place this filter into service * * @param filterConfig THELIC VOIGURATION Object * / public void init (FilterConfig FilterConfig) THROWS servletexception {this.filterconfig = filterconfig; this.encoding =

filterConfig.getInitParameter ( "encoding"); String value = filterConfig.getInitParameter ( "ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase ( "true")) this.ignore = true; else if (value.equalsIgnoreCase ( "yes")) this.ignore = true; else this.ignore = false;} / ** * Select an appropriate character encoding to be used, based on the * characteristics of the current request and / or filter initialization * parameters. If no character encoding should be set, return * null . *

* The default implementation unconditionally returns the value configured * by the encoding Initialization Parameter for this * filter. * * @Param Request The servlet Request WE Are Processing * / protected; {return (this.encoding);}

}

Then add the configuration in web.xml: SetCharacterEncodingFilter SetCharacterEncodingFilter cn.com.extech.tornado.SetCharacterEncodingFilter Encoding GBK ignore true setcharacterencodingfilter action This method is only useful to submit the client's input to the background only in the form, because the default encoding mode of the request is ISO-8859- 1. If request.setCharacterencoding ("GB2312") is set, it is set newString (***. GetByte ("ISO-8859-1"), "GB2312"); and if you use Forward mode, use Request.GetParameter Due to the default encoding method of PARAM submitted by Forward, it is not necessarily ISO-8859-1, so Request.SetCharacterencoding ("GB2312") may not have the correct Chinese. How to solve the Chinese problem of forward PARAM? 4, struts of the properties file creation ApplicationResources_zh_CN.properties file and write Chinese, and then run native2ascii -encoding gb2312 ApplicationResources_zh_CN.properties ApplicationResources_zh_CN_new.properties in the bin directory of jdk. The ApplicationResources_ZH_CN_NEW.PROPERTIES will be renamed as ApplicationResources_zh_cn.properties, override the same name file in the web-inf / class directory.

转载请注明原文地址:https://www.9cbs.com/read-21500.html

New Post(0)