Javaweb学习笔记第十五弹--Listente概述、AJAX、Axiox、JSON
Listener(监听器)
可以在application、session和request三个对象创建
Javaweb提供了8个监听器,其中较为典型的是ServletContextListener监听器,其余监听器均与该监听器语法类似,可供参考


AJAX(异步的JavaScript和XML)
AJAX官网地址:https://www.w3school.com.cn/js/js_ajax_http_response.asp
作用:
1、与服务器进行数据交换:通过ALAX可以给服务器发送请求,并获取服务器响应的数据---使用了ALAX和服务器进行通信,就可以使用HTML+ALAX来替换JSP页面
2、异步交互:不重新加载整个页面,只是更新部分界面
AJAX快速入门
1、编写AjaxServlet,并使用response输出字符串
即------响应数据
在AjaxServlet.java文件的doGet函数中实现响应数据的操作:
response.getWriter().write("hello ajax~");
2、创建XMLHttpRequest对象:用于和服务器交换数据(下方代码为官网复制所得)
var xmlhttp;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
3、向服务器发送请求
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
4、获取服务器响应数据
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.responseText;
}
};
Axios异步框架
Axiox官网网址:https://www.axios-http.cn/(起步,走你)
Axiox快速入门
记得需要创建一个axioxServlet相关的.java文件,结构与之前的Servlet文件相同,均继承自HttpServlet,且均具有doGet和doPost方法
1、引入axiox的js文件
<script src="js/axiox-0.18.0.js"></script>
2、使用axiox发送请求,并获取响应结果
//Get
//在doGet方法里面写入:
System.out.println("get...");
//接收请求参数
String username=req.getParameter("username");
System.out.println(username);
//在demo.html里面写入:
axiox({
method:"get"
url:"http://localhost:8080/tt0929/Listener?username=zhangsan"
}).then(function (resp){
alert(resp.date);
})
//Post
//在doPost方法里面写入:
System.out.println("post...");
this.doGet(req,resp);
//demo.html里面写入:
axiox({
method:"post"
url:"http://localhost:8080/tt0929/Listener?",
date:"username=zhangsan"
}).then(function (resp){
alert(resp.date);
})
Axiox请求方式别名(更加方便)
//Get
axiox.get("http://localhost:8080/tt0929/Listener?username=zhangsan").then(function (resp){alert(resp.date);
})
//Post
axiox.post("http://localhost:8080/tt0929/Listener","username=zhangsan").then(function (resp){alert(resp.date);
})
JSON(JavaScript对象表示法)
JSON基础语法
//定义
var 变量名={"key1":变量值1
"key2":变量值2
...
}
//获取数据
alert(变量名.变量值1/2);
JSON数据和Java数据对象转换
导入坐标:fastjson包
请求数据(JSON字符串转为Java对象)
User u=JSON.parseObject(str,User.class);//将前者的形式转换为后者的形式
System.out.println(u);
响应数据(Java对象转为JSON字符串)
//Java对象转为JSON对象
//.java文件中
User user=new User();//新建一个User对象
user.setId(id);
user.setUsername(username);
user.setPassword(password);
String jsonString=JSON.toJSONString(user);
Javaweb学习笔记第十五弹--Listente概述、AJAX、Axiox、JSON的更多相关文章
- Javaweb学习笔记——(十五)—————— sql复习
sql复习 数据库管理系统(DBMS)的概述 1.什么是DBMS:数据的仓库 *方便查询 *可存储的数据量大 *保证数据的完整.一致 *安全可靠 2.DBMS的发展:今天主流数据库为关系型数据库管理系 ...
- JavaWeb学习笔记(十五)—— 使用JDBC进行批处理
一.什么是批处理 批处理就是一批一批的处理,而不是一个一个的处理! 当你有10条SQL语句要执行时,一次向服务器发送一条SQL语句,这么做效率上很差!处理的方案是使用批处理,即一次向服务器发送多条SQ ...
- VSTO学习笔记(十五)Office 2013 初体验
原文:VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用.从此开始VSTO系列全面转向Office 201 ...
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
- [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- Nodejs学习笔记(十五)—Node.js + Koa2 构建网站简单示例
前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还 ...
- 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...
- Android学习笔记(十五)——实战:强制下线
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 实现强制下线功能的思路也比较简单,只需要在界面上弹出一个对话框, 让用户无法进行任何其他操作, 必须要点击对话 ...
- Dynamic CRM 2013学习笔记(十五)报表设计:报表入门、开发工具及注意事项
本文是关于CRM 2013报表开发入门介绍,包括开发工具的使用,以及不同于普通Reporting service的相关注意事项. 一.CRM报表简介 报表有两种,SQL-based报表和Fetch-b ...
随机推荐
- js - script标签的for属性和event属性
js - script标签的for属性和event属性 <script language="javascript" for="window" event= ...
- node.js请求css、js静态资源页面不生效
产生原因:文件响应头内容类型错误 解决方案:设置对应的响应头内容类型 const http = require('http'); const fs = require('fs'); const pat ...
- Pytest Fixture(二)
作用域 固件的作用是为了抽离出重复的工作和方便复用,为了更精细化控制固件(比如只想对数据库访问测试脚本使用自动连接关闭的固件),pytest 使用作用域来进行指定固件的使用范围. 在定义固件时,通过 ...
- Java-ArrayList常用API
返回值 方法 用途 boolean add(E e) 将指定的元素追加到此列表的末尾. void add(int index, E element) 在此列表中的指定位置插入指定的元素. boolea ...
- pycharm开发工具的介绍和使用
pycharm开发工具的介绍和使用 PyCharm是常用的python开发工具之一,分为社区版和专业版,社区版只有基础的python环境,专业版的功能会多很多
- C#TimeSpan时间差转换成分钟和秒数
public Form1() { InitializeComponent(); aa = DateTime.Now.ToString(); } string aa; private void butt ...
- AX2012 查询用户在线操作记录
1 static void ExportSysClientAccessLog(Args _args) 2 { 3 SysClientAccessLog sysClientAccessLog; 4 5 ...
- elementUI el-input 调整数据但是前端界面不刷新
在表格行中提供一个输入框,允许用户输入,并且可以进行简单的四则计算,计算在onblur或者回车触发. <el-input v-model="scope.row[scope.column ...
- 修改AXI UART D16550 FIFO深度的过程记录
仅限于AXI UART 16550 v. 2.0,其他版本可能存在差异,经过实际测试,可以将fifo深度从默认的16成功修改为32.128和256.参考了两篇帖子中提到的方法,分别是修改AXI UAR ...
- 4vue 属性绑定
属性绑定v-bind <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...