首页 > 编程语言 >JavaWeb-2 Ajax以JSON格式访问Servlet

JavaWeb-2 Ajax以JSON格式访问Servlet

时间:2024-12-16 20:58:05浏览次数:7  
标签:city JavaWeb Ajax xhr JSON import response out

1.客户端代码

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Bootstrap 实例 - 水平表单</title>
 6     <link rel="stylesheet" type="text/css" href="./css/bootstrap.min.css">  
 7     <link rel="stylesheet" type="text/css" href="./fonts/iconfont.css">
 8     <script src="./js/jquery.min.js"></script>
 9     <script src="./js/bootstrap.min.js"></script>
10 </head>
11 <body>
12 
13 <form class="form-horizontal" role="form">
14     <div class="form-group">
15         <label for="firstname" class="col-sm-2 control-label">城市</label>
16         <div class="col-sm-10">
17             <input type="text" class="form-control" id="firstname" 
18                    placeholder="请输入城市">
19         </div>
20     </div>
21     <div class="form-group">
22         <label for="lastname" class="col-sm-2 control-label">邮编</label>
23         <div class="col-sm-10">
24             <input type="text" class="form-control" id="lastname" 
25                    placeholder="请输入邮编">
26         </div>
27     </div>
28     <div class="form-group">
29         <div class="col-sm-offset-2 col-sm-10">
30             <div class="checkbox">
31                 <label>
32                     <input type="checkbox"> 请记住我
33                 </label>
34             </div>
35         </div>
36     </div>
37     <div class="form-group">
38         <div class="col-sm-offset-2 col-sm-10">
39             <button type="submit" class="btn btn-default" onclick="onSubmit()">提交</button>
40         </div>
41     </div>
42 </form>
43 
44 </body>
45 <script type="text/javascript">
46     function onSubmit() {
47         alert("调用AJAX开始向服务器发送请求!");
48         //document.getElementById("findBtn").value = "稍等";
49 
50         //获取输入框的值
51         var val_first = document.getElementById("firstname").value;
52         var val_last = document.getElementById("lastname").value;
53         var url = "/dynwp03/CityInfoWeb";
54         url = encodeURI(url, "UTF-8");//编码为UTF-8
55 
56         if (window.XMLHttpRequest) { // IE7及以上, Firefox, Opera支持
57             xhr = new XMLHttpRequest();
58         } else if (window.ActiveXObject) { // IE5,IE6支持
59             xhr = new ActiveXObject("Microsoft.XMLHTTP");
60         }
61         if (xhr) {
62             
63             var data = {
64                     firstname: val_first,
65                     lastname: val_last
66                 };
67             var jsonData = JSON.stringify(data);
68             
69             xhr.onreadystatechange = onCompleted;
70             xhr.open("POST", url, true);
71             //xhr.setRequestHeader('If-Modified-Since', '0');//清除缓存
72             xhr.setRequestHeader("Content-Type","application/json");
73             
74             xhr.send(jsonData);
75             
76         }
77         function  onCompleted(){
78             if (xhr.readyState === 4 && xhr.status === 200) {
79                   // 请求成功,处理返回的数据
80                   var responset = JSON.parse(xhr.responseText);
81                   alert(xhr.responseText);
82                   //console.log(response);
83                 }
84             };
85     }
86 </script>
87 </html>

这里需要注意将onCompleted方法单独领出来写。

2. Servlet服务代码

 1 package dynwp;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStreamReader;
 5 import java.io.PrintWriter;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 
12 import com.alibaba.fastjson.JSON;
13 import com.alibaba.fastjson.JSONObject;
14 
15 import javax.servlet.ServletInputStream;
16 import dynwp.AxCity;
17 /**
18  * Servlet implementation class CityInfoWeb
19  */
20 public class CityInfoWeb extends HttpServlet {
21     private static final long serialVersionUID = 1L;
22 
23     /**
24      * Default constructor. 
25      */
26     public CityInfoWeb() {
27         // TODO Auto-generated constructor stub
28     }
29 
30     /**
31      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
32      */
33     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34         // TODO Auto-generated method stub
35         //response.getWriter().append("Served at: ").append(request.getContextPath());
36         response.setHeader("CacheControl", "nocache");
37         response.setCharacterEncoding("UTF-8");
38         AxCity city=new AxCity();
39         city.setId(1);
40         city.setName("北京");
41         city.setDescribe("北京是中华人民共和国的首都,是全国的政治和文化中心。");
42         String jsonString = JSON.toJSONString(city);
43         response.setContentType("application/json");
44         PrintWriter out = response.getWriter();
45         out.append(jsonString);
46     }
47 
48     /**
49      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
50      */
51     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
52         // TODO Auto-generated method stub
53         InputStreamReader insr = new InputStreamReader(request.getInputStream(),"utf-8");
54         String result = "";
55         int respInt = insr.read();
56         while(respInt!=-1) {
57             result +=(char)respInt;
58             respInt = insr.read();
59         }
60         JSONObject jsonRet = JSONObject.parseObject(result);
61         System.out.println(jsonRet.getString("firstname"));
62         System.out.println(jsonRet.getString("lastname"));
63 
64         response.setHeader("CacheControl", "nocache");
65         response.setCharacterEncoding("UTF-8");
66         //response.setStatus(200);
67         PrintWriter out = response.getWriter();
68 //        out.append(jsonRet.getString("firstname"));
69 //        out.append(jsonRet.getString("lastname"));
70         AxCity city=new AxCity();
71         city.setId(10010);
72         city.setName(jsonRet.getString("firstname"));
73         city.setDescribe("北京是中华人民共和国的首都,是全国的政治和文化中心。");
74         String jsonString = JSON.toJSONString(city);
75         response.setContentType("application/json");
76         out.write(jsonString);
77         out.flush();
78         out.close();
79     }
80 
81 }

 3.结果

 

