Aks*_*hat 3 servlet-3.0 tomcat8
我们需要设置tomcat 8容器字符编码的请求和响应ISO-8859-1的UTF-8 intead,设置是什么我们尝试设置如下所述, https://wiki.apache.org/tomcat/FAQ /#的characterEncoding Q1
但这需要创建过滤器等.有没有任何优雅的方式我们可以更改一些配置集,使其适用于容器级别
我没有足够的声誉来评论,但Tomcat 8捆绑了一个过滤器来设置字符编码.
Tomcat 8容器提供的过滤器中对此进行了描述.
需要在web.xml文件中配置此过滤器,并添加如下的其他更改.
以下配置适用于
字符编码过滤器
web.xml中
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
JSP页面编码
web.xml中
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)
JSP创建
仅使用标准英文字符,即没有重音字符等
数据库字符类型
表列的所有字符类型都是NCHAR,NVARCHAR和NTEXT.
数据库连接字符串
对于具有排序规则"Latin1_General_CI_AS"的SQL Server 2008 R2数据库,似乎不需要将连接字符串设置为使用UTF-8.
的context.xml
<Resource name="jdbc/gtraxDS" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://ctceu-wgc-dv026:45666; databaseName=gtraxd2"
username="myAppUsername"
password="myAppPa55word"/>
Run Code Online (Sandbox Code Playgroud)
严格的Servlet合规性
不要设置'严格的servlet遵从性'.
The default value of URIEncoding attribute for HTTP and AJP connectors has been changed from
"ISO-8859-1" to be "UTF-8" (if "strict servlet compliance" mode is off, which is the default)
Run Code Online (Sandbox Code Playgroud)
文件系统字符编码
迭代和显示以下内容:
System.getProperties();
Run Code Online (Sandbox Code Playgroud)
得到:
...
file.encoding Cp1252
file.encoding.pkg sun.io
...
Run Code Online (Sandbox Code Playgroud)
似乎不需要更改文件编码
| 归档时间: |
|
| 查看次数: |
7791 次 |
| 最近记录: |