情况之一:没有编码URL
HTML 页面
var url = "./SuggestServlet?tagName="+document.getElementById('tagName').value;
做一个AJAX请求到SuggestServlet,参数是中文字符串,(传递到容器,由容器决定采用何种编码解析)
到Servlet之后取这个参数 String myparam = request.getParameter("tagName");
得到的是一个乱码字符串,request.getCharacterEncoding() 得到的是一个null值,这时候tomcat默认的是ISO-8859-1编码解析,这就是我们得到乱码的原因了。
解决办法:
myparam = new String(myparam.getBytes("ISO-8859-1"),"UTF-8"); 这样就能得到中文了
情况之二:使用javascript的encodeURI编码中文参数
HTML页面
var url ="./SuggestServlet?tagName="+encodeURI(document.getElementById('tagName').value);
同样是做一个AJAX请求到SuggestServlet,这时候参数被编码过了
到Servlet之后取这个参数 String myparam = request.getParameter("tagName");
得到的是UTF-8编码之后的字符串,其实不是乱码。
要获得中文字符,我们还需要再转换一次编码String decodingParam = URLDecoder.decode(myparam, "UTF-8");
转自:
http://www.iteye.com/topic/278744
分享到:
相关推荐
在开发Java Web应用程序时,经常会遇到请求参数中的中文字符出现乱码的问题,尤其是在使用JSP时。这个问题通常发生在客户端通过HTTP GET或POST方法传递包含中文字符的参数到服务器,然后服务器端通过`...
// String methodName = request.getParameter("method"); // // //根据method属性的值调用相应的方法 // if("login".equals(methodName)){ // this.login(request,response); // }else if("register".equals(method...
(2)用过滤器解决request中文乱码问题。 (3)代码如下: package my; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ChineseFilter implements Filter { //定义了一个...
JSP中requestgetParameter中文乱码问题是经常遇到的问题,解决这个问题有多种方法,但利用过滤器解决request中文乱码问题是其中最有效的一种方法。本文将详细介绍如何使用过滤器解决JSP中request中文乱码问题。 ...
String username = request.getParameter("userName"); String password = request.getParameter("password"); String sex = request.getParameter("sex"); String classes = request.getParameter("class"); ...
在这个主题中,我们将深入探讨Servlet过滤器的API用法、乱码处理策略以及如何防止JavaScript注入问题。 首先,让我们了解一下Servlet过滤器的基础。在Servlet规范中,`Filter`接口定义了过滤器的核心方法,如`...
jsp 传参 servlet 接收中文乱码问题的解决方法 jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码...
### 解决JSP+Servlet开发中的中文乱码问题 #### 概述 在基于JSP(Java Server Pages)和Servlet技术的Java Web应用开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于Java Web应用程序涉及多个组件之间的...
2. **字符编码设置**:为了避免中文乱码问题,通过 `setCharacterEncoding()` 方法设置请求和响应的字符编码。 3. **请求路径解析**:通过 `getRequestURI()` 方法获取请求的URI,并从中解析出具体的操作类型。 4. *...
jsp SmartUpload 组件,经过测试,保证解决上传中文文件名乱码的问题。里面有六个.java文件(ServletUpload.java;SmartFile.java;SmartFiles.java;SmartRequest.java;SmartUpload.java;SmartUploadException.java) ...
2. 在 Servlet 中使用以下代码来得到中文请求参数:String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "GBK"); 三、request.setCharacterEncoding 方法的使用 request.setCharacter...
String name = request.getParameter("name"); // "name"是表单中的输入字段名 String age = request.getParameter("age"); // 处理数据... } ``` 对于POST请求: ```java protected void doPost...
### jspservlet取参数乱码问题分析 #### 一、问题本质及原因分析 在Java Web开发中,尤其是在处理中文参数时,经常会遇到一个常见问题——**jspservlet取参数乱码**。这一现象通常发生在当用户从客户端提交包含...
本文将深入探讨如何在Servlet中解决乱码问题,确保数据正确无误地进行编码和解码。 首先,我们需要了解Java Servlet生命周期中的两个关键阶段:`service()`方法和`doGet()`或`doPost()`方法。在这些方法中,我们...
在开发Web应用时,尤其是使用Java的JSP技术,开发者经常会遇到中文乱码的问题。这是因为字符编码不一致导致的,特别是在处理用户输入或从数据库获取数据时。本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题...
总结来说,解决Servlet中文乱码问题主要涉及到对Request和Response的正确编码设置,以及确保浏览器能够识别并使用正确的编码解析数据。在实际开发中,将项目配置为统一使用UTF-8编码,通常可以避免大多数编码问题。...
本文档将详细讲解如何处理Servlet中的中文乱码问题,包括POST请求、GET请求以及通过`sendRedirect()`重定向时可能出现的乱码现象,并提供具体的解决方案。 #### 二、乱码原因分析 乱码问题通常发生在字符编码不匹配...
根据题目中的描述,“Ajax乱码:当调用`request.getParameter()`函数时,会自动进行一次URI的解码过程,调用时内置的解码过程会导致乱码出现。而URI 编码两次后,`request.getParameter()`函数得到的是原信息URI编码...
本文为大家分享了JSP用过滤器解决request中文乱码问题,具体内容如下 (1)客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter() 读取参数时,很容易出现中文乱码现象。 (2...
String username = new String(request.getParameter("username").getBytes("ISO-8859-1"), "GB2312"); ``` 这里,先使用`ISO-8859-1`编码读取参数,然后将其转换为`GB2312`编码。然而,更推荐的做法是直接在Tomcat...