Jboss与jetty的URLencoding设置(Get请求乱码)

由于GET请求与POST请求服务端接收时的处理方式不同,而GET请求提交的数据会被放到URL后面带到服务器,而URL后面携带中文字符要进行编码,通常前端会进行encode,比如UTF-8 。这时我们在服务器的接收端可以进行一下统一进行解码,按


在Jboss的配置文件中进行配置

   <Connector port="8080" address="${jboss.bind.address}"
                maxThreads="250" maxHttpHeaderSize="8192"
                emptySessionPath="true" protocol="HTTP/1.1"
                enableLookups="false" redirectPort="8443" acceptCount="100"

                connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>



在jetty中设置:

官方文档:http://docs.codehaus.org/display/JETTY/International+Characters+and+Character+Encodings

在jetty6中是:

  1. call Request.setQueryEncoding(String) before reading any of the content or params.
  2. set the system property org.mortbay.util.URI.charset to the encoding you want to use.
通常用方法2较好可以不用侵入代码,只需要在启动jetty脚本加上: -Dorg.mortbay.util.URI.charset= utf-8

$JAVA_HOME/bin/java -Dorg.mortbay.util.URI.charset=utf-8  -jar $JETTY_HOME/start.jar -Djetty.home=$JETTY_HOME $JETTY_ARGS


jetty7中脚本片断如下:

JETTY_URI_ENCODE=-Dorg.eclipse.jetty.util.URI.charset=UTF-8

$JAVA_HOME/bin/java $JAVA_OPTS $JETTY_URI_ENCODE  -jar $JETTY_HOME/start.jar -Djetty.home=$JETTY_HOME $JETTY_ARGS





你可能感兴趣的:(java,jboss,服务器,脚本,url,encoding)