gpt4 book ai didi

tomcat - 带有 Tomcat 的 Geronimo 中的默认编码

转载 作者:行者123 更新时间:2023-11-28 23:53:21 24 4
gpt4 key购买 nike

我正在寻找使用 Tomcat 为 Geronimo 3 的 HTTP 响应设置默认字符编码的实用方法。似乎有很多解决方法,但没有任何方法可以像 Apache Httpd 那样轻松地在某些文件中设置某些属性。 (Apache Httpd 已将 AddDefaultCharset 用于所有响应。)我已尝试添加属性 useBodyEncodingForURIURIEncoding<connector> var/catalina/server.xml 中的元素.

<Connector name="TomcatWebConnector"
port="${HTTPPort + PortOffset}"
address="${ServerHostname}"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="${HTTPSPort + PortOffset}"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
executor="DefaultThreadPool"/>

但它不起作用。我仍然得到标题 Content-Type text/html;charset=ISO-8859-1作为回应。另一种解决方案是在应用程序中以编程方式更改 header (例如,通过过滤器或阀门),但我没有发现它系统性

最佳答案

我回到两个月前提出的问题。我现在知道使用过滤器的解决方案不是任何解决方法,而是常用方法。只需编写一个过滤器类:

package eu.barbucha.tests;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;public class EncodingSettingFilter implements Filter {    private final String enc = "utf-8";    @Override    public void destroy() {    }    @Override    public void doFilter(ServletRequest request, ServletResponse resp, FilterChain fc)            throws IOException, ServletException {        request.setCharacterEncoding(enc);        resp.setCharacterEncoding(enc);        fc.doFilter(request, resp);    }    @Override    public void init(FilterConfig arg0) throws ServletException {    }}

并为过滤器分配 WEB-INF/web.xml 文件中的所有 URI:

<filter>    <description>Filter setting encoding</description>    <filter-name>enc-filter</filter-name>    <filter-class>eu.barbucha.tests.EncodingSettingFilter</filter-class></filter><filter-mapping>    <filter-name>enc-filter</filter-name>    <url-pattern>*</url-pattern></filter-mapping>

就这些。

关于tomcat - 带有 Tomcat 的 Geronimo 中的默认编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5105727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com