今天接着看Hibernate的视频,中间休息的时候随手点了几个网页,看到JSON这个东西,心里琢磨这个东西以前见过,没用过,这是个啥玩意。
JSON是一种数据交换格式,如同常用的xml,不过在javascript领域中,这个东西可以xml好操作多了。
找了一下相应的例子,有一个ASP.net和前台通过Jquery交互的例子,参考着写了一个同Servlet交互的例子。把代码得瑟出来,以供不时之需。
前提:要把jquery的js文件放到WebRoot的下面的js文件夹下。
Index.jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> function getData(){ $("#list").html("");//清空列表中的数据 //发送ajax请求 $.getJSON( "servlet/ServletJson",//产生JSON数据的服务端页面 {name:"胡阳",age:23},//向服务器发出的查询字符串(此参数可选) //对返回的JSON数据进行处理,本例以列表的形式呈现 function(json){ //循环取json中的数据,并呈现在列表中 $.each(json,function(i){ $("#list").append("<li>name:"+json[i].name+" Age:"+json[i].age+"</li>") }) } ) } </script> </head> <body> <input id="Button1" type="button" value="获取数据" onclick="getData()" /> <ul id="list"></ul> </body> </html>
配置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"> <servlet> <servlet-name>ServletJson</servlet-name> <servlet-class>com.json.servlet.ServletJson</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletJson</servlet-name> <url-pattern>/servlet/ServletJson</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
服务器端的Servlet编写:
package com.json.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletJson extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(request.getParameter("name")); response.setContentType("text/plain;charset=utf-8"); request.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); String data = "[{name:\"胡阳\",age:24},{name:\"胡阳\",age:23}]";//构建的json数据 out.println(data); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }
这样就可通过JQuery在web端直接和服务器端通过JSON进行数据交换了。
- from the5fire.com
----EOF-----
微信公众号:Python程序员杂谈
微信公众号:Python程序员杂谈