ajax post方式与服务器建立连接

<%@ page language="java"  pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <script type="text/javascript" src="./test.js"></script>
  </head>
  <body>
     <form action="" enctype="application/x-www-form-urlencoded">
          <input type="button" name="ok" id="ok" value="测试服务器连接">
      </form>
  </body>
</html>
function ajaxFunction(){
   var xmlHttp;
   try{ // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e){
       try{// Internet Explor er
             xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
        catch (e){
          try{
             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch (e){}
          }
    }

    return xmlHttp;
 }

 //当页面加载完毕之后,执行以下代码
 window.onload = function(){
    document.getElementById("ok").onclick = function(){
        /*
         * 1    创建XMLHttpRequest对象
         */ 
         var xhr = ajaxFunction();

        /*
         * 2    服务器向浏览器响应请求
         * 
         * readyState 属性表示Ajax请求的当前状态。它的值用数字代表。
                0 代表未初始化。 还没有调用 open 方法
                1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用
                2 代表已加载完毕。send 已被调用。请求已经开始
                3 代表交互中。服务器正在发送响应
                4 代表完成。响应发送完毕

            常用状态码及其含义:
                404 没找到页面(not found)
                403 禁止访问(forbidden)
                500 内部服务器出错(internal service error)
                200 一切正常(ok)
                304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改 )
         */ 
         xhr.onreadystatechange = function(){
            alert(xhr.readyState);
            //alert(xhr.status);
            if(xhr.readyState==4){
                if(xhr.status==200||xhr.status==304){
                    var data = xhr.responseText;
                    alert(data);
                }
            }
         }

        /*
         * 3    浏览器与服务器建立连接
         * 
         * xhr.open(method, url, asynch);
         *      * 与服务器建立连接使用
         *      * method:请求类型,类似 “GET”或”POST”的字符串。
         *      * url:路径字符串,指向你所请求的服务器上的那个文件。请求路径
         *      * asynch:表示请求是否要异步传输,默认值为true(异步)。
         */ 
         xhr.open("POST","../testServlet?timeStamp="+new Date().getTime()+"&c=18",true);

         //如果是POST请求方式,设置请求首部信息
         xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");


        /*
         * 4    浏览器向服务器发送请求
         * 
         *  send()方法:
         *      * 如果浏览器请求的类型为GET类型时,通过send()方法发送请求数据,服务器接收不到    
         *      * 如果浏览器请求的类型为POST类型时,通过send()方法发送请求数据,服务器可以接收
         */ 
         xhr.send("a=6&b=9");       //xhr.send(null);
    }
 }
package com.cc.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

@SuppressWarnings("serial")
public class TestServlet extends HttpServlet {

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

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

        System.out.println("connection server success!");

        System.out.println("a = "+request.getParameter("a"));
        System.out.println("b = "+request.getParameter("b"));
        System.out.println("c = "+request.getParameter("c"));

        out.println("get connection server success");

    }

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

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

        System.out.println("connection server success!");

        System.out.println("a = "+request.getParameter("a"));
        System.out.println("b = "+request.getParameter("b"));
        System.out.println("c = "+request.getParameter("c"));

        out.println("post connection server success");
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值