这里只是一个简单的AJAX+jQUery+JSON的例子。
一、页面介绍:一个输入框,一个按钮。点击按钮之后,触发AJAX事件。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>event click demo</title> <script src="js/jquery-1.6.4.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#getUserName").mousedown(function(){ ajax(); }) }); function ajax() { var username = $("#username").val(); $.ajax({ type : "post", url : "./user.htm?method=getUserName", dataType : 'text', data : 'username=' + username, success : function(data) { var json = eval('(' + data+ ')'); //这行对于解析JSON数据很重要,是必须的 alert("Hello," + json.username) alert("music:"+json.music); }, error:function(){ alert("ERROR HAPPENS"); } }); } </script> </head> <body> <input id="username" type="text" name="username"> <input id="getUserName" type="button" value="OK"> </body> </html>
二、后台代码
通过 "./user.htm?method=getUserName",转入到后台。本人用的是Spring的MVC。代码如下:
public ModelAndView getUserName(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("***********Get User Name*******************"); ModelAndView mav = new ModelAndView(); mav.setViewName("ajaxDemo"); String userName = request.getParameter("username"); User user = userService.getUserByName(userName); JSONObject result = null; if(user != null){ result = new JSONObject(); Map<String, String> map = new HashMap<String,String>(); map.put("userid", String.valueOf(user.getUserId())); map.put("username", user.getUserName()); result = JSONObject.fromObject(map); result.put("music", "what are words"); } writeToResponse(response,result); // mav.addObject("json", result.toString()); return mav; } ////此方法用于显示数据 public void writeToResponse(HttpServletResponse response, JSONObject jsonObj) { PrintWriter output = null; response.setContentType("text/html;charset=utf-8"); try { output = response.getWriter(); output.print(jsonObj); output.flush(); } catch (IOException e) { e.printStackTrace(); }finally{ output.close(); } }