gpt4 book ai didi

java - 如何将页面编码包含到所有jsp页面

转载 作者:搜寻专家 更新时间:2023-10-31 20:33:42 26 4
gpt4 key购买 nike

我已经包括了<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>在一个 jsp 页面中,它可以正确显示法语字符。但我想将页面编码包含到所有 jsp 页面中。在我包含的 web.xml 中

<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>

但它适用于我使用的 tomcat6 的 tomcat7。

还有其他解决方案吗?

最佳答案

您可以在 web.xml 中定义一个新的过滤器并在那里修改您的答案。

例如,您可以将其放入您的 web.xml 中:

<filter>
<filter-name>encoding</filter-name>
<filter-class>com.example.EncodingFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*.jsp</url-pattern>
<!-- or any pattern you like to excluse non-jsp resources -->
</filter-mapping>

然后像这样创建一个 com.example.EncodingFilter 类:

public class EncodingFilter implements javax.servlet.Filter {

// init, destroy, etc. implementation

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
response.setCharacterEncoding("utf-8");
chain.doFilter(request, response); // pass request to next filter
}
}

您还可以围绕您的 setCharacterEncoding() 调用添加测试以仅过滤特定 URI 或排除例如非 HTML jsp 或特定参数,例如如果 URL 参数为 则 JSP 输出 PDF format=PDF 提供:

if (!request.getQueryString().contains("format=PDF") {
response.setCharacterEncoding("utf-8");
}
chain.doFilter(request, response); // pass request to next filter

关于java - 如何将页面编码包含到所有jsp页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29944669/

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