• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ajax的两种提交方式(get/post)和两种版本
    最近比较闲,就把以前用过的技术串一下做个手札,方便以后自己偷懒,小鸟你们幸福了。

    首先主要是将javascript版本ajax做下注释:ajax异步刷新主要是将所需条件拼成字符串传入后台,处理之后,直接调用回调函数将所得数据返还给页面,并加以显示,因为还在本页面,所以不用刷新页面,懂了了吧,本篇也用encodeURI对字符串做了加密,并在类里做了解码,其中需要一些注意的地方在源码里做了注释。get/post两种提交方式,但get提交容易乱码,一定多加注意

    jsp页面:
    复制代码 代码如下:

    %@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    %
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>

    !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    html>
    head>
    base href="%=basePath%>">
    script type="text/javascript" >
    var xmlHttp;
    function createxmlHttpRequest(){
    if(window.XMLHttpRequest){
    xmlHttp= new XMLHttpRequest();//IE7+,FireFox,Opera,Safari,Chrome
    }else{
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    function test(){//get
    //获取参数
    //var unames=encodeURI(document.getElementById("username").value);//一次编码java用new String(name.getBytes("ISO8859-1"), "UTF-8")解码
    var unames=encodeURI(encodeURI(document.getElementById("username").value));//两次编码才能用java.net.URLDecoder.decode(name,"utf-8");解码
    var pws=encodeURI(document.getElementById("password").value);
    createxmlHttpRequest();
    xmlHttp.onreadystatechange=readyState;
    //function(){
    //alert(xmlHttp.readyState+"=="+xmlHttp.status);//判断请求状态
    //}
    xmlHttp.open("get","AjaxServlet1?msg=getsname="+unames+"pwd="+pws+"timeStamp="+new Date().getTime(),true); //get 方式提交中文会出现乱码,encodeURI()/encodeURIComponent()将中文转成16进制编码,把字符串作为URI进行编码
    xmlHttp.send(null);
    }
    function testp(){//post
    //获取参数
    var unames=document.getElementById("username").value;
    var pws=document.getElementById("password").value;
    createxmlHttpRequest();
    xmlHttp.onreadystatechange=readyState;
    xmlHttp.open("post","AjaxServlet1",true);
    xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    var str="msg=postsname="+unames+"pwd="+pws+"timeStamp="+new Date().getTime();
    xmlHttp.send(str);//send 可用于传参
    }

    function readyState(){
    if(xmlHttp.readyState==4){
    if(xmlHttp.status==200){
    var msg= xmlHttp.responseText;
    //alert(msg);
    document.getElementById("result").innerHTML=msg;
    }
    }
    }
    /script>
    title>js异步刷新/title>
    /head>

    body>
    center>
    div id="response">
    /div>
    用户:input type="text" name="uname" id="username">br>
    密码:input type="text" name="pw" id="password">br>
    input type="button" name="button" value="get确定" onclick="test();"/>
    input type="button" name="button" value="post确定" onclick="testp();">
    div id="result">
    /div>
    /center>
    /body>

    /html>

    这里是servlet/action Java代码:
    复制代码 代码如下:

    package com.cstp.javascript;

    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 AjaxServlet1 extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
    this.doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
    //设置编码,防止乱码
    response.setCharacterEncoding("utf-8");
    request.setCharacterEncoding("utf-8");
    //接收参数
    String msg=request.getParameter("msg");
    if(msg.equals("gets")){
    // String name=new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8"); //一次编码,java里进行解码操作
    String name=java.net.URLDecoder.decode(request.getParameter("name"),"utf-8"); //decode解码页面必须两次编码,java里进行解码操作
    String pwd=request.getParameter("pwd");
    System.out.println(name+","+pwd);
    PrintWriter out = response.getWriter();
    out.println("ajax响应get,结果返回"+name+","+pwd);
    }else if(msg.equals("posts")){
    String name=new String(request.getParameter("name").getBytes("utf-8"), "UTF-8"); //一次编码,java里进行解码操作
    String pwd=request.getParameter("pwd");
    System.out.println(name+","+pwd);
    PrintWriter out = response.getWriter();
    out.println("ajax响应post,结果返回"+name+","+pwd);
    }

    }
    }

    上面是javascript版ajax,下面将喜欢jquery版的也分享给JQ友们:

    页面上:
    复制代码 代码如下:

    script type="text/javascript">
    //方式①
    function circum(lon,lat){
    $.ajax({
    url: "JQAjaxServlet?method=jsons",
    contentType: "application/x-www-form-urlencoded; charset=utf-8",
    type : 'post',
    dataType:"json",
    async: false,
    data : { //传参给后台
    'lon' : lon,
    'lat' : lat
    },
    success: function (data) { // 接后台返回result
    在这里data为后台返回数据,你可以尽情处理了
    }
    });
    }

    /script>

    后台:servlet/action里

    类里对数据处理的方法同上,就不再累赘了
    您可能感兴趣的文章:
    • jQuery中Ajax的get、post等方法详解
    • jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
    • ajax请求post和get的区别以及get post的选择
    • jquery中get,post和ajax方法的使用小结
    • Jquery AJAX POST与GET之间的区别
    • Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
    • ajax请求get与post的区别总结
    • AJAX使用get与post模式的区别分析
    上一篇:AJAX实现鼠标经过弹出详细介绍示例
    下一篇:提交表单最简单的AJAX程序分享
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ajax的两种提交方式(get/post)和两种版本 ajax,的,两种,提交,方式,