servlet跳转页面后汉字显示为???

Everyday前进一步 2017-07-29 02:07:31
如图,第一张为提交页面,第二张为servlet跳转回原页面的显示结果。只有中文无法正常显示,已经尝试过对jsp更改各种编码,均无效果。
IDE为Eclipse,请问是否有方法统一管理这种问题,以及如何解决这个当前的问题?谢谢各位!
提交页面

返回页面

jsp代码:
<%@ page language="java"  import="java.util.*,models.*,dao.*" pageEncoding="utf-8"%>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>User Account - Bootstrap Admin</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />

<link href="./css/bootstrap.min.css" rel="stylesheet" />
<link href="./css/bootstrap-responsive.min.css" rel="stylesheet" />

<link href="http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600" rel="stylesheet" />
<link href="./css/font-awesome.css" rel="stylesheet" />

<link href="./css/adminia.css" rel="stylesheet" />
<link href="./css/adminia-responsive.css" rel="stylesheet" />


<link href="./css/pages/plans.css" rel="stylesheet" />
......

Servlet代码
request.setCharacterEncoding("UTF-8");
//获取传过来的表单数据,根据表单中的name获取所填写的值
String Name = request.getParameter("name");
String province = request.getParameter("province");
String city = request.getParameter("city");


System.out.println(Name);
System.out.println(province);
System.out.println(city);
OEM_Customer_dao dao=new OEM_Customer_dao();

String Message;
try {
Message = dao.findCustomerByBasicInformation(Name, province, city);
System.out.println(Message);
PrintWriter writer = response.getWriter();
request.setAttribute("message",Message);
request.getRequestDispatcher("newOEM_Customer.jsp").forward(request,response);

}

...
...全文
438 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 7 楼 sinat_31390335 的回复:
[quote=引用 5 楼 MOONCOM 的回复:] 后台servlet中输出一下Message,看看是不是乱码
我新更改的代码如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("GB2312");
        //获取传过来的表单数据,根据表单中的name获取所填写的值
        String Name = request.getParameter("name");
        String province = request.getParameter("province");
        String city = request.getParameter("city");
        String address = request.getParameter("adress");
        
        
        System.out.println(Name);
        System.out.println(province);
        System.out.println(city);
        OEM_Customer_dao dao=new OEM_Customer_dao();
      
			String Message;
			try {
				Message = dao.findCustomerByBasicInformation(Name, province, city);
				 System.out.println(Message);
				 PrintWriter writer = response.getWriter();  
				 request.setAttribute("message",Message);
				 
				
				 writer.println("<html>" 
		                    + "<head><title>OEM code Confirm</title></head>" 
		                    +"<br />"
		                    +"<br />"
		                    +"<br />"
		                    +"<br />"
		                    + "<body align='center'>" + Message 
		                    +"<br />");
这里response的编码方式不知道要怎么处理?如果不是这里的原因我是否需要修改编辑器所有的编码设定呢?现在全部用了UTF-8[/quote] 发帖有一点问题,response.setCharacterEncoding("GB2312"); 这一行我尝试了所有包括utf-8在内的编码,页面显示内容各不相同,但唯独中文是不正常的
  • 打赏
  • 举报
回复
引用 5 楼 MOONCOM 的回复:
后台servlet中输出一下Message,看看是不是乱码
我新更改的代码如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("GB2312");
        //获取传过来的表单数据,根据表单中的name获取所填写的值
        String Name = request.getParameter("name");
        String province = request.getParameter("province");
        String city = request.getParameter("city");
        String address = request.getParameter("adress");
        
        
        System.out.println(Name);
        System.out.println(province);
        System.out.println(city);
        OEM_Customer_dao dao=new OEM_Customer_dao();
      
			String Message;
			try {
				Message = dao.findCustomerByBasicInformation(Name, province, city);
				 System.out.println(Message);
				 PrintWriter writer = response.getWriter();  
				 request.setAttribute("message",Message);
				 
				
				 writer.println("<html>" 
		                    + "<head><title>OEM code Confirm</title></head>" 
		                    +"<br />"
		                    +"<br />"
		                    +"<br />"
		                    +"<br />"
		                    + "<body align='center'>" + Message 
		                    +"<br />");
这里response的编码方式不知道要怎么处理?如果不是这里的原因我是否需要修改编辑器所有的编码设定呢?现在全部用了UTF-8
  • 打赏
  • 举报
回复
引用 5 楼 MOONCOM 的回复:
后台servlet中输出一下Message,看看是不是乱码
这个我检查过的,后台信息是没问题的,request都可以正常显示,唯独response这里设置不同的编码方式会对页面结果造成不同的影响。 可是我已经将所有的编码方式都试过了,response唯独显示汉字是乱码的
霜月枫桥 2017-07-31
  • 打赏
  • 举报
回复
后台servlet中输出一下Message,看看是不是乱码
  • 打赏
  • 举报
回复
引用 1 楼 MOONCOM 的回复:
在servlet中加上下面这句 response.setContentType("text/html;charset=utf-8");
你好,尝试了这段代码,仍然无法显示汉字
  • 打赏
  • 举报
回复
引用 2 楼 net_lover 的回复:
对于web项目中的中文乱码可以在web.xml中设置过滤器,如下:

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
你好,增加了这块代码后servlet所有网页都无法获取了,提示404
霜月枫桥 2017-07-31
  • 打赏
  • 举报
回复
看一下下面的博客链接, http://blog.csdn.net/beijiguangyong/article/details/7414247
孟子E章 2017-07-30
  • 打赏
  • 举报
回复
对于web项目中的中文乱码可以在web.xml中设置过滤器,如下:

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
霜月枫桥 2017-07-29
  • 打赏
  • 举报
回复
在servlet中加上下面这句 response.setContentType("text/html;charset=utf-8");

61,112

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