跟我学AJAX技术如何应用AJAX实现无刷新查询功能的Web应用示例第二部分文档格式.docx
《跟我学AJAX技术如何应用AJAX实现无刷新查询功能的Web应用示例第二部分文档格式.docx》由会员分享,可在线阅读,更多相关《跟我学AJAX技术如何应用AJAX实现无刷新查询功能的Web应用示例第二部分文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importcom.px1987.webajax.model.*;
importjava.io.*;
publicclassSearchActionextendsAction
{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
{
StringcityName=request.getParameter("
cityName"
);
try
{
cityName=newString(cityName.getBytes("
ISO-8859-1"
),"
gb2312"
}
catch(UnsupportedEncodingExceptione)
//TODO自动生成catch块
e.printStackTrace();
}
CreateXMLInterfacecreateXML=newCreateXMLBean();
//它代表我们的业务功能方法
StringxmtFileResult=createXML.createXMLText(cityName);
response.setContentType("
text/xml;
charset=GBK"
/**
将Cache-Control设为no-cache将确保浏览器不会从缓存相同的URL(包括参数)返回的应答。
*/
response.setHeader("
Cache-Control"
"
no-cache"
PrintWriterout;
out=response.getWriter();
out.write(xmtFileResult);
//out.print(sb.toString());
out.close();
catch(IOExceptione)
returnnull;
}
}
注意:
重要的是把响应的内容类型设置为text/xml,否则XMLHttpRequest不会把响应内容解析成XMLDOM。
4、创建业务类的接口和业务类的实现类
(1)业务类的接口CreateXMLInterface,包名称为com.px1987.webajax.model;
(2)在该接口中定义下面的方法
packagecom.px1987.webajax.model;
publicinterfaceCreateXMLInterface
publicStringcreateXMLText(StringinputCityName);
(3)业务类的实现类CreateXMLBean,包名称为com.px1987.webajax.model
5、编程该业务组件类
publicclassCreateXMLBeanimplementsCreateXMLInterface
publicCreateXMLBean()
/*产生的XML文档为
<
?
xmlversion=\"
1.0\"
encoding=\"
GB2312\"
standalone=\"
yes\"
>
<
message>
data>
XXX<
/data>
/message>
*/
publicStringcreateXMLText(StringinputCityName)
StringBufferoneStringBuffer=newStringBuffer("
<
"
//实际应该利用DAO进行数据库访问来获得
oneStringBuffer.append("
+inputCityName+"
oneStringBuffer.append("
returnoneStringBuffer.toString();
1.1.2测试本示例的目前实现的应用效果
1、配置服务器
2、部署本Web项目
3、启动服务器
4、执行该页面
http:
//127.0.0.1:
8080/StrutsAJAXWebApp/index.jsp
5、将产生出下面的结果
6、注意中文乱码的解决的方法
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
request.setCharacterEncoding("
//对异步请求无效
StringcityName=request.getParameter("
cityName=newString(cityName.getBytes("
//。
。
7、再执行,将不会出现中文乱码
8、理解和体验“无刷新”的效果
尽管也是get提交,但与正常的get提交的不同点在于浏览器的URL地址栏中不出现查询字符串。
同时在服务器的控制台中产生出下面的结果
9、如果用户没有输入,则出现下面的错误提示
10、如果出现运行时的错误,提示为