`

5、GET与POST方式发送请求参数——ajax基础笔记

阅读更多

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
分享到:
评论

相关推荐

    7、使用JSON向服务器发送数据——ajax基础笔记

    在“使用JSON向服务器发送数据——ajax基础笔记”这个主题中,我们首先会了解如何创建一个XMLHttpRequest对象。在JavaScript中,你可以通过`new XMLHttpRequest()`来实例化一个对象,然后利用它的方法如`open()`、`...

    Ajax学习笔记个人总结

    **XMLHttpRequest** 对象是 AJAX 技术的核心,它负责在客户端与服务器之间发送异步请求,无需刷新整个页面即可实现局部数据更新。要使用 XMLHttpRequest,首先要检测浏览器是否支持此对象。对于支持的现代浏览器(如...

    Ajax读书笔记

    2. **POST方式案例**:与GET方式类似,但POST请求的`open`方法参数不同,并且在`send`方法中需要传递请求体数据。POST方式可以发送更多数据,并且数据不会显示在URL中,更加安全。 通过以上分析,我们可以看出Ajax...

    Ajax 学习笔记,超详细的噢!不看后悔

    3. **Ajax请求过程**:一个完整的Ajax请求包括打开连接(`open()`方法)、设置请求参数、发送请求(`send()`方法)以及监听状态变化(`onreadystatechange`事件)。 - `open(method, url, async)`:method为HTTP...

    AJAX应用笔记(1)

    本笔记将探讨AJAX的基本原理和实现方式,通过分析`index.jsp`和`easy.jsp`两个文件,来展示一个简单的AJAX应用。 1. **AJAX 基本概念** - **异步性**:AJAX的核心特性是异步处理,即在后台与服务器通信,不会阻塞...

    AJAX笔记

    **AJAX笔记** 在网页开发中,AJAX(Asynchronous JavaScript and XML)是一种不刷新整个页面的情况下,与服务器交换数据并更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新,...

    ajax学习笔记

    通过以上内容的学习,我们了解到 Ajax 的基本原理及其关键组成部分,包括 `XMLHttpRequest` 对象的创建、请求的发送与接收、回调函数的使用等。同时,我们也讨论了一些进阶主题,如跨域请求的问题及解决方案。掌握...

    ajax学习笔记代码

    2. **设置请求参数**:`open(method, url, async)`,方法包括GET和POST,url是请求的地址,async为true表示异步。 3. **发送请求**:`send(data)`,data为POST方式时传递的数据。 4. **处理响应**:`readyState`...

    16ajax学习笔记1

    在本篇16ajax学习笔记1中,我们将探讨Ajax的基础概念、使用方法以及jQuery库中的Ajax实现。 1、发送请求: Ajax的首要任务是创建XMLHttpRequest对象,这是浏览器提供的API。在JavaScript中,我们可以通过new ...

    黑马程序员Ajax笔记

    它通常接受三个参数:请求类型(GET、POST等)、URL和一个布尔值表示是否异步执行。 ```javascript xhr.open('GET', 'https://example.com/api/data', true); ``` ### 4. 发送请求 使用`send()`方法发送HTTP请求...

    韩顺平 ajax 课堂笔记

    4. **发送请求**:使用`send()`方法发送请求,如果是GET请求,参数可以直接放在URL后,POST请求则将数据放在`send()`方法中。 5. **监听状态变化**:通过`onreadystatechange`事件,当`readyState`属性改变时,检查`...

    AJAX学习笔记1

    3. **发送请求**:调用`send()`方法发送请求,如果是GET请求,参数可以直接放在URL后面;如果是POST,需要通过`send()`方法传入数据。 4. **监听状态变化**:使用`onreadystatechange`事件处理函数,当请求状态改变...

    ajax源码笔记

    1. **创建 XMLHttpRequest 对象**:这是Ajax的基础,所有与服务器的通信都通过这个对象来完成。 2. **打开连接**:调用 XMLHttpRequest 对象的 `open` 方法,设置请求类型(GET、POST等)、URL以及是否异步。 3. **...

    Java相关课程系列笔记之十一Ajax学习

    5. **编码问题**:在处理特殊字符时,如GET请求中的URL编码,POST请求中的数据编码等,需注意字符集的转换和兼容性问题。 6. **Ajax的优点**:提升用户体验,减少网络传输,降低服务器压力,提供更快的响应速度。 ...

    AJAX培训笔记和PPT

    1. **XMLHttpRequest对象**:这是AJAX的基础,允许JavaScript向服务器发送异步请求,接收响应,并处理返回的数据。 2. **JavaScript**:编写处理逻辑,创建XMLHttpRequest对象,定义请求参数,以及处理服务器返回的...

    2017传智ajax教学笔记及ppt

    3. **发送请求**:使用send方法发送请求,如果是GET请求,参数为空;POST请求则需传递数据。 4. **监听状态变化**:设置onreadystatechange事件处理函数,当readyState属性改变时触发,判断status状态码,成功通常是...

    经典ajax学习笔记

    以下是一份详细的Ajax学习笔记,涵盖了其基本概念、工作原理、优势与限制,以及实际应用。 ### 一、基本概念 Ajax的核心是JavaScript对象XMLHttpRequest(XHR),它允许浏览器在后台与服务器进行通信,而不会打断...

    某机构的Ajax培训笔记

    2. 打开连接:通过XMLHttpRequest对象的open方法,指定请求类型(GET、POST等)、URL和是否异步执行。 3. 发送请求:调用XMLHttpRequest对象的send方法,将数据发送到服务器。 4. 监听状态变化:设置...

    Ajax和jQuery学习笔记

    5. **发送异步请求**:Ajax引擎独立向服务器发送请求,并允许用户继续进行其他操作。 6. **服务器处理请求**:服务器接收到请求后,根据请求内容进行处理,这可能涉及数据库查询或调用后端服务等。 7. **返回数据**...

Global site tag (gtag.js) - Google Analytics