`
BBjava
  • 浏览: 126376 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

设置Tomcat及Weblogic字符编码,解决数据提交的乱码问题

阅读更多

本文原文来自:http://www.cublog.cn/u/32768/showart_360298.html
设置Tomcat及Weblogic字符编码,解决数据提交的乱码问题
【关键字】 Tomcat容器 中文 字符编码 乱码 Weblogic容器 服务器

【正文】因为编码方式的不同在使用Tomcat容器时会出现提交到Servlet的中文是乱码的方式,而且Tomcat5.x对于POST和GET的方式处理似乎还有不同,POST方式是采用Filter的方式即可,怎样能够处理GET方式中文提交乱码的问题呢?

可以采用配置服务器字符编码的方法,具体操作如下:
1、打开Tomcat安装目录中的conf目录
2、修改server.xml中的connector一个子项,具体可能类似如下:

<Connector port="8001" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />

在其中添加URIEncoding="GBK" ,或者是其他的编码方式,变成如下:

<Connector port="8001" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />

3、停止Tomcat服务,重新启动Tomcat服务即可。

【另附Weblogic容器处理编码的方式】

处理Weblogic容器的编码比较简单,只需要在站点的web.xml中配置一行如下的代码即可。

<context-param> <param-name>weblogic.httpd.inputCharset./*</param-name> <param-value>GBK</param-value> </context-param>

【另附Tomcat处理POST提交乱码的方式】

1、首先在web.xml中配置过滤器

<filter> <filter-name>SetCharacterEncodingFilter</filter-name> <filter-class> cn.cublog.jedliu.SetCharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter>

<filter-mapping> <filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>

2、在cn.cublog.jedliu包中SetCharacterEncodingFilter是用于来实现编码的过滤器。

public class SetCharacterEncodingFilter implements Filter {
    protected String encoding = null;
    protected FilterConfig filterConfig = null;
    protected boolean ignore = true;
    public void destroy() {
        this.encoding = null;
        this.filterConfig = null;
    }
    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
    throws IOException, ServletException {
        if (ignore || (request.getCharacterEncoding() == null)) {
            String encoding = selectEncoding(request);
            if (encoding != null)
                request.setCharacterEncoding(encoding);
        }
        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
     this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");
        String value = filterConfig.getInitParameter("ignore");
        if (value == null)
            this.ignore = true;
        else if (value.equalsIgnoreCase("true"))
            this.ignore = true;
        else if (value.equalsIgnoreCase("yes"))
            this.ignore = true;
        else
            this.ignore = false;
    }
    protected String selectEncoding(ServletRequest request) {
        return (this.encoding);
    }
}
分享到:
评论

相关推荐

    Tomcat和weblogic中文乱码问题解决方案

    Tomcat和WebLogic中文乱码问题解决方案 在 Java Web 开发中,中文乱码问题一直是困扰开发者的主要问题之一。 Tomcat 和 WebLogic 是两个常用的 web 服务器,都是支持 Servlet 和 JSP 的。然而,在使用这些服务器时...

    weblogic和tomcat 下载附件乱码问题

    本文将详细探讨WebLogic与Tomcat环境下解决下载附件乱码问题的方法。 #### 一、问题背景 在Web应用程序中,当用户点击下载链接后,浏览器会根据服务器返回的信息来判断如何处理这个下载请求。如果服务器返回的...

    springboot乱码问题解决方案

    这将设置SpringBoot项目的字符编码为UTF-8,解决乱码问题。 2. Maven插件配置 在pom.xml文件中添加以下配置: &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-maven-plugin &lt;fork&gt;true ...

    java开发乱码问题处理大全

    charset=UTF-8"%&gt;`,以确保页面与后端数据编码的一致性。 #### 四、源代码转换至UTF-8编码 对于源代码文件,如果它们不是UTF-8编码,可以使用批量转换脚本来统一转换。例如,可以创建一个批处理脚本,使用`native...

    jsp中文问题解决方案(完整版)

    - 猜测数据编码:通过尝试转换乱码字符串到不同的编码格式,如ISO-8859-1、UTF-8、GB2312、GBK和Big5,看哪种转换后能恢复原中文。 - 检查JSP页面编码:确保`;charset=GB2312"%&gt;`指令和`;charset=gb2312"&gt;`的正确...

    Tomcat和Weblogic部署纯html文件过程解析

    如果部署时遇到中文字符问题,需要确保文件的编码格式正确,避免因乱码导致的问题。 3. **Weblogic部署细节** Weblogic部署纯HTML文件略有不同。Weblogic允许用户直接发布WAR包(Web Archive),这是一种包含Web...

    jsp中文问题的解决

    在完成以上步骤后,还需要进一步检查整个系统的编码设置是否一致,确保从数据输入到显示的各个环节都能够正确处理中文字符。 #### 总结 通过上述步骤,可以有效地解决JSP应用程序中出现的中文编码问题。关键在于...

    WebLogic Web Development

    - **Tomcat关于UTF-8 JSP文件的BUG**:可能讨论了Tomcat对UTF-8编码JSP文件的处理问题及其解决方案。 - **使用FileUpload组件上传文件**:讲解了如何使用Commons FileUpload或其他库处理HTTP请求中的大文件上传。 ...

    各中间件部署项目实施文档.docx

    4. **字符编码问题**:在处理乱码问题时,可以通过修改Tomcat的Catalina.sh脚本,在JAVA_OPTS变量中添加-Dfile.encoding="UTF-8"。对于Weblogic,需要检查Linux服务器的编码,并在setDomainEnv.sh中添加-Dfile....

    web常见问题解答web常见问题解答,可以受到很大的启发

    - **GBK与GB2312字符集问题**:在处理中文字符时,正确设置字符编码至关重要,否则可能导致乱码问题。 - **制作ear,war文件**:这是将Web应用打包部署到Web容器的方式,了解其格式和打包过程有助于部署和更新应用...

    FCKEditor完整使用说明--一步步教你使用FCKeditor插件

    3. **编码问题**:确保编辑器和后端系统使用相同的字符编码,避免乱码出现。在FCKeditor配置中可以设置编码类型。 4. **插件与样式问题**:FCKeditor允许自定义插件和CSS样式,以满足特定需求。在`fckconfig.js`...

    JavaEE练习答案.pdf

    10. 页面显示乱码通常与字符编码设置有关,解决方法是在响应头中设置正确的字符编码,例如`response.setContentType("text/html;charset=UTF-8")`,确保服务器和客户端之间的一致性。 综上所述,JavaEE是企业级应用...

    liferay6.1开发学习

    - **设置环境变量**:在启动文件 `startWeblogic.cmd` 中添加 `-Dfile.encoding=UTF-8` 避免字符乱码,对于 JRockit JDK 不需要这一步。如果使用的是 JRockit,可能需要在 `setDomainEnv.cmd` 中调整 PermGen 空间...

    java大型企业面试 笔试题 集合

    - Tomcat中文乱码:设置字符编码,如`URLEncoder.encode(name, "UTF-8")`,并在服务器配置相应编码。 - finally块在正常路径和异常路径下都会执行,除非遇到System.exit()或线程中断。 11. **代码输出**:在给定...

    新闻发布视频

    在这个视频中,讲师可能会讲解如何实现字符集过滤器,以确保所有请求和响应都使用统一的字符编码,避免乱码问题。过滤器可以在整个Web应用中全局生效,对于统一处理请求和响应非常有用。 【知识点四】:分页...

    面试常遇到的问题

    16. Tomcat 5中文乱码问题: 设置请求编码,如`request.setCharacterEncoding("UTF-8")`,并在JSP中使用`&lt;%@page pageEncoding="UTF-8"%&gt;`。 17. finally语句是否一定执行? 在正常控制流或异常处理后,finally块...

    java部分面试题.pdf

    - JS处理乱码:设置字符编码。 - 从DWR获取request对象:DWR(Direct Web Remoting)允许JavaScript调用服务器端方法。 - Struts2错误处理:异常处理器(ExceptionHandler)处理异常并展示错误页面。 - Hibernate优点...

    中科软JAVA面试题

    解决中文乱码通常涉及字符编码设置,如文件编码、IDE编码、HTTP头编码、页面编码等。 【表单GET与POST】 GET将数据附在URL后面,适合少量数据且不敏感的场景;POST将数据放在请求体中,适合大量或敏感数据。 ...

Global site tag (gtag.js) - Google Analytics