标签:city,JavaWeb,Ajax,xhr,JSON,import,response,out
From: https://www.cnblogs.com/yhlx125/p/18611069

相关文章

  • .Net_比对Json文件是否一致
    简介该方法用于比较两个Json文件是否完全一致,仅考虑内容若两个文件中的内容只是顺序不一致,内容是一样的,那么也代表这两个文件是相等的实现代码调用usingCompareJsonFiles;Console.WriteLine("=================输入信息===================");Console.WriteLi......
  • Jackson @JsonIgnore 注解
    1.概述Jackson是一个广泛使用的Java库,它允许轻松地将Java对象序列化为JSON以及从JSON反序列化回Java对象。Jackson库提供的其中一个注解是@JsonIgnore。这个注解用于在序列化和反序列化过程中忽略特定的属性。这在转换JSON与Java对象之间时隐藏或省略敏感或不必要的数据......
  • Jackson @JsonProperty 注解
    1.概述Jackson是一个流行的Java库,用于将Java对象转换为JSON格式以及从JSON反序列化回Java对象。一种常见的需求是在序列化为JSON或从JSON反序列化时自定义字段的命名。Jackson的@JsonProperty注解正好满足了这一需求。@JsonProperty注解概览@JsonProperty注解用于......
  • javaweb前端部分
     一HTMLHTML(HyperTextMarkupLauguage):超文本标记语言1超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片,音频,视频等内容。2标记语言:由标签构成的语言。HTML:标签都是预定义好的。例如:使用<a>展示超链接,使用<img>展示图片,<video>展示视频。HTML:......
  • javaweb足球联赛管理系统 网上商城系统
    目录项目介绍具体实现截图开发核心技术:核心代码部分展示详细视频演示源码获取方式项目介绍随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于网络的广泛应用给生活带来了十分的便利。所以把足球联赛管理与现在网络相结合,利用计算机搭建足球联赛管......
  • IDEA bean json互转换插件
    插件安装步骤:File->Settings->Plugins—>查找所需插件—>Install或File->Settings->Plugins—>Installplugfromdisk—>选择下载好的插件安装一般插件安装后重启idea即可生效。一、Javabean转换json 的插件 java-bean-to-json下面详细安装图文:先到setting(Ctrl+Alt+......
  • 如果使用JSON.stringify进行深拷贝有什么弊端?如何解决?
    使用JSON.stringify()进行深拷贝在前端开发中有一些显著的弊端:只能复制可序列化的数据:JSON.stringify()只能复制那些可以被JSON表示的数据类型。这意味着以下几种类型的数据无法被正确复制:函数:函数会被转换成字符串"function(){...}",丢失其可执行性。正则表......
  • JSONPath 学习笔记
    什么是JSONPath?JSONPath是一种类似于XPath的查询语言,用于在JSON数据中定位和提取特定部分的数据。它提供了一种简洁而强大的方式来导航和检索JSON结构中的元素,使得我们可以轻松地从复杂的JSON数据中提取所需的信息。JSONPath表达式JSONPath引用JSON结构,就像XPath表达......
  • JavaWeb02
    1.jsp+dao完成crud操作1.1展示所有数据到网页上publicArrayList<Student>findAll(){//创建一个集合容器ArrayList<Student>list=newArrayList<>();try{//获取连接对象getConn();//获取执行sq......
  • json转成数组,数组转成json,json编辑器
    module.exports={JSONToPathArr(data){constresArr=[]constpArr=['']constlist=[data]for(leti=0;i<list.length;i++){constjson=list[i]for(letkinjson){const......