Ajax中post和get的区别
在ajax中有这个方法
xmlreq.open("post","servlet/MyServlet?time="+newDate().getTime(),true);
这里的第一个参数表示的是提交方式。可以是post和get
这两个是有区别的。
Get处理数据效率高,但是传输量小,一般在1K左右。Post相反。
如果是get那么xmlreq.open(null)open只能是空。
如果是post那么xmlreq在open的时候,得先加上xmlreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded") ;
那么在open()里面是可以传数据的。
现在我写一个关于用post,与servlet的相互数据传递。
第一个是:index.jsp
<%@
page language="java"
import="java.util.*"pageEncoding="UTF-8"%>
<%
Stringpath = request.getContextPath();
StringbasePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTDHTML 4.01 Transitional//EN">
<html>
<head>
<base
href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<script
type="text/javascript"src="js/fish.js"></script>
</head>
<body>
<input
id="mybutton"type="button"
value="加载数据"
/>
</body>
</html>
第二个:fish.Js
window.onload= function() {
function createXMLHttpRequest() {
var xmlhttp=null;//请求对象
try {//IE浏览器中创建此对象
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
//IE浏览器中创建此对象
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
try {
// Firefox,Chrome, Opera,
Safari浏览器中创建此对象
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
} catch (e) { alert("浏览器不支持xmlHttpRequest!"); }
}
}
return xmlhttp;
}
document.getElementById("mybutton").onclick =
function() {
//得到xmlhttprequest对象
var xmlreq=createXMLHttpRequest();
xmlreq.onreadystatechange=function(){
alert(xmlreq.status);
alert(xmlreq.responseText);//这是获取servlet的文本属性的,就是获取out的值。他如果这里是xml形式那么就用responseXml
}
//打开与服务器的连接
//xmlreq.open("get","servlet/MyServlet?time="+newDate().getTime(),true);
xmlreq.open("post","servlet/MyServlet?time="+new Date().getTime(),true);
//发送数据
xmlreq.setRequestHeader ("Content-Type","application/x-www-form-urlencoded") ;
xmlreq.send("b=45&a=33");
//服务器响应
}
}
第三个:packagecom.fish;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet{
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
PrintWriterout = response.getWriter();
System.out.println("**************");
out.print("aa");
out.print("bb");
//String a= request.getParameter("fish");
//System.out.println(a);
//
}
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
PrintWriterout = response.getWriter();
System.out.println("**************");
System.out.println(request.getParameter("a"));//这个和上面的js里面的send方法想对应。这样就可以输出a的值:33
System.out.println(request.getParameter("b"));
out.print("aa");//这样传给js
out.print("bb");//这样传给js
//String a= request.getParameter("fish");
//System.out.println(a);
//
}
}
4,配置的servlet的web.xml
<?xml
version="1.0"encoding="UTF-8"?>
<web-app
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.fish.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
分享到:
相关推荐
JS组件系列之Bootstrap table表格组件神器【终结篇】 JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】 Bootstrap Table是轻量级的和功能丰富的以表格的形式显示的数据,支持单选,复选框,排序,...
18. extJs 2.0学习笔记(Ext.Panel终结篇) 40 19. extJs 2.0学习笔记(事件注册总结篇) 45 20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二) 50 22. extJs 2.0学习笔记(Ext.Panel篇三) ...
15. **extJs 2.0 学习笔记(Ext.Panel终结篇)** Panel是构建UI的基本组件,涵盖了布局、标题、工具栏等多种功能。掌握Panel的使用和配置,能创建复杂而灵活的界面。 16. **extJs 2.0 学习笔记(事件注册总结篇)*...
Bootstrap Table是轻量级的和功能...JS组件系列之Bootstrap table表格组件神器【终结篇】 JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】 一、效果展示 今天稍微改变下方式,先来看看实现效果,
- **ExtJs2.0学习笔记(Ext.Panel终结篇)**:深入探讨了`Ext.Panel`组件的各种特性和用法。 - **ExtJs2.0学习笔记(事件注册总结篇)**:总结了Ext JS 2.0中事件处理的相关知识,包括事件监听、触发等。 - **ExtJs2.0...
这篇内容将深入解析这两个技术以及它们如何协同工作。 **ExtJS 3.x** ExtJS 是一个流行的JavaScript库,主要用于构建富互联网应用程序(RIA)。在3.x版本中,它提供了丰富的组件库,如表格、窗口、菜单、表单等,...
本篇文章将详细探讨如何使用JQuery实现跨域调用Windows Communication Foundation (WCF)服务。 **一、理解跨域** 跨域是指浏览器的同源策略限制了JavaScript从一个域名下的网页向另一个域名下的资源发送Ajax请求。...
本篇将深入探讨如何利用jQuery与WCF进行数据交换和交互。 一、jQuery与WCF简介 1. jQuery:以其简洁的API和强大的功能,使得JavaScript编程变得更加简单。jQuery提供了Ajax功能,允许开发者在不刷新整个页面的情况...
在本篇详述中,我们将深入探讨WCF的运行实例,以及如何利用jQuery与WCF服务进行交互。 ### WCF服务生命周期 WCF服务实例化模式分为两种主要类型:单例(Singleton)和服务实例化(Per Call 或 Per Session)。每种...
本篇将针对"面试问题更新鲜"这一主题,深入探讨C#、WCF、Ajax以及ASP.NET等领域的重要知识点。 首先,C#作为微软开发的面向对象的编程语言,广泛应用于Windows平台和.NET框架。面试中可能涉及的关键概念包括:类与...
以下是一篇关于如何在.NET 3.5 WCF中实现JSONP的详细解释。 首先,理解JSONP的工作原理是至关重要的。当一个网页上的JavaScript需要从不同源获取数据时,由于浏览器的同源策略限制,通常无法直接发起请求。JSONP...
本篇将深入探讨jQuery的三个重要版本——1.8.2、3.1.1和1.12.4,了解它们的核心特性以及版本间的差异。 首先,jQuery 1.8.2是jQuery 1.x系列的一个稳定版本,它在1.8.0的基础上修复了一些已知问题,提高了整体性能...