原生javascript实现Ajax和jQuery实现Ajax实例应用

这是我自己写的例子,希望对大家有帮助

使用了struts2,jdk1.6

1.实体类书写

public class Student {

private String toid ;

private String name ;

private String sex ;

public String getToid() {

return toid ;

}

public void setToid(String toid) {

this.toid = toid;

}

public String getName() {

return name ;

}

public void setName(String name) {

this.name = name;

}

public String getSex() {

return sex ;

}

public void setSex(String sex) {

this.sex = sex;

}

}

2.我们在首页的jsp中写上几个链接

<html>

<head >

<title >ajax-struts测试</title >

</head >

<body >

<a href="<%= path%>/login.jsp" >使用javascript原生 api实现ajax ---读取远程文本</a >

<br />

<a href="<%= path%>/register.jsp" >使用javascript原生 api实现ajax ---检查注册名是否重复</a >

<br />

<a href="<%= path%>/jqueryRegister.jsp" >使用jquery框架实现 ajax---检查注册名是否重复 </a>

<br />

<a href="<%= path%>/jqueryJson.jsp" >ajax请求json数据,动态构造网页 </a>

</body >

</html>

3.struts2的配置文件

<?xml version="1.0" encoding= "UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd" >

<struts>

<package name="user" extends="struts-default" namespace="/user" >

<action name="userAction" class="action.UserAction">

<result name="doLogin" >/login.jsp</ result>

<result name="loginerr" >/register.jsp</ result>

</action>

</package>

</struts>

4.实现javascript原生Ajax读取文本文档

<html>

<head >

<title >ajax读取txt文本</title >

<script type="text/javascript">

function getContent(){

var xmlhttpRequest=new XMLHttpRequest();

xmlhttpRequest.onreadystatechange= function(){

if (xmlhttpRequest.readyState==4 && xmlhttpRequest.status==200){

document.getElementById("content" ).value=xmlhttpRequest.responseText;

}

}

xmlhttpRequest.open( "GET","<%= path%>/txt/ajaxtest.txt ",true);

xmlhttpRequest.send();

}

</script >

</head >

<body >

<input type="button" value="ajax获取信息" onclick="getContent()" />

<br />

<textarea id="content" rows="5" cols="30"></ textarea>

</body >

</html>

文本信息为:

hello ajax

你好啊

自己随便写一个文本文档,注意路径不要写错了

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

(1).无法使用缓存文件(更新服务器上的文件或数据库)

(2).向服务器发送大量数据(POST 没有数据量限制)

(3).发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

5.javascript原生Ajax实现账号验证

< html>

<head >

<title > 注册</ title >

<script type= "text/javascript">

