GET与POST方式发送请求参数
getAndPostExample.html清单:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sending Request Data Using GET and POST</title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
//拼接查询参数字符串
function createQueryString() {
var firstName = document.getElementById("firstName").value;
var middleName = document.getElementById("middleName").value;
var birthday = document.getElementById("birthday").value;
//参数与参数之间用&分隔
var queryString = "firstName=" + firstName + "&middleName=" + middleName
+ "&birthday=" + birthday;
return queryString;
}
//GET方式发送异步请求
function doRequestUsingGET() {
createXMLHttpRequest();
//请求一个Servlet
var queryString = "GetAndPostExample?";
//以防读取缓存页面,所以每次发送时多带一个时间参数
queryString = queryString + createQueryString()
+ "&timeStamp=" + new Date().getTime();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", queryString, true);
xmlHttp.send(null);
}
//POST方式发送请求
function doRequestUsingPOST() {
createXMLHttpRequest();
//以防读取缓存页面,所以每次发送时多带一个时间参数
var url = "GetAndPostExample?timeStamp=" + new Date().getTime();
var queryString = createQueryString();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = handleStateChange;
//POST方式时还要设置以下HTTP头信息
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//POST方式时参数用send方法发送出去
xmlHttp.send(queryString);
}
//回调用方法
function handleStateChange() {
//状态为4时表示请求已完成
if(xmlHttp.readyState == 4) {
//表示请求的资源存在
if(xmlHttp.status == 200) {
parseResults();
}
}
}
//处理服务器返回结果
function parseResults() {
var responseDiv = document.getElementById("serverResponse");
//如果以前查询过,则清除以前结果
if(responseDiv.hasChildNodes()) {
responseDiv.removeChild(responseDiv.childNodes[0]);
}
var responseText = document.createTextNode(xmlHttp.responseText);
responseDiv.appendChild(responseText);
}
</script>
</head>
<body>
<h1>Enter your first name, middle name, and birthday:</h1>
<table>
<tbody>
<tr>
<td>First name:</td>
<td><input type="text" id="firstName"/>
</tr>
<tr>
<td>Middle name:</td>
<td><input type="text" id="middleName"/>
</tr>
<tr>
<td>Birthday:</td>
<td><input type="text" id="birthday"/>
</tr>
</tbody>
</table>
<form action="#">
<input type="button" value="Send parameters using GET" onclick="doRequestUsingGET();"/>
<br/><br/>
<input type="button" value="Send parameters using POST" onclick="doRequestUsingPOST();"/>
</form>
<br/>
<h2>Server Response:</h2>
<!-- 存放结果区 -->
<div id="serverResponse"></div>
</body>
</html>
GetAndPostExample.java清单:
package ajaxbook.chap3;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GetAndPostExample extends HttpServlet {
protected void processRequest(HttpServletRequest request,
HttpServletResponse response, String method)
throws ServletException, IOException {
//设置响应头类型text/xml
response.setContentType("text/xml");
//获取用户输入参数
String firstName = request.getParameter("firstName");
String middleName = request.getParameter("middleName");
String birthday = request.getParameter("birthday");
//创建返回文本
String responseText = "Hello " + firstName + " " + middleName
+ ". Your birthday is " + birthday + "."
+ " [Method: " + method + "]";
//向浏览器写回响应信息
PrintWriter out = response.getWriter();
out.println(responseText);
//关闭流
out.close();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理GET请求
processRequest(request, response, "GET");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理POST请求
processRequest(request, response, "POST");
}
}
运行结果:
- 大小: 7.6 KB
分享到:
相关推荐
在“使用JSON向服务器发送数据——ajax基础笔记”这个主题中,我们首先会了解如何创建一个XMLHttpRequest对象。在JavaScript中,你可以通过`new XMLHttpRequest()`来实例化一个对象,然后利用它的方法如`open()`、`...
**XMLHttpRequest** 对象是 AJAX 技术的核心,它负责在客户端与服务器之间发送异步请求,无需刷新整个页面即可实现局部数据更新。要使用 XMLHttpRequest,首先要检测浏览器是否支持此对象。对于支持的现代浏览器(如...
2. **POST方式案例**:与GET方式类似,但POST请求的`open`方法参数不同,并且在`send`方法中需要传递请求体数据。POST方式可以发送更多数据,并且数据不会显示在URL中,更加安全。 通过以上分析,我们可以看出Ajax...
3. **Ajax请求过程**:一个完整的Ajax请求包括打开连接(`open()`方法)、设置请求参数、发送请求(`send()`方法)以及监听状态变化(`onreadystatechange`事件)。 - `open(method, url, async)`:method为HTTP...
本笔记将探讨AJAX的基本原理和实现方式,通过分析`index.jsp`和`easy.jsp`两个文件,来展示一个简单的AJAX应用。 1. **AJAX 基本概念** - **异步性**:AJAX的核心特性是异步处理,即在后台与服务器通信,不会阻塞...
**AJAX笔记** 在网页开发中,AJAX(Asynchronous JavaScript and XML)是一种不刷新整个页面的情况下,与服务器交换数据并更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新,...
通过以上内容的学习,我们了解到 Ajax 的基本原理及其关键组成部分,包括 `XMLHttpRequest` 对象的创建、请求的发送与接收、回调函数的使用等。同时,我们也讨论了一些进阶主题,如跨域请求的问题及解决方案。掌握...
2. **设置请求参数**:`open(method, url, async)`,方法包括GET和POST,url是请求的地址,async为true表示异步。 3. **发送请求**:`send(data)`,data为POST方式时传递的数据。 4. **处理响应**:`readyState`...
在本篇16ajax学习笔记1中,我们将探讨Ajax的基础概念、使用方法以及jQuery库中的Ajax实现。 1、发送请求: Ajax的首要任务是创建XMLHttpRequest对象,这是浏览器提供的API。在JavaScript中,我们可以通过new ...
它通常接受三个参数:请求类型(GET、POST等)、URL和一个布尔值表示是否异步执行。 ```javascript xhr.open('GET', 'https://example.com/api/data', true); ``` ### 4. 发送请求 使用`send()`方法发送HTTP请求...
4. **发送请求**:使用`send()`方法发送请求,如果是GET请求,参数可以直接放在URL后,POST请求则将数据放在`send()`方法中。 5. **监听状态变化**:通过`onreadystatechange`事件,当`readyState`属性改变时,检查`...
3. **发送请求**:调用`send()`方法发送请求,如果是GET请求,参数可以直接放在URL后面;如果是POST,需要通过`send()`方法传入数据。 4. **监听状态变化**:使用`onreadystatechange`事件处理函数,当请求状态改变...
1. **创建 XMLHttpRequest 对象**:这是Ajax的基础,所有与服务器的通信都通过这个对象来完成。 2. **打开连接**:调用 XMLHttpRequest 对象的 `open` 方法,设置请求类型(GET、POST等)、URL以及是否异步。 3. **...
5. **编码问题**:在处理特殊字符时,如GET请求中的URL编码,POST请求中的数据编码等,需注意字符集的转换和兼容性问题。 6. **Ajax的优点**:提升用户体验,减少网络传输,降低服务器压力,提供更快的响应速度。 ...
1. **XMLHttpRequest对象**:这是AJAX的基础,允许JavaScript向服务器发送异步请求,接收响应,并处理返回的数据。 2. **JavaScript**:编写处理逻辑,创建XMLHttpRequest对象,定义请求参数,以及处理服务器返回的...
3. **发送请求**:使用send方法发送请求,如果是GET请求,参数为空;POST请求则需传递数据。 4. **监听状态变化**:设置onreadystatechange事件处理函数,当readyState属性改变时触发,判断status状态码,成功通常是...
以下是一份详细的Ajax学习笔记,涵盖了其基本概念、工作原理、优势与限制,以及实际应用。 ### 一、基本概念 Ajax的核心是JavaScript对象XMLHttpRequest(XHR),它允许浏览器在后台与服务器进行通信,而不会打断...
2. 打开连接:通过XMLHttpRequest对象的open方法,指定请求类型(GET、POST等)、URL和是否异步执行。 3. 发送请求:调用XMLHttpRequest对象的send方法,将数据发送到服务器。 4. 监听状态变化:设置...
5. **发送异步请求**:Ajax引擎独立向服务器发送请求,并允许用户继续进行其他操作。 6. **服务器处理请求**:服务器接收到请求后,根据请求内容进行处理,这可能涉及数据库查询或调用后端服务等。 7. **返回数据**...