Solve the JSP development Web program Chinese display three kinds of methods

Source: Internet
Author: User
Tags filter character set tomcat

Method One: The simplest is the most used method

  <%@ page language="java" pageEncoding="GBK" %>

or <%@ page contenttype= "TEXT/HTML;CHARSET=GBK", where you can use gb2312 or GBK, but GBK supports more characters than gb2312.

This method is used for Chinese display in JSP pages.

Method Two: Use the filter

Filters are used primarily for form submissions, and data is inserted into the database? Resolution This should also be the encoding that Tomcat does not specify for the request, or the default encoding for ISO-8859-1 encoding.

Write a Setcharacterencodingfilter class.

Importjava.io.IOException;
Importjavax.servlet.Filter;
Importjavax.servlet.FilterChain;
Importjavax.servlet.FilterConfig;
Importjavax.servlet.ServletException;
Importjavax.servlet.ServletRequest;
Importjavax.servlet.ServletResponse;
publicclasssetcharacterencodingfilterimplementsfilter{
Protectedstringencoding=null;
Protectedfilterconfigfilterconfig=null;
Protectedbooleanignore=true;
Publicvoidinit (Filterconfigfilterconfig) throwsservletexception{
This.filterconfig=filterconfig;
This.encoding=filterconfig.getinitparameter ("encoding");
Stringvalue=filterconfig.getinitparameter ("Ignore");
if (value==null)
This.ignore=true;
ElseIf (Value.equalsignorecase ("true"))
This.ignore=true;
Else
This.ignore=false;
}
Publicvoiddofilter (
Servletrequestrequest,servletresponseresponse,filterchainchain)
throwsioexception,servletexception{
Todo automatically generate method stubs
if (Ignore (request.getcharacterencoding () ==null)) {
Stringencoding=selectencoding (Request);
if (encoding!=null)
request.setcharacterencoding (encoding);
}
Chain.dofilter (Request,response);
}
Publicvoiddestroy () {
Todo automatically generate method stubs
This.encoding=null;
This.filterconfig=null;
}
Protectedstringselectencoding (servletrequestrequest) {
return (this.encoding);
}
}

and then Web.xml Plus

  <!--SetCharacterEncoding--> 
  <filter> 
   <filter-name>SetCharacterEncoding</filter-name> 
   <filter-class>com.struts.common.SetCharacterEncodingFilter</filter-class> 
   <init-param> 
    <param-name>encoding</param-name> 
    <param-value>UTF-8</param-value> 
   </init-param> 
  </filter> 
  <filter-mapping> 
   <filter-name>SetCharacterEncoding</filter-name> 
    <url-pattern>/*</url-pattern> 
   </filter-mapping> 
  <!--SetCharacterEncoding-->

The benefits of using filters are many, especially among projects.

And more useful when using internationalization, as long as the page specifies <%@ page language= "java" pageencoding= "UTF-8"%>, the server will display the correct character set according to the local locale.

So I particularly recommend using filters.

Method Three: Modify Tomcat's Server.xml file uriencoding

  <Connectordebug="0"acceptCount="100"connectionTimeout="20000"disableUploadTimeout="true" 
  port="80"redirectPort="8443"enableLookups="false"minSpareThreads="25"maxSpareThreads="75" 
  maxThreads="150"maxPostSize="0"URIEncoding="GBK"> 
  </Connector>

This approach is primarily for getting strings from URLs.

In tomcat5.0 and above versions, the Post and get methods differ in the processing of encodings. If you get Chinese in the URL, it will appear? Resolution However, there is no problem with the tomcat4.1 version, because the tomcat4.1 post and get methods are the same when coding.



Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.