1.myeclipse开发时jsp页面乱码
一开始jsp的默认文件中是这样子的
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
这时不管是从bean取数据还是out.print("中文")都会乱码
在jsp文件开始中输入
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2.在myeclipse里面找不到servlet,配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>njust.parking.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/AdminServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
3.使用json传数据,前后台的格式必须一致
前台ajax代码
<script type="text/javascript">
$(function(){
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e && e.keyCode==13){
login();
}
};
});
function login(){
$.ajax({
url: "AdminServlet",
type: "post",
data: {
username: $("#account").val(),
password: $("#password").val()
},
dataType: "json",
success: function(data) {
if (data["success"]) {
document.location = "index.html";
} else
alert(data["meg"]);
}
});
}
</script>
后台java代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String userid = request.getParameter("username");
String pwd = request.getParameter("password");
JSONObject json = new JSONObject();
AdminDAO adminDAO = new AdminDAO();
List<Admin> userList = adminDAO.findByProperty("usrid", userid);
if(userList.get(0).getPassword().equals(pwd)){
json.put("success", true);
HttpSession session = request.getSession();
session.setAttribute("usrid", userid);
} else {
json.put("success", false);
json.put("meg", "sorry");
}
PrintWriter pw = response.getWriter();
pw.print(json.toString());
pw.close();
}
4.JSONObject和JSONArray的区别,以及嵌套模式下如何在前台解析数据
jsonobject和jsonarray都需要引入包,并且new 一个对象后才能使用
但是jsonobject是put(key,value)即key value对应的格式,jsonarray是使用add(member)的方式
在前台解析的时候,采用的方式是
success:function(data){
$.each(data.jsonArray,function(index){
$.each(data.jsonArray[index],function(key,value){
alert(key+":"+value)
});
});
}
5.中文显示乱码
首先要看数据库以及前后台的编码格式是否统一。以UTF8为例:
(1).设置数据库的数据编码类型为UTF8(可以借用navicat等图形化界面进行操作)。
(2).设置网页
<head> <meta charset="utf-8"> <title>后台管理界面</title> </head>
(3).设置servlet返回值的编码格式
response.setContentType("text/html;charset=utf-8");