从页面到ajax函数的运行的大致思路:页面点击事件,触发xmlHttp.open("post",url,true)函数的执行。通过web.xml的配置的servlet-mapping,url所附带的参数会被处理的servlet类接收,此类中可进行数据库的查询,并将查询结果以xml文件的格式保存下来,页面会以解析xml文件将值传到前台,完成了局部刷新的功能。

1.MysqL创建的数据库表的字段及相对应的javabean.(可使用hibernate框架构建user数据库)


user.java

public class User implements java.io.Serializable {


// Fields


private Integer id;
private String name;
private String password;
private String power;
private Timestamp dtime;


// Constructors


/** default constructor */
public User() {
}


/** minimal constructor */
public User(Timestamp dtime) {
this.dtime = dtime;
}


/** full constructor */
public User(String name,String password,String power,Timestamp dtime) {
this.name = name;
this.password = password;
this.power = power;
this.dtime = dtime;
}


// Property accessors


public Integer getId() {
return this.id;
}


public void setId(Integer id) {
this.id = id;
}


public String getName() {
return this.name;
}


public void setName(String name) {
this.name = name;
}


public String getpassword() {
return this.password;
}


public void setPassword(String password) {
this.password = password;
}


public String getPower() {
return this.power;
}


public void setPower(String power) {
this.power = power;
}


public Timestamp getDtime() {
return this.dtime;
}


public void setDtime(Timestamp dtime) {
this.dtime = dtime;
}


}


2.执行页面点击的javascript函数

<script type="text/javascript">

var xmlHttp;
var musicTotal;


function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}


function delUser() {
createXMLHttpRequest();
var url = "delU";
xmlHttp.open("post",true);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}

function delArc() {
createXMLHttpRequest();
uId=getCheckBoxItem();
alert(uId);
var url = "delU?uId="+uId;
xmlHttp.open("post",true);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}


function validate() {
createXMLHttpRequest();
// mId=getCheckBoxItem();
var url = "delU";
xmlHttp.open("post",true);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}


var userTotal,musicTotal;
function callback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var xmlDoc=xmlHttp.responseXML;
var str;
var show="";
var yan=xmlDoc.getElementsByTagName("content");
userTotal=yan.length;
show+="<form name=formUMM id=formUMM><table width=98% border=0 cellpadding=2 cellspacing=1 bgcolor=#D1DDAA align=center ><tr bgcolor=#E7E7E7><td height=24 colspan=10 background=skin/images/tbg.gif>&nbsp;用户信息&nbsp;</td></tr><tr align=center bgcolor=#FAFAF1 height=22><td width=9%>ID</td><td width=6%>选择</td><td width=30%>用户名</td><td width=15%>注册时间</td><td width=10%>密码</td><td width=10%>权限</td><td width=30%>操作</td></tr>";
for(var i=0;i<yan.length;i++){
var y=yan[i];
var id=y.childNodes[0].firstChild.data;
var name=y.childNodes[1].firstChild.data;
var password=y.childNodes[2].firstChild.data;
var power=y.childNodes[3].firstChild.data;
var dTime=y.childNodes[4].firstChild.data;
show+="<tr align=center bgcolor=#FFFFFF onMouseMove=javascript:this.bgColor='#FCFDEE'; onMouSEOut=javascript:this.bgColor='#FFFFFF'; height=22 ><td>"+id+"</td><td><input name=userId type=checkBox id=userId value='"+id+"' class=np></td><td align=center>"+name+"</td><td>"+dTime+"</td><td>"+password+"</td><td>"+power+"</td><td><a href=101>编辑</a> | <a href=101>预览</a></td></tr>";
}
show+="<tr bgcolor=#FAFAF1><td height=28 colspan=10>&nbsp;<input type=button value='全选' onclick='selAll()' id="+id+"><input type=button value='取消' onClick='noSelAll()'><input type=button value='删除' onClick='delArc()'>"
+"</td></tr><tr align=right bgcolor=#EEF4EA><td height=36 colspan=10 align=center><!--翻页代码 --></td></tr></table></form><table width=98% border=0 cellpadding=2 cellspacing=1 bgcolor=#D1DDAA align=center style=margin-top:8px><tr bgcolor=#E7E7E7 height=52 colspan=10 background=skin/images/tbg.gif><td style=font-size:18px align=center>用户总人数:"+userTotal+"</td></tr></table>";
setMessage(show);
}
}
}

function setMessage(message) {
var messageArea = document.getElementById("dateMessage");
messageArea.innerHTML =message;
}
</script>


