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");