首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

servlet传中文显示乱码,请问

2013-09-06 
servlet传中文显示乱码,请教。本帖最后由 dx8439 于 2013-08-17 09:56:55 编辑servlet传中文给jsp页面显示

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
 保持编码一致性

热点排行