ajax查詢資料庫,伺服器傳回json字串,js解析json
伺服器端獲得要查詢的東西,查詢資料庫,將查詢的資訊,以json字串的形式返回給瀏覽器
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String departmentID=request.getParameter(departmentID); DataBaseHandle dataBaseHandle=new DataBaseHandle(commonUser, common, jdbc:mysql://127.0.0.1:3306/firstwebsite); String SQL=select * from speciality where departmentID='+departmentID+'; String json={'specialities':[; response.setContentType(text/html; charset=utf-8); response.setCharacterEncoding(UTF-8); try { ResultSet rs=dataBaseHandle.exeuteSQL(SQL); while(rs.next()) { json=json+{'+specialityID':'+rs.getString(1)+',+'SPname':'+rs.getString(2)+'},; System.out.println(rs.getString(1)+rs.getString(2)); } json=json.substring(0,json.length()-1); json=json+]}; PrintWriter pwriter=response.getWriter(); pwriter.print(json); rs.close(); dataBaseHandle.closeResourse(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
js解析json,獲得返回的內容
function updateSpeciality(str) { var xmlhttp; if (str==) { alert(請選擇非空的值!); return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject(Microsoft.XMLHTTP); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var dataObj=eval((+xmlhttp.responseText+));//轉換為json對象 for(var o in dataObj.specialities) { alert(dataObj.specialities[o].specialityID); alert(dataObj.specialities[o].SPname); } } } xmlhttp.open(GET,/First/servlet/GetMessage?departmentID=+str,true); xmlhttp.send(); }