用el表达式显示jquery请求servlet数据的中文乱码问题
来源:互联网 发布:docker 32位 windows 编辑:程序博客网 时间:2024/05/29 17:24
用jquery的post方法请求后台数据的中文乱码问题
今天写了一个post请求后台数据的方法,所有页面都是用utf-8编码的,主要页面大体是这样的:
Ajax请求页面:
<%@ page language="java"contentType="text/html; charset=utf-8"
pageEncoding="UTF-8"isELIgnored="false"%>
<!DOCTYPEhtml PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>个人主页</title>
<linkrel="stylesheet"type="text/css"href="css/index.css"/>
<scripttype="text/javascript"src="js/jquery-1.9.0.js"></script>
<scripttype="text/javascript">
$(document).ready(function(){
$(".leftPrivyMenu li").click(function(){
var btnInfo=$(this).attr("url");
$.post(btnInfo,null,function(res){
$("#ajaxDiv").html(res);
});
});
});
</script>
</head>
<body>
<div>
<divclass="w topdiv">
<ahref="login.jsp">登录</a> | <ahref="register.jsp">注册</a> | 2014年3月27日 80:20 星期四 | <ahref="#">注销</a></div><!--topdiv end-->
<divclass="w bannerdiv">欢迎访问校友录管理系统</div>
<divclass="w neckdiv"><ahref="index.jsp">首页</a> | <ahref="postsPage.jsp">帖子动态</a> | <ahref="academy.jsp">班级信息</a> | <ahref="privypage.jsp">个人主页</a> | <ahref="classesManage.jsp">班级管理</a> | <ahref="contactUs.jsp">联系我们</a> | </div>
<divclass="currentPage w"><span>当前位置》个人主页 </span></div>
<divclass="w maindiv">
<div>
<divclass="privyInfo">
<divclass="leftPrivyMenu">
<ul>
<liurl="web/privyInfo.jsp">个人信息</li>
<liurl="web/editHead.jsp">编辑头像</li>
<liurl="web/classInfo.jsp">所在班级</li>
<liurl="SchoolmateServlet">我的校友录</li>
<liurl="web/classPhoto.jsp">班级相册</li>
<liurl="web/becomemanager.jsp">申请成为班级管理员</li>
</ul>
</div>
<divclass="privyMainInfo"id="ajaxDiv">
<!--此处为局部刷新的div块-->
</div>
</div>
</div>
</div><!--maindiv end-->
</div>
</body>
</html>
请求的servlet代码如下:
package ynni.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ynni.dao.UsersDao;
import ynni.daoimpl.UsersDaoImpl;
import ynni.entity.Users;
import net.sf.json.JSONArray;
/*
* 实现校友录的业务逻辑servlet
* */
public class SchoolmateServlet extends HttpServlet {
List<Users> list = new ArrayList<Users>();//要返回的校友信息
UsersDao userDao = new UsersDaoImpl();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
list = userDao.getUserList();
/*JSONArray jsonArray2 = JSONArray.fromObject( list );
out.print(jsonArray2);*/
request.setAttribute("userList", list);
request.getRequestDispatcher("/web/schoolmates.jsp").forward(request, response);
}
}
Web.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Schoolmate</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>SchoolmateServlet</display-name>
<servlet-name>SchoolmateServlet</servlet-name>
<servlet-class>ynni.servlet.SchoolmateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SchoolmateServlet</servlet-name>
<url-pattern>/SchoolmateServlet</url-pattern>
</servlet-mapping>
</web-app>
请求的显示页面如下:
<%@ page language="java"contentType="text/html; charset=utf-8"
pageEncoding="UTF-8"%>
<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPEhtml PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>我的校友录</title>
<linkrel="stylesheet"type="text/css"href="css/index.css"/>
</head>
<body>
<divclass="schoolmatesdiv">
<tablewidth="100%"cellspacing="0"cellpadding="0">
<tr>
<th>校友名称</th>
<th>校友学号</th>
<th>校友qq号</th>
<th>微信账号</th>
<th>通信电话</th>
<th>现居地址</th>
<th>邮政编码</th>
<th>Email</th>
</tr>
<c:forEachitems="${userList }"varStatus="i"var="it">
<tr>
<td>${it.userId }</td>
<td>${it.userstuNo }</td>
<td>${it.userQq }</td>
<td>${it.userWeixin }</td>
<td>${it.userPhone }</td>
<td>${it.userAddr }</td>
<td>${it.userZip }</td>
<td>${it.userEmail }</td>
</tr>
</c:forEach>
</table>
<divclass="checkPage"><ahref="#">上一页</a> 7/16 <ahref="#">下一页</a></div>
</div>
</body>
</html>
页面样子大概如下:
Tomcat中Server.xml文件中的设置编码如下:
<ConnectorURIEncoding="utf-8"connectionTimeout="20000" port="8080"protocol="HTTP/1.1"redirectPort="8443" useBodyEncodingForURI="false"/>
看起来我的页面上该用“utf-8”的地方都用了“utf-8”了,似乎是没有错的,我在网上看了多种方法,什么过滤器啊的,但是发现都不行,
其实今天我也是小白了,突然发现自己犯了一个最二的错误,原来是忘记了在servlet中设置response响应对象的编码方式,我将servlet中的代码修改如下:
package ynni.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ynni.dao.UsersDao;
import ynni.daoimpl.UsersDaoImpl;
import ynni.entity.Users;
import net.sf.json.JSONArray;
/*
* 实现校友录的业务逻辑servlet
* */
public class SchoolmateServlet extends HttpServlet {
List<Users> list = new ArrayList<Users>();//要返回的校友信息
UsersDao userDao = new UsersDaoImpl();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
list = userDao.getUserList();
/*JSONArray jsonArray2 = JSONArray.fromObject( list );
out.print(jsonArray2);*/
request.setAttribute("userList", list);
request.getRequestDispatcher("/web/schoolmates.jsp").forward(request, response);
}
}
多加了这么一行,发现自己的错误没了,看来以后写代码真的得注意啊;
这种二的问题,我想一般人不会犯把,但调试了半天,还是想把它贴出来,希望能帮到需要的人;呵呵
- 用el表达式显示jquery请求servlet数据的中文乱码问题
- 解决servlet响应用户中文请求信息的乱码问题
- servlet处理get请求时的中文乱码问题
- servlet中接收jsp传来的中文数据显示乱码问题
- Servlet处理get请求中文乱码问题
- jsp中EL表达式显示时中文乱码
- servlet的中文乱码问题
- Servlet的中文乱码问题
- servlet的中文乱码问题
- ajax返回中文乱码,servlet中的显示乱码,post提交的乱码问题,编码大总结
- Servlet Get方式请求数据 中文乱码 转码
- jQuery-Ajax提交数据中文乱码问题的解决方案
- jquery的中文乱码问题
- PHP+phpMyAdmin编程插入数据显示中文乱码的问题
- EL表达式出现乱码问题!
- Ajax中向Servlet发送请求时中文乱码问题
- Servlet处理get请求时中文乱码问题
- Httpget请求Servlet中的出现中文乱码问题
- sql 逻辑运算符 优先级
- Zend Studio 10.x注册码激活
- MFC获取编辑框内容以及UpdateData方法
- Android中Service与Activity通信方式
- Android平台的事件处理机制和手指滑动例子
- 用el表达式显示jquery请求servlet数据的中文乱码问题
- C语言的一些小技巧 小知识
- 【原创】Ubuntu查看系统版本信息和系统位数
- Android选项卡viewpager入门到精通
- CCI: Find maximum subsquare
- 弹出对话框的六种写法:
- 区别C#中的两个属性(Property和Attribute)
- 经典语录
- UVA - 10420 - List of Conquests