JQuery、JSON、Ajax在Servlet中的应用

2023-05-16

1、在Java中正确得到JSONObject,需要导入JSON的JAVA支持包“json-lib-2.3-jdk15.jar”,同时需导入 JSON依赖包“commons-logging-1.0.4.jar”,“commons-lang.jar”,“commons- collections.jar”,“commons-beanutils.jar”,“ezmorph-1.0.4.jar”;

2、由于在客户端脚本中要用到JQuery与JSON,需引入"JQuery.js"与"json2.js"。 
JAVA 代码如下:

package example; 

import java.io.BufferedReader; 
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; 

import net.sf.json.JSONObject; 

public class JasonServlet extends HttpServlet { 

/** 
* Constructor of the object. 
*/ 
public JasonServlet() { 
   super(); 
} 


public void destroy() { 
   super.destroy(); // Just puts "destroy" string in log 
   // Put your code here 
} 


public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
   doPost(request, response); 
} 


public void doPost(HttpServletRequest request, HttpServletResponse response) { 
   try { 
    String userStr = readJSONString(request);//得到requestContext 
    JSONObject jsonObj = JSONObject.fromObject(userStr);//转换成JSONObject 
    System.out.println(jsonObj.getInt("userId"));//得到JSONObject的userId值 
    System.out.println(jsonObj.getString("name")); 

    JSONObject resultJSON = new JSONObject();//构建一个JSONObject 
    resultJSON.accumulate("errNum", 1); 
    resultJSON.accumulate("errInfo", "成功"); 

    response.setContentType("application/x-json");//需要设置ContentType 为"application/x-json" 
    PrintWriter out = response.getWriter(); 
    out.println(resultJSON.toString());//向客户端输出JSONObject字符串 
    out.flush(); 
    out.close(); 
   } catch (Exception e) { 
    e.printStackTrace(); 
   } 
} 

/** 
* Initialization of the servlet. <br> 
* 
* @throws ServletException 
*             if an error occure 
*/ 
public void init() throws ServletException { 
   // Put your code here 
} 
public String readJSONString(HttpServletRequest request){ 
   StringBuffer json = new StringBuffer(); 
   String line = null; 
   try { 
   BufferedReader reader = request.getReader(); 
   while((line = reader.readLine()) != null) { 
   json.append(line); 
   } 
   } 
   catch(Exception e) { 
   System.out.println(e.toString()); 
   } 
   return json.toString(); 
   } 

} 

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> 

   <title>My JSP 'JasonTest.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="js/jquery.min.js"></script> 
   <script type="text/javascript" src="js/json2.js"></script> 
</head> 

<body> 
   <script type="text/javascript"> 
function User(userId, name) { 
this.userId = userId; 
this.name = name; 
} 
function requestServlet() 
{ 
var urlStr="http://192.168.1.118:8080/AjaxTest/servlet/JasonServlet"; 
var user = JSON.stringify(new User(101,"阿猫")); 

//调用JQuery提供的Ajax方法 
    $.ajax({ 
    type:"POST", 
   url:urlStr, 
   data:user, 
   dataType: "jason",//此处要设置成jason 
   success: callback});//回调函数 
   } 
function callback(jasonObj) 
{ 
var str = jasonObj; 
   var obj = JSON.parse(str);//调用Json2.js中提供的JSON解析器来解析成JSONObject 
    alert(obj.errNum); 
   } 
requestServlet(); 
</script> 
</body> 
</html> 

from:http://xinkong1010.iteye.com/blog/635743


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery、JSON、Ajax在Servlet中的应用 的相关文章

