AJAX实例入门Word文件下载.docx

上传人:b****5 文档编号:20534154 上传时间:2023-01-23 格式:DOCX 页数:22 大小:25.22KB
下载 相关 举报
AJAX实例入门Word文件下载.docx_第1页
第1页 / 共22页
AJAX实例入门Word文件下载.docx_第2页
第2页 / 共22页
AJAX实例入门Word文件下载.docx_第3页
第3页 / 共22页
AJAX实例入门Word文件下载.docx_第4页
第4页 / 共22页
AJAX实例入门Word文件下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

AJAX实例入门Word文件下载.docx

《AJAX实例入门Word文件下载.docx》由会员分享,可在线阅读,更多相关《AJAX实例入门Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。

AJAX实例入门Word文件下载.docx

  这是一个很常见的UI,当用户在第一个选择框里选择ZHEJIANG时,第二个选择框要出现ZHEJIANG的城市;

当用户在第一个选择框里选择JIANGSU时,第二个选择框里要出现JIANGSU的城市。

  首先,我们来看配置文件web.xml,在里面配置一个servlet,跟往常一样:

<

web-appversion="

2.4"

xmlns="

xmlns:

xsi="

http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

servlet>

servlet-name>

SelectCityServlet<

/servlet-name>

servlet-class>

com.stephen.servlet.SelectCityServlet<

/servlet-class>

/servlet>

servlet-mapping>

url-pattern>

/servlet/SelectCityServlet<

/url-pattern>

/servlet-mapping>

/web-app>

  然后,来看我们的JSP文件:

!

DOCTYPEHTMLPUBLIC"

-//W3C//DTDHTML4.01Transitional//EN"

>

html>

head>

title>

MyHtml.html<

/title>

metahttp-equiv="

keywords"

content="

keyword1,keyword2,keyword3"

description"

thisismypage"

--<

linkrel="

stylesheet"

type="

text/css"

href="

./styles.css"

-->

/head>

scripttype="

text/javascript"

