读书人

servlet传中文显示乱码请问

发布时间: 2013-09-06 10:17:17 作者: rapoo

servlet传中文显示乱码,请教。
本帖最后由 dx8439 于 2013-08-17 09:56:55 编辑 servlet传中文给jsp页面显示不出来,jsp页面像servlet提交一个叫name的文本值,servlet接收到后进行数据库操作,再把这个值返回给jsp页面,但是我从servlet打印出来的是中文,返回页面后中文显示不出来,用了getBytes("iso-8859-1"),"gb2312"方法也不行,请教大家。下面是页面和servlet。
jsp:

<%@ page language="java" import="java.util.*,com.bean.Bean" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=GBK" %>
<title>a.jpg</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="add" method="post" action="AddServlet">
<table align="center" border="0" width="995">
<tr><td><%String n=request.getParameter("a");%>
String name = new String(n.getBytes("iso-8859-1"),"gb2312");</td>

<td><input type="text" name="name" value="<%=name%>"></td>
</tr>
</table>
</form>


servlet:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html; charset=GBK");
request.setCharacterEncoding("GBK");

Bean b=new Bean();
rb.setName(request.getParameter("name"));
…………
String b=request.getParameter("name");
response.sendRedirect("a.jsp?a="+b);

}
JSP Servlet
[解决办法]
Tomcat的配置文件中默认传输字符格式的问题。。
详见:http://bbs.csdn.net/topics/390372335
[解决办法]
servlet代码

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();

String b = request.getParameter("name");

byte[] bytes = b.getBytes("iso-8859-1");


String b1 = new String(bytes);
System.out.println(b1);

response.sendRedirect("/web_c/a.jsp?a="+b);

}



jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'a.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>


<%
String name = request.getParameter("a");
byte[] b = name.getBytes("iso-8859-1");
name = new String(b);
%>
<form name="add" method="post" action="AddServlet">
<table align="center" border="0" width="995">
<tr>
<td><input type="text" name="name" value="<%=name%>"></td>
</tr>
</table>
</form>

</body>
</html>




[解决办法]
你的servlet里
response.setContentType("text/html; charset=GBK"); request.setCharacterEncoding("GBK");
而jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
一个GBK一个UTF-8,改一致试试,都改为UTF-8
[解决办法]
引用:
你的servlet里
response.setContentType("text/html; charset=GBK"); request.setCharacterEncoding("GBK");
而jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


一个GBK一个UTF-8,改一致试试,都改为UTF-8



[解决办法]
引用:
你的servlet里
response.setContentType("text/html; charset=GBK"); request.setCharacterEncoding("GBK");
而jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
一个GBK一个UTF-8,改一致试试,都改为UTF-8
保持编码一致性

读书人网 >J2EE开发

热点推荐