`
shukuiyan
  • 浏览: 413315 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

今天遇到一个servlet乱码问题

阅读更多
新建web工程myproject

新建servlet

public class ThreeParams extends HttpServlet
{
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException
{
  resp.setContentType("text/html;charset=UTF-8");

  req.setCharacterEncoding("UTF-8");
  PrintWriter out=resp.getWriter();
  out.println(req.getParameter("param1"));
  out.println("<br>");
  out.println(req.getParameter("param2"));
  out.println("<br>");
  out.println(req.getParameter("param3"));
  out.println("<br>");
  System.out.println("in doGet");
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException
{
  System.out.println("in doPost");
 
  resp.setContentType("text/html;charset=UTF-8 ");

req.setCharacterEncoding("UTF-8");
    PrintWriter out=resp.getWriter();
  out.println(req.getParameter("param1"));
  out.println("<br>");
  out.println(req.getParameter("param2"));
  out.println("<br>");
  out.println(req.getParameter("param3"));
  out.println("<br>");
}
private static final long serialVersionUID = 1L;
}



新建jsp类 为servlet提供参数

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Insert title here</title>
</head>
<body>
  <form action="ThreeParams" id="form1" method="post" name="form1">
   <table width="343" border="1">
    <tr>
     <td width="92">
      param1
     </td>
     <td width="94">
      <input name="param1" type="text" id="param1" />
     </td>
    </tr>

    <tr>
     <td width="92">
      param2
     </td>
     <td>
      <input name="param2" type="text" id="param2" />
     </td>
    </tr>

    <tr>
     <td>
      param3
     </td>
     <td>
      <input type="text" name="param3" id="param3" />
     </td>
    </tr>
    <tr>
     <td>
      &nbsp;
     </td>
     <td>
      <label>
       <input type="submit" value="提交" />
      </label>
     </td>
    </tr>
   </table>
  </form>
 
  <br>
  <form action="ThreeParams" id="form1" method="get" name="form1">
   <table width="343" border="1">
    <tr>
     <td width="92">
      param1
     </td>
     <td width="94">
      <input name="param1" type="text" id="param1" />
     </td>
    </tr>

    <tr>
     <td width="92">
      param2
     </td>
     <td>
      <input name="param2" type="text" id="param2" />
     </td>
    </tr>

    <tr>
     <td>
      param3
     </td>
     <td>
      <input type="text" name="param3" id="param3" />
     </td>
    </tr>
    <tr>
     <td>
      &nbsp;
     </td>
     <td>
      <label>
       <input type="submit" value="提交" />
      </label>
     </td>
    </tr>
   </table>
  </form>
</body>
</html>
接下来配置web.xml

<servlet>
  <servlet-name>threep</servlet-name>
  <servlet-class>ThreeParams</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>threep</servlet-name>
  <url-pattern>/ThreeParams</url-pattern>
</servlet-mapping>

执行 http://localhost:8080/myproject/threeparams.jsp



在表单中输入中文,发现post方式提交的表单中的中文提交后正常显示,而get方式提交的表单中中文是乱码。解决方法是修改tomcat中的server.xml,将其中的

<Connector port="8080" protocol="HTTP/1.1"
               maxThreads="150" connectionTimeout="20000"
               redirectPort="8443"  />

改为<Connector port="8080" protocol="HTTP/1.1"
               maxThreads="150" connectionTimeout="20000"
               redirectPort="8443"  URIEncoding="UTF-8"/>



就可以都正常显示中文字符了
分享到:
评论

相关推荐

    servlet输出JS乱码问题

    当Servlet需要输出JS代码,尤其是包含中文字符时,可能会遇到乱码问题。这主要是因为浏览器和服务器之间存在编码不一致的情况。在默认情况下,Servlet容器会使用ISO-8859-1编码来处理HTTP请求和响应,而这个编码并不...

    servlet中文乱码问题

    在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致导致的。 #### 二、乱码原因分析 1. **字符编码不匹配**: - **客户端与服务器...

    解决servlet页面乱码问题

    3. **JSP页面乱码**:如果你的Servlet转发到一个JSP页面,JSP页面也需要设置正确的字符集。在JSP头部添加以下指令: ```jsp ;charset=UTF-8" language="java" %&gt; ``` 4. **IDE与项目配置**:确保你的IDE(如...

    ajax到servlet乱码解决

    在 Web 开发中,使用 AJAX 通过 URL 传参数给 Servlet 时,经常会遇到乱码问题,即使使用了统一的字符编码也没用。下面我们来探讨这个问题的解决方案。 问题描述 当我们使用 AJAX 通过 URL 传参数给 Servlet 时,...

    servlet输出中文乱码问题

    2. **响应头Content-Type设置问题**:服务器响应给客户端的数据应该包含一个`Content-Type`头来指定字符集,如果未正确设置或者设置的字符集与实际使用的字符集不一致,也会导致乱码。 3. **请求参数编码问题**:...

    Jsp和Servlet中文乱码问题

    在IT领域,尤其是在Web开发中,遇到中文乱码问题是开发者们常见的挑战之一。尤其是在使用Java Server Pages(JSP)和Servlet进行中文处理时,字符编码的设置不当往往会导致页面显示出现乱码。本文将深入探讨JSP和...

    jsp传参 servlet接收中文乱码问题的解决方法.docx

    jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码问题。这是因为在 HTTP 请求中,默认的编码方式是 ...

    tomcat与servlet乱码解决办法

    在Web开发过程中,经常遇到的一个问题就是字符编码的问题,特别是在处理中文字符时,如果编码设置不当,很容易出现乱码的情况。本文主要围绕Tomcat服务器下JSP页面以及Servlet中的乱码问题进行深入分析,并提供相应...

    Servlet、Jsp乱码问题(三)

    4. 字符集过滤器(myfilter):在一些复杂的应用场景下,可能需要编写一个字符集过滤器,如`myfilter`,它在请求进入Servlet之前先进行编码转换。过滤器可以全局地处理所有请求和响应的编码问题,确保整个应用的一致...

    解决Servlet中文乱码问题.docx

    在开发Java Web应用程序时,尤其是使用Servlet技术时,经常遇到的一个问题是中文乱码问题。这是因为浏览器和服务器之间编码不一致导致的。以下是一份详细的指南,涵盖了如何解决Servlet中的中文乱码问题。 **一、...

    史上最全Servlet中的中文乱码分析与解决问题

    在Servlet中接收浏览器的数据以及发送数据到浏览器的时候容易遇到一些中文显示乱码的问题,下面是博主对这类问题的一个总结,希望能帮到大家! 一、问题分析   当我们的Servlet程序从客户端接收到一个中文数据或者...

    jspservlet取参数乱码问题分析

    在Java Web开发中,尤其是在处理中文参数时,经常会遇到一个常见问题——**jspservlet取参数乱码**。这一现象通常发生在当用户从客户端提交包含中文字符的表单至服务器端时,服务器端接收到的参数显示为乱码。这种...

    springboot乱码问题解决方案

    以下是一个简单的示例代码,演示如何在SpringBoot项目中解决乱码问题: @RestController public class HelloController { @GetMapping("/hello") public String hello() { return "Hello, World!"; } } 四、...

    中文乱码问题

    中文乱码问题是 web 开发中经常遇到的问题,特别是在使用 JSP、Servlet、Struts 2 等技术时。乱码问题的出现主要是由于字符编码不一致所致。以下是解决中文乱码问题的知识点: JSP 文件的中文乱码问题 在 JSP 文件...

    Java Web开发(JSP、Servlet)乱码终极解决方案.txt

    在Java Web开发中,尤其是使用JSP和Servlet技术时,字符编码问题——即所谓的“乱码”问题,是开发者常遇到的挑战。本篇将详细解析如何在Java Web项目中彻底解决乱码问题,确保数据在各个环节都能正确地显示和处理。...

    完美解决在Servlet中出现一个输出中文乱码的问题

    在Servlet开发过程中,输出中文字符时经常遇到乱码问题,这主要是由于字符编码不一致导致的。本篇文章将深入解析如何在Servlet中完美解决中文乱码问题,并提供具体解决方案。 首先,我们需要理解Java Servlet处理...

    JAVA 乱码问题集合

    在Java编程中,乱码问题是一个常见的困扰,尤其是在处理字符编码时。以下是一些关键的知识点,可以帮助理解和解决Java中的乱码问题。 首先,我们需要理解字符编码的基本概念。字符编码是用来表示文本的一种方式,...

    JSP_利用Filter解决Servlet输出中文乱码的问题.docx

    在Java Web开发中,我们经常会遇到字符编码问题,特别是当处理包含中文字符的Servlet请求时。...这是一个常见的解决乱码问题的策略,特别是在处理POST请求和复杂表单提交时,能够确保中文字符正确显示。

    解决web项目中出现的乱码问题,很方便

    在开发Web项目时,乱码问题常常困扰着开发者,它涉及到字符编码的处理,这是Web应用中的一个常见但至关重要的问题。本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以...

    android客户端向服务器提交请求的中文乱码问题

    在Android客户端向服务器提交请求时,遇到中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致或处理不当导致的。以下将详细解释这个问题的原因、影响以及如何解决。 首先,我们要明白字符编码的基本原理。...

Global site tag (gtag.js) - Google Analytics