function doRegister(){

var xmlhttpRequest= new XMLHttpRequest();

xmlhttpRequest.onreadystatechange= function (){

if (xmlhttpRequest.readyState==4 && xmlhttpRequest.status==200){

var responseResult=xmlhttpRequest.responseText;

if (responseResult==‘iserror‘ ){

alert( "账号已被使用" );

else {

alert(responseResult);

var registerForm=document.getElementById( "registerForm");

registerForm.submit();

}

}

}

var username=document.getElementById("username" ).value;

xmlhttpRequest.open("GET" ," <%=path %> /user/userAction!checkUsername.action?username= "+username,true);

xmlhttpRequest.send();

}

</script >

</head >

<body >

${requestScope.errormsg}

<form id= "registerForm" action =" <%= path%> /user/userAction!doLogin.action" method= "post">

用户名: < input type ="text" name= "username" id= "username" />

<br />

密码: < input type ="password" name= "password" id= "password" />

<br />

< input type ="button" onclick= "doRegister()" value ="注册" />

</form >

</body >

</ html>

新建一个UserAction代码内容为:

public class UserAction {

     public String doLogin() {

return "doLogin" ;

}

}

这个类放在这,我们还要添加方法,留待后面使用

6.使用jQuery框架实现Ajax,检验账号

< html>

<head >

<title > jqury实现无刷新测试 </ title>

<script type= "text/javascript" src =" <%= path%> /js/jquery-1.7.1.js" ></script >

<script type= "text/javascript">

function doRegister(){

var username=$("#username" ).val();

$.ajax({

type: "POST" ,  //异步请求方式

data:{ "username" :username},  //传递的数据

url:‘ <%= path%> /user/userAction!checkUsername.action ‘,  //请求路径

dataType: "text" ,

success: function (data){

alert(data);

},

error: function (err){alert("错误:" +err);}  //异步请求失败后的回调函数

});

}

</script >

</head >

<body >

<form id= "registerForm" action =" <%= path%> /user/userAction!doLogin.action" method= "post">

用户名: < input type ="text" name= "username" id= "username" />

<br />

密码: < input type ="password" name= "password" id= "password" />

<br />

< input type ="button" onclick= "doRegister()" value ="注册" />

</form >

</body >

</ html>

在上面的UserAction类里面添加代码如下:

public void checkUsername() {

HttpServletRequest request = ServletActionContext.getRequest();

HttpServletResponse response = ServletActionContext.getResponse();

String username = request.getParameter( "username" );

if (username.equals("admin" )) {

try {

Writer writer = response.getWriter();

writer.write( "iserror" );

writer.flush();

writer.close();

catch (IOException e) {

e.printStackTrace();

}

}

}

7.Ajax请求json数据,动态构造网页

< html>

<head >

<title > jquery ajax 请求json数据动态构造网页 </ title>

<script type= "text/javascript" src =" <%= path%> /js/jquery-1.7.1.js" ></script >

<script type= "text/javascript">

function searchStudent(){

$.ajax({

type: "POST" ,  //异步请求方式

url:‘ <%= path%> /user/userAction!ajaxList.action ‘,  //请求路径

dataType: "json" ,

success: function (data){

//alert(data);

$( "#stuTr" ).nextAll().remove();

//循环json数据

for (var i=0;i<data.length;i++){

var item=data[i];

//alert(item.toid+" : "+item.name);

$("#stuTable" ).append( "<tr><td>"+item.toid+ "</td><td>" +item.name+"</td><td>" +item.sex+ "</td></tr>");

}

},

error: function (err){alert("错误:" +err);}  //异步请求失败后的回调函数

});

}

</script >

</head >

<body >

<input type= "button" onclick ="searchStudent()" value = "ajax得到所有学生" />

<table id= "stuTable" border ="1" >

<tr id= "stuTr" >< td> toid </td >< td> 学生姓名 </td >< td> 性别 </td ></ tr>

</table >

</body >

</ html>

在上面的UserAction类里面添加代码如下:

/**

* 给客户端返回 json数据

*/

public void ajaxList() throws Exception {

//模拟从数据库中获取数据

List<Student> list = new ArrayList<Student>();

for (int i = 0; i < 10; i++) {

Student student = new Student();

student.setToid(i + "" );

student.setName( "ago" + i);

student.setSex(i % 2 + "" );

list.add(student);

}

HttpServletResponse response = ServletActionContext.getResponse();

//把list解析成 json

String json = JSON. toJSONString(list);

System. out .println(json);

response.setContentType( "application/json;charset=UTF-8" );

response.setHeader( "Cache-Control" , "no-cache" );

//给用户打印 json数据

response.getWriter().write(json);

response.flushBuffer();

}

时间: 2024-10-09 09:08:41

原生javascript实现Ajax和jQuery实现Ajax实例应用的相关文章

通过原生js的ajax或jquery的ajax获取服务器的时间

在实际的业务逻辑中,经常是与时间相关的,而前端能获得的时间有两个:客户端的时间,服务器的时间.客户端时间通过 javascript中的Date对象可以获取,如 Java代码   var dt = new Date(); var tm = dt.getTime(); 那么tm就是客户端的时间,另外也可以通过对应的getFullYear(),getMonth(),getDate()取到对应的年月日等...但这个时间可靠吗?好吧,那取服务器时间吧经常用到的是后台写一个php,jsp,cgi,asp..

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo 前言 在JS学习中,对于原生的很多东西我理解得并不透彻.但是使用jQuery来操作DOM,基本上还是非常熟练的.但是对于AJAX数据交互的处理,我不是很理解. 近期团队交给我一个后端全接口提供给我的项目.我要利用这些接口来自己组织前端代码.为了学习,我决定不使用VUE或者其他的前端框架来做.而是只使用jQuery框架,数据的部分全部使用拼接字符串的形式实现. 获取数据,显示数据,提交数据. 在这个项目中(

js原生ajax与jquery的ajax的用法区别

什么是ajax和原理? AJAX 是一种用于创建快速动态网页的技术. 通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据 XMLHttpRequest对象的基本属性: onreadtstatechange 每次状态改变所触发事件的时间处理程序. responseText 从服务器响应返回以字符串为形式的数据 responseXML 从服务器响应返回以XML(DOM兼容文档)数据对象 status 从服务器返回的数字代码 100-199 用于指定客户端应相应的某些动作. 2

Js原生Ajax和Jquery的Ajax

一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死 2.Ajax的运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面1 功能. 二

JavaScript的ajax与jQuery的ajax案例分析

先谈JavaScript的ajax,传输数据为json #############################################JavaScript ajax json########################################### 注意:由于要用到json的JSON.stringify()方法,需要引入json2.js库. html代码: <!DOCTYPE html><html lang="en"><head&g

Ajax相关(原生ajax,jQuery中ajax,axios)

1. get和post请求 从服务端获取数据:get请求 请求参数在地址栏中以urlencoded形式显示 格式:username=xcr&userAge=18 通过location.search可获取当前地址栏中 ? 及其后面的请求参数内容 可发送 2kb左右的数据 只能发送文本形式的数据 get请求可以被缓存,将地址保存,这个请求所携带的请求参数都将被保存 给服务端发送数据:post请求 post请求的参数在请求体中,不会在地址栏中体现,发送一些隐私数据时使用post请求发送,相对get请求

javascript事件之:jQuery事件中实例对象和拓展对象之间的通信

我们总结过jQery事件中的实例原型对象对外接口和拓展对象,现在我们看看他们是如何进行通信联系的. 先来看便捷方法: 1 //调用的还是实例对象下的on()和trigger() 2 jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + 3 "mousedown mouseup mousemove mouseover mouseout mouseenter

原生js和jquery发送ajax请求及封装

原生js                                   // ajax get 五部曲function ajax_get(url,data){ // 异步对象 var ajax=new XMLHttpRequest(); // 设置url和请求方式 // url方法 如果有数据要把数据拼接到url中?name=jack&age=20 if(data){ url+=?; url+=data; }else{}; ajax.open('get',url); // 发送请求 aja

你可能不需要 jQuery!使用原生 JavaScript 进行开发

jquery 转原生js 的一些方法 / jq转js / jquery与js. 很多的 JavaScript 开发人员,包括我在内,都很喜欢 jQuery.因为它的简单,因为它有很多丰富的插件可供使用,和其它优秀的工具一样,jQuery 让我们开发人员能够更轻松的开发网站和 Web 应用. 然而,另一方面,作为前端开发的基础框架,jQuery 包含大量的兼容性代码和扩展功能,其中有很多在你的整个项目中可能都不会用到.其实如果你只是针对现代浏览器,很多功能使用原生的 JavaScript 就可以实