随机推荐

  • java中的==、equals和hashCode以及hashCode生成

    转载自 xff1a xff08 点击打开链接 xff09 前言 java中 61 61 equals hashCode 都和对象的比较有关 xff0c 在java中这三者各有什么用处呢 xff0c 即java中为什么需要设计这三种对象的比较
  • javascript调用微信或QQ扫一扫

    项目里为了体验做的好点 xff0c 想直接通过js调用手机的扫一扫 xff1a 服务的用户主要是通过 xff1a 微信或QQ 之前使用过 微信或QQ的分享 腾讯移动WEB开发平台的 39 对外分享组件接口文档 39 http open mo
  • Java中的反射机制

    获取类的类类型的3种方式 xff0c 以及如何通过类的类类型创建实例对象 xff1f ClassDemo1 java package com reflect public class ClassDemo1 public static voi
  • Java中的自定义注解

    自定义注解 Description java xff08 这里自定义Description注解 xff09 package com ann test import java lang annotation Documented import
  • Java中自定义注解的应用

    来自 慕课网 的学习 我们可以使用自定义注解 xff0c 实现ORM xff0c 即对象 关系的映射 通过自定义注解 xff0c 定义对象对应数据表的属性 xff0c 如表名 xff0c 表字段等 Table java xff08 Tabl
  • Intellij IDEA下的第一个Hibernate项目

    参考 xff1a intellij配置hibernate自动生成hbm xml文件 从零开始用Intellij idea14创建hibernate项目 下面我要讲的创建方式 xff0c 可能更加原生态 xff0c 更加类似于Eclipse下
  • Intellij IDEA使用注解创建Hibernate项目中的OR映射类

    上回说到 xff1a Intellij IDEA下的第一个Hibernate项目 我们需要创建 对象到关系的映射配置文件 xff0c 如 entity hbm xml xff08 其中 entity 是我们将要创建的实体 xff09 下面讲
  • Hibernate中Blob对象类型的使用

    使用Intellij IDEA创建Hibernate项目 xff0c 目录结构如下 xff1a 其中 assets app png 为将要存储的照片 xff0c src hibernate cfg xml 为Hibernate的配置文件 x
  • Hibernate组件映射

    转载自 xff1a 点击打开链接 在Hibernate中 component 是某个实体的逻辑组成部分 xff0c 它与实体的根本区别是没有oid xff08 对象标识符 xff09 xff0c component是一个被包含的对象 它作为
  • Hibernate中的单向一对多关联

    源自 imooc 中的学习 Hibernate中的单向一对多关联 xff0c 这里举例 班级对学生 的单向一对多关联 xff0c 即一个班级可以有多个学生 那么在Hibernate中实体对象间如何体现出单向一对多的关联关系呢 xff1f 如
  • Hibernate中的单向多对一关联

    继上回讲到 Hibernate中的单向一对多关联 xff0c 这次来实现一下Hibernate中的单向多对一关联 对原来的项目修改如下 xff1a Hibernate中的单向多对一关联 xff0c 需要我们在多方增加一个一方的属性 xff0
  • Hibernate中的双向多对一关联以及 inverse属性、cascade属性的用法

    上回 说了 Hibernate中的单向一对多关联 和 Hibernate中的单向多对一关联 这次针对这两个 单向 进行整合即可实现双向的多对一关联 如 xff1a 学生与班级的关系 在Grade类中需要添加 Set集合保存Student对象
  • 优化器 optimizer

    优化器 optimizer optimizer 优化器 xff0c 用来根据参数的梯度进行沿梯度下降方向进行调整模型参数 xff0c 使得模型loss不断降低 xff0c 达到全局最低 xff0c 通过不断微调模型参数 xff0c 使得模型
  • Hibernate中的多对多关联

    源自 imooc 的学习 多对多关联是一种常见的关联关系 多对多关联关系一般采用中间表的形式来实现 xff0c 即新增一张包含关联双方主键的关联表 那么 xff0c 在Hibernate中如何实现多对多的关联关系呢 xff1f 多对多关联可
  • HQL数据查询基础(一)

    源自 imooc 的学习 什么是HQL呢 xff1f HQL 是Hibernate Query Language xff0c Hibernate查询语言 xff1b 同时HQL是一种面向对象的查询语言 xff0c HQL查询的主体是映射配置
  • HQL数据查询基础(二)

    继上回 xff08 HQL数据查询基础 xff08 一 xff09 xff09 说到的例子 网上商店 xff0c 来继续完善持久化类和配置文件的创建 上回 在 com imooc model 包中创建 Seller java 持久化类 xf
  • HQL数据查询基础(三)

    继上回 xff08 HQL数据查询基础 xff08 二 xff09 xff09 xff0c 针对 网上商店 这个例子 xff0c 来讲解一些HQL简单的子句用法 xff08 以下的所有测试方法均在 MyTest java 测试类 xff08
  • Maven中pom.xml的解析

    Maven项目中的 pom xml lt project xmlns 61 34 http maven apache org POM 4 0 0 34 xmlns xsi 61 34 http www w3 org 2001 XMLSche
  • IntelliJ使用指南—— 导入Eclipse的Web项目

    通常一个团队中可能有人用eclipse xff0c 有人用intelliJ xff0c 那么经常会出现需要导入别人用eclipse建好的web项目 而IntelliJ提供了多种项目类型的导入方式 xff0c 其中就有eclipse 在初始窗
  • JQuery、JSON、Ajax在Servlet中的应用

    1 在Java中正确得到JSONObject xff0c 需要导入JSON的JAVA支持包 json lib 2 3 jdk15 jar xff0c 同时需导入 JSON依赖包 commons logging 1 0 4 jar xff0c