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=gets&name="+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=posts&name="+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里

类里对数据处理的方法同上,就不再累赘了

(0)

相关推荐

  • jQuery中Ajax的get、post等方法详解

    load()方法通常用来从Web服务器上获取静态的数据文件,然而这并不能体现ajax的全部价值. 在项目中,如果需要传递一些参数给服务器中的页面,那么可以使用$.get()或者$.post()方法(或者是$.ajax()方法) $.get()方法使用GET方式来进行异步请求.结构为:$.get(url [, data] [, callback] [, type]) $.get()方法参数解释如下: 参数名称 类型 说明 url String 请求的HTML页的URL地址 data(可选) Obj

  • Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    详细解读Jquery各Ajax函数: $.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个参数为服务器的状态,是可选参数. 而其中,服务器返回数据的格式其实是字符串形势,并不是我们想要的json数据格式,在此引用只是为了对比说明 复制代码 代码如下: $.get("dat

  • ajax请求get与post的区别总结

    get如果请求url没有变化,取出缓存,提高效率:请求会缓存到浏览器中,可以通过历史记录查看用户信息,安全性低: post传送变化的数据显示,变动性访问: get通过url地址传送数据,数据量不能超过1024byte: post作为http消息的实体内容传送到服务器中,传送数据量可以很大: get传送数据要经过encodeURIComponent编码,防止乱码. get方式,服务器端用Request.QueryString获取变量的值: post方式,服务器端用Request.Form获取提交的

  • Jquery AJAX POST与GET之间的区别

    1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的) 防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的] 设计WEB页面的时候 也应该遵守这个原则 2:一.谈Ajax的Get和Post的区别

  • jquery中get,post和ajax方法的使用小结

    在JQuery中可以使用get,post和ajax方法给服务器端传递数据 get方法的使用(customForGet.js文件): function verify(){//1.获取文本框的数据 //通过DOM的方式获取//document.getElementByIdx("userName");//通过JQuery的方式获取var jqueryObj = $("#userName");//获取节点的值var userName = jqueryObj.val(); /

  • ajax请求post和get的区别以及get post的选择

    最简单的区别: 1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来 2.使用Get请求发送数据量小,Post请求发送数据量大 3.get请求需注意缓存问题,post请求不需担心这个问题 Get方式: 用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面.另外最重要的一点是,它会被客户端的浏览器缓存起来,那么,别人就可以从浏览器

  • AJAX使用get与post模式的区别分析

    本文实例分析了AJAX使用get与post模式的区别.分享给大家供大家参考.具体分析如下: 如果是get 模式的请求,则将传递参数通过URL 地址发送到服务器端: 如果是post 模式的请求,则将传递参数通过send( ) 方法发送到服务器端(并且必须设置请求文件头): post 模式的代码如下: <script type="text/javascript"> <!-- var queryString = "firstName=xugang&birt

  • jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解

    当我们用javascript写ajax程序写得很"开心"的时候,突然有人告诉你有一种东西叫jquery,它会告诉你不直接和HttpRequest是多么的快乐,同时你再也不需要再烦恼纠结的ajax乱码问题,更幸福的是你的js代码将大大地简化,看完本文,你会发现,ajax,简单的来讲就是一句话的事情. 1.$.get $.get()方法使用GET方式来进行异步请求,它的语法结构为: $.get( url [, data] [, callback] ) 解释一下这个函数的各个参数: url:

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

    最近比较闲,就把以前用过的技术串一下做个手札,方便以后自己偷懒,小鸟你们幸福了. 首先主要是将javascript版本ajax做下注释:ajax异步刷新主要是将所需条件拼成字符串传入后台,处理之后,直接调用回调函数将所得数据返还给页面,并加以显示,因为还在本页面,所以不用刷新页面,懂了了吧,本篇也用encodeURI对字符串做了加密,并在类里做了解码,其中需要一些注意的地方在源码里做了注释.get/post两种提交方式,但get提交容易乱码,一定多加注意 jsp页面: 复制代码 代码如下: <%

  • Java 中 Form表单数据的两种提交方式

    1 GET - 从指定的服务器中获取数据 1.1 GET方法 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器,例如:http://localhost:8080//customer/customer_info?res=json&mt=0&custId=1 1.2 特点 (1) GET请求能够被缓存 (2) GET请求会保存在浏览器的浏览记录中 (3) 以GET请求的URL能够保存为浏览器书签 (4) GET请求有长度限制(不能多于1024字节) (5) GET请

  • jQuery中验证表单提交方式及序列化表单内容的实现

    之前项目中使用的表单提交方式 使用form()方法可以将提交事件脱离submit按钮,绑定到任何事件中 复制代码 代码如下: function addSubmit(){ $('#addForm').form('submit', { url : _basePath + '/@Controller/@RequestMapping', onSubmit : function() { if(boolean){//放置能否提交的判断条件 $.messager.show({ title:'提示',msg:'

  • Flask框架学习笔记之表单基础介绍与表单提交方式

    本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将用户输入的数据提交给服务器,并交给服务端进行处理. 表单标签 用于声明表单的范围,位于表单标签的元素将被提交. 语法:<form></form> 属性:Method规定用于发送表单数据的 HTTP 方法. Enctype规定在向服务器发送表单数据之前如何对其进行编码.(适用于 meth

  • C语言二叉树的三种遍历方式的实现及原理

    二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后同级先左后右):中序顺序是BAC(先左后根最后右):后序顺序是BCA(先左后右最后根). 比如上图二叉树遍历结果 前序遍历:ABCDEFGHK 中序遍历:BDCAEHGKF 后序遍历:DCBHKGFEA 分析中序遍历如下图,中序比较重要(java很多树排序是基于中序,后面讲解分析) 下面介绍一下,二

  • JavaScript 几种循环方式以及模块化的总结

    小小最近学习到了js的几种循环方式,对这几种循环方式进行总结.以及对模块化的相关知识点进行总结, 循环方式 循环方式分为好几种循环方式,分别是for循环,forEach循环,map循环,for..in循环,for-of循环,jquery的循环. 小小将会依次对这几种循环方式进行介绍. 一般数组遍历循环 这里使用常用的数组遍历方式. 一般来说,常用的数组遍历如下 for (var index = 0; index < myArray.length; index++) { console.log(m

  • 全面了解OAuth 2.0四种授权方式金三银四无惧面试

    目录 首先 第一种授权方式:授权码 第二种方式:隐藏式 第三种方式:密码式 第四种方式:凭证式 首先 我们需要清楚 OAuth 是什么? OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者.......资源所有者同意以后,资源服务器可以向客户端颁发令牌.客户端通过令牌,去请求数据. 上面这段话的意思就是:OAuth 的核心就是向第三方应用颁发令牌. 由于互联网有多种场景,OAuth 2.0 规定了四种获得令牌的流程,你可以选择最适合自己的那一种,向第三方应用颁发令牌. 下面

  • jquery的ajax提交form表单的两种方法小结(推荐)

    jquery的ajax提交form表单的两种方法小结(推荐) 方法一: function AddHandlingFeeToRefund() { var AjaxURL= "../OrderManagement/AjaxModifyOrderService.aspx"; alert($('#formAddHandlingFee').serialize()); $.ajax({ type: "POST", dataType: "html", url:

  • extJS中常用的4种Ajax异步提交方式

    /** 复制代码 代码如下: * 第一种Ajax提交方式 * 这种方式需要直接使用ext Ajax方法进行提交 * 使用这种方式,需要将待传递的参数进行封装 * @return */ function saveUser_ajaxSubmit1() { Ext.Ajax.request( { url : 'user_save.action', method : 'post', params : { userName : document.getElementById('userName').val

  • jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解

    本文实例讲述了jQuery autoComplete插件两种使用方式及动态改变参数值的方法.分享给大家供大家参考,具体如下: 一.一次加载.多次使用: 前端JS代码: /*客户名称自动匹配*/ function customerAutoComplete(){ $.ajax({ type:"GET", url:encodeURI("/approvalajax/salesOrderApproval_findCustomerList"), dataType:"j

随机推荐