xmlhttprequest 原生使用

package com.ajax.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ajax.dao.Dao;

public class ShwServlet extends HttpServlet {

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

		response.setContentType("text/html;charset=gbk");
		PrintWriter out = response.getWriter();

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

		String name = new String(uname.getBytes("iso-8859-1"), "gbk");

		// Dao dao = new Dao();
		// List<String> list = dao.find(name);

		StringBuffer sf = new StringBuffer();

		for (String s : list) {
			sf.append("<div οnmοuseοver='over(this)' " +
					"οnclick='myclick(this)'  " +
					"οnmοuseοut='out(this)'>"+s+"</div>");
		}
		out.print(sf.toString());
		out.close();
	}

}
这是我的ajax脚本文件

var req =null; //声明ajax的核心对象,从是没有初始化


//响应jsp页面中的函数
function show(){
	
	
	//取到页面中的文本框控件
	var name = document.getElementById("name");
	//取到控件中的值
	
	var val = name.value;
	
	if(val==""){
		mydiv.innerHTML="";
		return;
	}else{
		//封装一个请求servlet路径的url地址,同时把参数以url重写的方式传递
		var url = "abc?uname="+val;
		sendRequest(url);	
	}
	
}


//编写方法,根据不同的浏览器创建核心对象 XMLHttpRequest,

function  createReq(){
	
	
	//非IE
	if(window.XMLHttpRequest){
		req = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

}


//利用核心对象和后台交互
function sendRequest(url){
	
	
	//准备交互
	//1、调用方法初始化核心对象
	createReq();
	//2、准备建立异步请求
	//req.open(选择servlet的处理方式,地址,同步还是异步);
	req.open("GET",url,true);
	//3、编写委托,委托一个方法来处理请求的返回结果
	//req.onreadystatechange =被委托的函数名称
	req.onreadystatechange = process;
	//4、真正的发送请求到后台
	req.send(null);
}


//当返回值来了以后,由被委托的函数来处理
function process(){
	
	//首先判断异步是否成功与后台交互
	
	//req.readystate==4  表示,前台与后台,成功交互了一次
	if(req.readystate==4){
		//交互成功以后,还要判断请求是否成功处理
		if(req.status==200){
			//定制一个变量,获得后台的返回值
			var res = req.responseText;
			//req.responseText 它可以获得servlet中,流所输出的内容
			mydiv.innerHTML = res;
		}
	
	}

}

//处理悬停事件
function over(obj){
	obj.style.backgroundColor="lime";
}
function out(obj){
	obj.style.backgroundColor="white";
}

function myclick(obj){
	
	var val = obj.innerHTML;
	document.getElementById("name").value=val;
	mydiv.innerHTML="";
}





<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
  <head>
  		<script type="text/javascript" src="js/script.js"></script>
  </head>
  
  <body>
  		<table>
  			<Tr>
  				<Td>
  					<input type="text" name="name" οnkeyup="show()"/>
  				</Td>
  			</Tr>
  			<Tr>
  				<Td>
  					<div id="mydiv" style="border-style: groove"></div>
  				</Td>
  			</Tr>
  		</table>	
  </body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue2中使用原生的Ajax主要有以下几个步骤: 1. 引入XMLHttpRequest对象:在Vue组件中,可以通过`new XMLHttpRequest()`来创建一个XMLHttpRequest对象,该对象是用于发送Ajax请求的基础。 2. 发送Ajax请求:使用创建的XMLHttpRequest对象,通过调用其`open()`和`send()`方法来发送Ajax请求。`open()`方法用于指定请求的类型(GET或POST)和URL,`send()`方法用于发送请求。 3. 监听并处理响应:通过`onreadystatechange`事件来监听Ajax请求的状态和响应。当`XMLHttpRequest`对象的`readyState`属性发生改变时,会触发该事件。在事件处理函数中,可以使用`status`属性来获取响应的状态码,`responseText`属性来获取响应的内容。 4. 解析和使用响应数据:根据需要,可以使用内置的JSON对象来解析JSON格式的响应数据,或者直接使用响应的内容。 下面是一个使用原生Ajax发送GET请求的示例: ``` <template> <div> <button @click="getData">发送请求</button> <div v-if="responseData">{{responseData}}</div> </div> </template> <script> export default { data() { return { responseData: null } }, methods: { getData() { const xhr = new XMLHttpRequest(); xhr.open('GET', '/api/data', true); xhr.send(); xhr.onreadystatechange = () => { if (xhr.readyState === 4 && xhr.status === 200) { this.responseData = xhr.responseText; } } } } } </script> ``` 在上述示例中,当点击按钮时,会发送一个GET请求到`/api/data`接口,并将响应的内容显示在页面上。 需要注意的是,使用原生Ajax需要手动处理一些错误和异步请求的情况,而Vue2提供了更方便的Axios等第三方库来简化Ajax请求的操作,推荐使用这些库来处理Ajax请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值