开发故障随记

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

  

原文地址:https://www.cnblogs.com/wxwx/p/5461349.html