0 0

关于JSP 、 Servlet中文乱码问题, 方法差不多试完了 还是不行- -!5

JSP页面1:
<table border="1">
<%@page import="com.bookmanagersys.bean.Operator"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"
+request.getServerPort()+path+"/";
List<Operator> list=(List<Operator>)request.getAttribute("operatorlist");

%>
<table>
  <tr><th>用户名</th><th>密码</th><th>等级</th><th>操作</th></tr>
  <%
  for(int i=0;i<list.size();i++){
  Operator operator=list.get(i);
  %>
  <tr>
  <td><input type="text" name="name" value="<%=operator.getName()%>"></td>
  <td><input type="text" name="password" value="<%=operator.getPassword()%>"></td>
  <td><input type="text" name="level" value="<%=operator.getLevel()%>"></td>
  <td><a href="./GetOneUserServlet?name=<%=operator.getName()%>">修改用户</a>
  &nbsp;&nbsp;<a href="./DeleteUserServlet?name=<%=operator.getName()%>">删除用户</a></td>
  </tr>
  <%} %>
  <tr><td></td><td colspan="2"><a href="addOperator.jsp">添加用户</a></td><td><br></td></tr>
  </table>
xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxx
GetOneUserServlet:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//response.setCharacterEncoding("utf-8");
OperatorService operatorService=new OperatorService();
System.out.println(request.getParameter("name"));
Operator operator=operatorService.findOne(request.getParameter("name"));
//request.getSession().putValue("updateoperator", operator);
//request.getSession().setAttribute("updateoperator", operator);
if (operator==null) {
System.out.println("operator==null");
}else {
System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXX");
}
request.setAttribute("updateoperator", operator);
request.getRequestDispatcher("updateOperator.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);

}如果修改的是JSP页面1中name为中文的记录在这里面的到的是乱码
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx
JSP页面2:
<form name="form" action="" method="post" >
  <table border="1">
  <tr>
  <td>用&nbsp;&nbsp;户名:</td>
  <td><input type="text" name="name" value="<%=operator.getName()%>"></td>
  </tr>
  <tr>
  <td>密&nbsp;&nbsp;&nbsp;&nbsp;码:</td>
  <td><input type="text" name="password" value="<%=operator.getPassword()%>"></td>
  </tr>
  <tr>
  <td><input type="submit" onclick="return update()" value="修改"></td>
  <td><a href="./ShowOperatorServlet">取消</a></td>
  </tr>
  </table>
  </form>
xxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
这个页面有时也会出现乱码- -!
2012年7月14日 16:44

9个答案 按时间排序 按投票排序

1 0

采纳的答案

1. JSP 页面需要包含编码只定:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
如果是html页面, 需要添加metadate:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

2. 确保文件保存的格式是UTF-8 编码:
Eclipse 右键属性能看到

下来时GET和POST提交:
1. GET 提交需要配置tomcat/config/server.xml中的connector:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>

2. POST 提交:
需要添加一个Encoding的Filter:


public class EncodingFilter implements Filter {

	protected String encoding = "UTF-8";

	
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {        
		
		request.setCharacterEncoding(encoding);
		response.setCharacterEncoding(encoding);
			
		chain.doFilter(request, response);    
	}

	public void init(FilterConfig filterConfig) throws ServletException {       
		this.encoding = filterConfig.getInitParameter("encoding");   
	}

	public void destroy() {
		encoding = null;
	}
	

}


Web.xml配置:

	<filter>
		<filter-name>SetCharacterEncoding</filter-name>
		<filter-class>cn.com.dayang.common.web.EncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>SetCharacterEncoding</filter-name>
		<url-pattern>*</url-pattern>
	</filter-mapping>


关于Eclipse输出乱码:
Win系统可能存在这个问题, 检查一下eclipse的console输出是不是采用的GBK编码.

2012年7月15日 18:11
0 0

朋友,你的问题只要保证,页面,项目,tomcat的server.xml配置文件的编码设置成一样,问题就可以解决!

2012年7月15日 14:41
0 0

楼主,首先保证你的编码要统一,如页面里,数据库里,所有编码都要设置成utf8.
其次,你修改JSP页面1中name为中文的记录,用的是get传值的方法,这样会导致乱码。如果你使用的是tomcat容器,可以在server.xml里Connector中设置URIEncoding="UTF-8",这样get传参时会使用utf8编码,或者,在servlet接收name值时转一下编码,如:new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"),出现乱码无非那几种问题。

2012年7月15日 10:39
0 0

也许是你的Eclipse工程编码和你的页面编码不一样导致的!

2012年7月15日 08:20
0 0

有没有提交到数据库,有的话,看下数据库的编码是哪种的

2012年7月14日 22:21
0 0

直接用一个Filter搞定了。

2012年7月14日 19:33
0 0

.jsp  文件的编码,修改为UTF-8 编码格式

2012年7月14日 18:10
0 0

jsp1 有
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

jsp2没有?

检查submit之后 servlet收到的是不是乱码

2012年7月14日 17:59
0 0

GBK试下!

2012年7月14日 16:55

