在java中使用json,一共需要引入6个包:
1.json-lib-2.4-jdk15.jar(json包,必须导入)
2.commons-lang 2.5(依赖包,必须导入)
3.commons-beanutils 1.8.0(依赖包,必须导入)
4.commons-collections 3.2.1(依赖包,必须导入)
5.commons-logging 1.1.1(依赖包,必须导入)
6.ezmorph 1.0.6(依赖包,必须导入)
Demo流程:
点击index.jsp页面的"json测试按钮",经jquery调用getJson ajax请求处理到JsonServlet,servlet中调用DeptDAO方法查询dept表中的所有数据,并返回list,在将list封装成json格式数据,最后callback,并在index.jsp页面的相应div中显示数据.
主要代码如下:
1.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>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="jquery_lib/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
function jsonTest(){
$.getJSON("<%=request.getContextPath()%>/servlet/JsonServlet",null,callback);
function callback(data){
var resultObj = $("#result");
var showTable="<table>";
for(i=0;i<data.length;i++){
showTable+="<tr><td>"+data[i].deptno+"</td>";
showTable+="<td>"+data[i].dname+"</td>";
showTable+="<td>"+data[i].loc+"</td></tr>";
}
showTable+="</table>";
resultObj.html(showTable);
}
}
</script>
</head>
<body>
<input type="button" value="json测试" onclick="jsonTest()">
<div id="result"></div>
</body>
</html>
2.Dept.java(实体类)
package com.czq.entitiy;
public class Dept {
private String deptno;
private String dname;
private String loc;
public String getDeptno() {
return deptno;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
}
3.JsonServlet.java
package com.czq.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import com.czq.dao.DeptDAO;
import com.czq.entitiy.Dept;
public class JsonServlet extends HttpServlet {
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DeptDAO deptDAO=new DeptDAO();
ArrayList<Dept> deptList=deptDAO.findAll();
PrintWriter printWriter=response.getWriter();
JSONArray jsonArray=JSONArray.fromObject(deptList);
printWriter.print(jsonArray);
printWriter.flush();
printWriter.close();
}
}
4.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>JsonServlet</servlet-name>
<servlet-class>com.czq.servlet.JsonServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JsonServlet</servlet-name>
<url-pattern>/servlet/JsonServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
5.DBHelp.java(数据库工具类)
package com.czq.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBHelp {
private static final String url="jdbc:oracle:thin:@localhost:1521:orcl";
private static final String driver="oracle.jdbc.driver.OracleDriver";
private static final String userName="scott";
private static final String userPassWord="tiger";
public static Connection getConnection(){
try {
Class.forName(driver);
Connection connection=DriverManager.getConnection(url, userName, userPassWord);
if (null!=connection) {
return connection;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void closeResultSet(ResultSet resultSet) {
if (null!=resultSet) {
try {
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void closeStatement(Statement statement) {
if (null!=statement) {
try {
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void closeConnection(Connection connection) {
if (null!=connection) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
DBHelp.getConnection();
}
}
最后附上源码
分享到:
相关推荐
描述中提到的“NULL 博文链接:https://1601844782.iteye.com/blog/2275627”表明有一个相关的博客文章,尽管实际链接无法在这里访问,但我们可以推测该博客可能提供了关于如何在J2EE项目中使用JSON的实例或指南,...
- **Jquery_AJAX的回调函数**:成功获取数据后,通常会在success回调函数中处理数据,比如将JSON数据插入到DOM元素中,更新页面内容。 - **错误处理**:同时,还需要处理可能出现的错误,如网络问题或服务器响应...
在J2EE应用中,这通常涉及创建对应的Controller层,处理HTTP请求,调用Service层的方法来执行业务逻辑,最后通过ModelAndView或者直接返回JSON数据更新视图。对于“添加”操作,可能需要一个表单来收集用户输入,...
1. **Web层**:在J2EE项目中,Web层通常由Servlets、JSP(JavaServer Pages)和JSF(JavaServer Faces)等技术构成。Servlets是服务器端的Java小程序,用于处理HTTP请求;JSP允许开发者用HTML、CSS和Java脚本混合...
JSON+jQuery AJAX 在 J2EE 项目中的应用是现代 Web 开发中常见的一种技术组合,主要用来实现页面的动态加载和表单内容的异步提交,以提高用户体验和交互性能。下面将详细介绍这一技术的各个关键点。 1. **概述** ...
下面我们将详细探讨一些常见的J2EE项目中使用的jar包及其作用。 1. **Servlet API**:servlet-api.jar是处理HTTP请求的核心库,它定义了Servlet和Filter的接口,使得开发者可以编写服务器端的Java代码来处理客户端...
在J2EE项目开发中,小组件的使用是提高效率和增强用户体验的关键因素。这些小组件通常是预先封装好的功能模块,可以快速集成到应用程序中,为开发者提供便利。本篇文章将详细探讨“JS-charts”这个图表组件在J2EE...
json-j2me-j2ee.pdf"指出了这个库的用途,即用于J2ME平台的JSON处理,并且提供了一份PDF文档——"json-j2me-j2ee.pdf",这可能是该库的用户指南或技术文档,详细介绍了如何在J2ME和J2EE环境中使用JSON进行数据通信。...
项目可能还涉及JSON或XML等数据交换格式,用于前后端的数据传输。同时,为了保证用户信息安全,项目需要实现登录验证、数据加密等安全机制,防止未授权访问和数据泄露。 综上,《都市供求信息网》项目展示了J2EE...
在本教程中,我们将深入探讨...通过学习这个教程,你应该对如何在Eclipse中使用Struts2框架开发J2EE项目有了初步的理解。随着你进一步探索,可以尝试添加更多的功能,如表单验证、国际化、Ajax支持等,以增强你的应用。
使用JPA(Java Persistence API)进行数据访问操作,同时可能采用JWT(JSON Web Tokens)进行用户身份验证,确保安全性。为了处理并发事务,可能应用了ACID原则(原子性、一致性、隔离性和持久性)和锁机制。 3、...
在Java编程语言以及基于J2EE的企业级应用开发中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式。它易于人阅读和编写,同时也容易让机器解析和生成。JSON包在Java中扮演着至关重要的角色,...
在J2EE(Java 2 Platform, Enterprise Edition)开发中,代码编写规范是确保...这份规范文档详细阐述了J2EE项目开发中的各项最佳实践,通过遵循这些规范,可以提高代码质量,降低维护成本,并促进团队间的有效沟通。
在项目开发中,开发者可能需要利用EJB来实现业务逻辑,通过Servlet和JSP进行用户界面的交互,使用JDBC或JPA进行数据库操作,利用JMS实现异步通信,以及使用XML或者JSON进行数据交换。 开发过程中,需求分析是非常...
J2EE项目通常需要与数据库进行交互,如MySQL、Oracle或SQL Server等。JDBC(Java Database Connectivity)是Java连接数据库的标准API,项目中可能使用了它来执行SQL查询,进行数据的增删改查操作。ORM(Object-...
1. **数据交换格式**: J2EE与Flex之间的通信通常依赖于HTTP协议,使用AMF(Action Message Format)或XML/JSON作为数据交换格式。AMF是Adobe提供的二进制格式,具有更高的传输效率和更快的解析速度,适合大数据量的...
3. **JDBC与数据库交互**:在J2EE项目中,数据库操作是常见任务。JDBC(Java Database Connectivity)是Java与数据库交互的标准接口,包括连接管理、SQL执行、结果集处理等。事务处理、预编译语句...