functiongetResult(stateVal){

  varurl="

servlet/SelectCityServlet?

state="

+stateVal;

  if(window.XMLHttpRequest){

  req=newXMLHttpRequest();

  }elseif(window.ActiveXObject){

  req=newActiveXObject("

Microsoft.XMLHTTP"

);

  }

  if(req){

  req.open("

GET"

url,true);

  req.onreadystatechange=complete;

  req.send(null);

}

functioncomplete(){

  if(req.readyState==4){

  if(req.status==200){

  varcity=req.responseXML.getElementsByTagName("

city"

  file:

//alert(city.length);

  varstr=newArray();

  for(vari=0;

i<

city.length;

i++){

  str[i]=city[i].firstChild.data;

  }

//alert(document.getElementById("

));

  buildSelect(str,document.getElementById("

}

functionbuildSelect(str,sel){

  sel.options.length=0;

str.length;

i++){

  sel.options[sel.options.length]=newOption(str[i],str[i])

/script>

body>

selectname="

state"

onChange="

getResult(this.value)"

  <

optionvalue="

"

Select<

/option>

zj"

ZEHJIANG<

zs"

JIANGSU<

/select>

selectid="

CITY<

/body>

/html>

  第一眼看来,跟我们平常的JSP没有两样。

仔细一看,不同在JS里头。

  我们首先来看第一个方法:

getResult(stateVal),在这个方法里,首先是取得XmlHttpRequest;

然后设置该请求的url:

req.open("

接着设置请求返回值的接收方法:

req.onreadystatechange=complete;

该返回值的接收方法为——complete();

最后是发送请求:

req.send(null);

  然后我们来看我们的返回值接收方法:

complete(),这这个方法里,首先判断是否正确返回,如果正确返回,用DOM对返回的XML文件进行解析。

关于DOM的使用,这里不再讲述,请大家参阅相关文档。

得到city的值以后,再通过buildSelect(str,sel)方法赋值到相应的选择框里头去。

  最后我们来看看Servlet文件:

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

/**

*@authorAdministrator

*

*TODOTochangethetemplateforthisgeneratedtypecommentgoto

*Window-Preferences-Java-CodeStyle-CodeTemplates

*/

publicclassSelectCityServletextendsHttpServlet{

  publicSelectCityServlet(){

  super();

  publicvoiddestroy(){

  super.destroy();

  publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

  throwsServletException,IOException{

  response.setContentType("

text/xml"

  response.setHeader("

Cache-Control"

"

no-cache"

  Stringstate=request.getParameter("

  StringBuffersb=newStringBuffer("

state>

  if("

.equals(state)){

  sb.append("

city>

hangzhou<

/city>

huzhou<

  }elseif("

nanjing<

yangzhou<

suzhou<

/state>

  PrintWriterout=response.getWriter();

  out.write(sb.toString());

  out.close();

  这个类也十分简单,首先是从request里取得state参数,然后根据state参数生成相应的XML文件,最后将XML文件输出到PrintWriter对象里。

  到现在为止,第一个例子的代码已经全部结束。

是不是比较简单?

我们进入到第二个实例吧!

这次是基于JSP的AJAX的一个应用。

  三、基于JSP的AJAX

这个例子是关于输入校验的问题,我们知道,在申请用户的时候,需要去数据库对该用户性进行唯一性确认,然后才能继续往下申请。

  这种校验需要访问后台数据库,但又不希望用户在这里提交后等待,当然是AJAX技术大显身手的时候了。

  首先来看显示UI的JSP:

Check.html<

varhttp_request=false;

functionsend_request(url){//初始化、指定处理函数、发送请求的函数

http_request=false;

file:

//开始初始化XMLHttpRequest对象

if(window.XMLHttpRequest){file:

//Mozilla浏览器

  http_request=newXMLHttpRequest();

  if(http_request.overrideMimeType){//设置MiME类别

  http_request.overrideMimeType('

text/xml'

}

elseif(window.ActiveXObject){//IE浏览器

  try{

  http_request=newActiveXObject("

Msxml2.XMLHTTP"

  }catch(e){

  }catch(e){}

if(!

http_request){//异常,创建对象实例失败

  window.alert("

不能创建XMLHttpRequest对象实例."

  returnfalse;

http_request.onreadystatechange=processRequest;

//确定发送请求的方式和URL以及是否同步执行下段代码

http_request.open("

url,true);

http_request.send(null);

//处理返回信息的函数

  functionprocessRequest(){

  if(http_request.readyState==4){//判断对象状态

  if(http_request.status==200){//信息已经成功返回,开始处理信息

  alert(http_request.responseText);

  }else{file:

//页面不正常

  alert("

您所请求的页面有异常。

functionuserCheck(){

varf=document.form1;

varusername=f.username.value;

if(username=="

){

Theusernamecannotbenull!

  f.username.focus();

else{

  send_request('

check1.jsp?

username='

+username);

<

formname="

form1"

action="

method="

post"

UserName:

inputtype="

text"

name="

username"

value="

&

nbsp;

button"

check"

onClick="

userCheck()"

submit"

/form>

  所有的JS都跟上一个例子一样,不同的只是对返回值的操作,这次是用alert来显示:

alert(http_request.responseText);

  我们来看处理逻辑JSP:

%@pagecontentType="

text/html;

charset=gb2312"

language="

java"

errorPage="

%>

%

Stringusername=request.getParameter("

if("

educhina"

.equals(username))out.print("

用户名已经被注册,请更换一个用户名。

elseout.print("

用户名尚未被使用,您可以继续。

%>

  非常简单,先取得参数,然后作处理,最后将结果打印在out里。

  我们的第三个例子仍然以这个唯一性校验为例子,这次结合Struts开发框架来完成AJAX的开发。

  四、基于Struts的AJAX

  首先,我们仍然是对Struts应用来做配置,仍然是在struts-config,xml文件里做配置,如下:

actiontype="

com.ajax.CheckAction"

  scope="

request"

path="

/ajax/check"

forwardname="

success"

/check.jsp"

/>

/action>

  跟普通的Struts应用的配置一样,只是没有ActionForm的配置。

  下面是Action类:

packagecom.ajax;

importorg.apache.struts.action.Action;

importorg.apache.struts.action.ActionForm;

importorg.apache.struts.action.ActionForward;

importorg.apache.struts.action.ActionMapping;

importorg.apache.struts.action.DynaActionForm;

publicclassCheckActionextendsAction

{

publicfinalActionForwardexecute(ActionMappingmapping,ActionFormform,

  HttpServletRequestrequest,

  HttpServletResponseresponse)

throwsException

{

  System.out.println("

haha..............................."

  Stringusername=request.getParameter("

  System.out.println(username);

  Stringretn;

  if("

.equals(username))retn="

Can'

tusethesamenamewiththeolduse,plsselectadifference..."

;

  elseretn="

congraducation!

youcanusethisname...."

  out.write(retn);

  returnmapping.findForward("

publicstaticvoidmain(String[]args)

  我们可以看到里面的逻辑跟上例中Servlet里的逻辑一样。

最后,我

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1