[size=large][color=blue]JBoss下request的字符编码的设置[/color][/size]
在web页面上输入中文或日文数据,点击执行按钮,到了后台从request中取得这些数据的时候,经常会发现取出的是乱码。这是因为页面输入数据的字符编码跟request中默认使用的编码不同造成的。而解决这个问题,一般是工程的web.xml中配置一个filter,在filter中主动设置request使用的编码集。如下:
[b]web.xml[/b]
这种方式,对于小型web应用没啥问题。但是对于大型的web应用,可能分了几十个模块,在这几十个模块中分别配置filter,又稍显麻烦。能不能在一个地方统一配置所有的web工程?答案是:可以。
JBoss的web容器是tomcat,JBoss上的web工程发布时,都会继承web容器中的web.xml的设置,因此,在容器的web.xml中设置字符编码集,理论上就可以在所有的web工程中生效。配置方法很简单,将上面的代码追加到在容器的web.xml即可,位置在JBOSS_HOME\server\{config}\deploy\jboss-web.deployer\conf\web.xml。
在web页面上输入中文或日文数据,点击执行按钮,到了后台从request中取得这些数据的时候,经常会发现取出的是乱码。这是因为页面输入数据的字符编码跟request中默认使用的编码不同造成的。而解决这个问题,一般是工程的web.xml中配置一个filter,在filter中主动设置request使用的编码集。如下:
[b]web.xml[/b]
<!-- Character Encoding Filter -->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.xxx.xxx.framework.filters.EncodingFilter</filter-class>
<init-param>
<param-name>CharacterEncoding</param-name>
<param-value>MS932</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
这种方式,对于小型web应用没啥问题。但是对于大型的web应用,可能分了几十个模块,在这几十个模块中分别配置filter,又稍显麻烦。能不能在一个地方统一配置所有的web工程?答案是:可以。
JBoss的web容器是tomcat,JBoss上的web工程发布时,都会继承web容器中的web.xml的设置,因此,在容器的web.xml中设置字符编码集,理论上就可以在所有的web工程中生效。配置方法很简单,将上面的代码追加到在容器的web.xml即可,位置在JBOSS_HOME\server\{config}\deploy\jboss-web.deployer\conf\web.xml。