<body>
<h1>Ajax Validation Example</h1>
Birth date: <input type="button" size="10" id="birthDate" value="提交" onclick="validate();"/>
<div id="dateMessage"></div>
</body>


3.配置web.xml,创建servlet类

web.xml

<servlet>
<servlet-name>delUser</servlet-name>
<servlet-class>servlet.delUser</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>delUser</servlet-name>
<url-pattern>/delU</url-pattern>
</servlet-mapping>


delUser.java

public class delUser extends HttpServlet {


/**
*
*/
private static final long serialVersionUID = 1L;
public void init( ServletConfig config) throws servletexception {
super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws servletexception,IOException {

response.setContentType("text/xml"); // 像这样设置返回的类型。

PrintWriter out = response.getWriter();
userDao ud=new userDao();
String uId=request.getParameter("uId");
if(uId!=null){
String s[]=uId.split(",");
for(int i=0;i<s.length;i++){
ud.delete(Integer.parseInt(s[i]));
}
}
// System.out.println(request.getParameter("uId"));
String sql="select * from user";

out.println("<?xml version='1.0' encoding='utf-8'?>");
out.println("<contents>");
for(int i=0;i<ud.allUser(sql).size();i++){
User u=(User)ud.allUser(sql).get(i);
out.println("<content>");
out.println("<id>"+u.getId()+"</id>");
out.println("<name>"+u.getName()+"</name>");
out.println("<password>"+u.getpassword()+"</password>");
out.println("<power>"+u.getPower()+"</power>");
out.println("<dTime>"+u.getDtime()+"</dTime>");
out.println("</content>");
}
out.println("</contents>");
}


}


4.运行结果截图


ajax实现网页的局部刷新的更多相关文章

  1. Ajax获取XMLHttp对象的方法

    这篇文章主要介绍了Ajax获取XMLHttp对象的方法,涉及JavaScript基于ajax的浏览器判定、加载等技巧,非常简单实用,需要的朋友可以参考下

  2. Ajax创建XMLHttp对象的完美兼容性代码

    Ajax创建XMLHttp对象的完美兼容性代码,需要的朋友可以参考下。

  3. 导出HTML5 Canvas图片并上传服务器功能

    这篇文章主要介绍了导出HTML5 Canvas图片并上传服务器功能,文中通过实例代码给大家介绍了HTML5 Canvas转化成图片后上传服务器,代码简单易懂非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  4. XMLHTTP多浏览器兼容性写法

  5. 对xmlHttp对象的理解

    xmlHttp是一套在JavaScript脚本语言中通过Http协议传送或者接收XML及其他数据的API。

  6. Ajax核心XMLHTTP组件资料第1/2页

    javascript下常用的xmlhttp组件和相关技术资料小结,方便了解ajax原理

  7. 对xmlHttp对象方法和属性的理解

    客户端可以通过xmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用文档对象模型(DOM)处理回应。

  8. 在php mysql中使用Google Chart API显示条形图

    我一直在搜索很多这个.我得到了解决方案.这里是.这是使用AJAX在PHP中完成的.我有2页是googleapi.PHP和其他getData.PHP,由googleapi.PHP发送的AJAX请求使用.googleapi.PHP访问getdata.PHP就是这样,你需要创建一个数据库.它的作用就像一个魅力.我知道你的帖子是一个“答案”,但我认为我会进来的.如果你想要动态地输入数据到Google图表中,你可以使用PHP回调到javascript中.PHP可用于从您的服务器或MysqL表中获取信息.这是一个例子

  9. php – Laravel AJAX POST请求为空

    当我通过AJAX将POST数据传递给我的控制器时,它是空的.在AJAX中,数据仍然存在,但在我发送控制器后,它说它是空的.AJAX:routes.PHP文件:UserController.PHP:我console.logged的代码:自从上次评论一年后我意识到我在这里给出了答案时,我偶然发现了使用Laravel5.2并使用XMLHttpRequest对象的一些错误:最后我结束了分析和比较发布请求标题,这导致我简单地设置两个:这解决了我的空responseText.希望这可以帮助其他人或可以用于将来参考.

  10. php – 带有参数的XMLHttp POST

    我正在尝试将数据发布到PHP页面并检查响应.这是一个例子.这段代码有什么问题?的index.htmlajax.PHP我有一个愚蠢的错字或我没有正确使用send()方法.我想到了.我需要设置请求标头.source1source2

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部