相关推荐

    servlet与jsp中文乱码处理

    下面将详细阐述servlet和jsp中文乱码的处理方式。 1. **理解编码基础** - **Unicode**:全球统一的字符编码标准,包含了世界上几乎所有的字符。 - **UTF-8**:最常用的Unicode编码方式,它以字节为单位进行编码,...

    Jsp和Servlet中文乱码问题

    在IT领域,尤其是在Web开发中,遇到中文乱码问题是开发者们常见的挑战之一。尤其是在使用Java Server Pages(JSP)和...通过上述方法,可以有效地解决JSP和Servlet中的中文乱码问题,提高Web应用的用户体验和稳定性。

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

    jsp 传参 servlet 接收中文乱码问题的解决方法 jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码...

    解决jsp+servlet开发中的中文乱码问题

    ### 解决JSP+Servlet开发中的中文乱码问题 #### 概述 在基于JSP(Java Server Pages)和Servlet技术的Java Web应用开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于Java Web应用程序涉及多个组件之间的...

    servlet中文乱码问题

    ### Servlet + Tomcat 中文乱码问题解析及解决方案 #### 一、中文乱码问题概述 在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致...

    Servlet及jsp解决中文乱码问题

    ### Servlet及JSP解决中文乱码问题 #### 一、引言 在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况...

    javaweb servlet(jsp)的乱码问题原理及解决

    ### javaweb servlet(jsp)的乱码问题原理及解决 #### HTTP协议的基本理解与乱码问题背景 HTTP协议作为互联网应用中最为广泛使用的通信协议之一,它定义了客户端和服务端之间的交互规则。HTTP请求主要分为GET和...

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...

    jsp+servlet+mysql乱码解决的这天

    该方案的解决方法可以解决jsp+servlet+mysql开发中常见的中文乱码问题,确保中文字符的正确显示。 jsp+servlet+mysql乱码解决方案的实现步骤如下: 首先,在jsp页面中设置编码格式为utf-8,以确保页面中的中文字符...

    jsp中文乱码问题jsp中文乱码问题详解

    jsp中文乱码问题详解 在jsp中文乱码问题中,乱码的出现是由于编码格式不一致所导致的。在jsp文件中,存在三个地方的编码格式:jsp文件的存储格式、解码格式和控制浏览器的解码方式。如果这三个地方的编码格式不一致...

    解决servlet页面乱码问题

    本文将深入探讨如何解决Servlet页面显示乱码的问题,这对于初学者来说是至关重要的知识点。 首先,我们需要理解乱码的根源。在Web应用中,乱码通常出现在两个阶段:输入(如POST表单数据)和输出(如HTML页面的响应...

    如何解决MySql-JSP中文乱码问题

    在开发Web应用时,尤其是使用Java技术栈如JSP、Servlet与MySQL数据库交互时,中文乱码问题常常困扰着开发者。这个问题的出现主要是由于字符编码不一致导致的,包括数据库编码、连接编码、页面编码等多个环节。下面...

    servlet输出JS乱码问题

    知识点:Servlet输出JS乱码问题解析与解决方案 一、Servlet与JS输出背景 Servlet是Java Web应用中的核心组件,主要用于处理客户端发送的HTTP请求,并生成响应。在Web开发中,Servlet经常被用来处理业务逻辑,然后...

    JSP中文乱码问题解决总结

    通过以上方法,我们可以有效地解决JSP中文乱码问题。在实践中,理解字符集的工作原理,以及其在不同环节中的应用,对于预防和解决乱码问题至关重要。希望这个总结能帮助到大家,减少在查找和调试这类问题上花费的...

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

    在开发基于JSP和Servlet的Web应用时,中文乱码问题是一个常见的困扰许多开发者的难题。尤其是当JSP页面向Servlet传递中文参数时,如果不正确地处理,很容易出现乱码的情况,影响用户使用体验和数据准确性。下面,我...

    JSP中文乱码问题分析及处理方法

    ### JSP中文乱码问题分析及处理方法 #### 一、问题根源剖析 JSP(Java Server Pages)作为Web开发中的一种技术,广泛应用于动态网页的生成。然而,在处理中文字符时,JSP经常会遇到“乱码”问题,即中文字符无法...

    基于jsp-servlet的客户管理系统CRM.zip

    基于jsp-servlet的客户管理系统CRM基于jsp-servlet的客户管理系统CRM 基于jsp-servlet的客户管理系统CRM基于jsp-servlet的客户管理系统CRM 基于jsp-servlet的客户管理系统CRM基于jsp-servlet的客户管理系统CRM 基于...

    Servlet、Jsp乱码问题(三)

    本文将深入探讨Servlet和JSP中的乱码问题及其解决方法。 首先,我们需要理解字符编码的基础知识。在计算机中,字符编码是用来表示文本的方式,常见的有ASCII、GBK、UTF-8等。不同的编码格式可能导致相同字符的二...

    JSPServlet 中的汉字编码问题

    ### JSP Servlet 中的汉字编码问题详解 #### 一、问题背景 在计算机科学领域,尤其是在Web开发中,字符编码问题一直是开发者面临的一个常见难题。特别是在处理非英文字符时,如中文字符,很容易遇到编码不匹配导致...

    jsp/servlet阶段测试

    Servlet容器在Servlet第一次被访问时,会调用Servlet的构造器和init方法,接着调用service方法处理请求,最后调用destroy方法销毁Servlet。 2. JSP的隐含对象:JSP隐含对象包括request、response、session、...

Global site tag (gtag.js) - Google Analytics