Ajax的实现(基于jsp画面和struts)
来源:互联网 发布:视频转换手绘软件 编辑:程序博客网 时间:2024/05/21 10:25
ajax是一种创建交互式网页应用的网页开发技术。通俗的讲就是实现html画面的局部刷新。
例如:传统的web开发,当服务器端执行服务端代码(执行客户请求,数据库操作,业务逻辑操作)之后将生成的信息发送到客户端(浏览器)。客户端通过解析相应的html、css、javascript、xml等信息并将其展示到客户端上,形成一个画面,并开始执行客户端脚本(这里我们只讨论javascript脚本)。此时如果需要改变页面中的一个元素的内容,必须重新向web服务器发送请求(get、post)由服务器执行服务端代码生成相应的信息并发送到客户端浏览器中,此时浏览器的当前画面刷新。如果我们不想刷新整个页面,又想与服务器交互该如何处理呢?ajax技术可以很好的处理这一类问题,实现与服务器交互,并通过javascript实现局部刷新。
1.首先我们需要创建HttpRequest对象,javascript代码如下:
{
if (window.XMLHttpRequest)
{
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject)
{
try
{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
if (!http_request)
{
return false;
}
}
2.执行ajax请求:
function beginAjax()
{
//初始化HttpRequest
CreateHttpRequest();
//指定请求url地址,如果是用struts来完成将地址修改为struts请求即可
var url = "Message2.jsp";
//设定回调函数
http_request.onreadystatechange = showResult;
//提交ajax请求
http_request.open("GET", url, true);
http_request.send(null);
}
3.通过回调函数来取得服务器响应后的信息:
function showResult()
{
//服务器请求状态为“完成”
if (http_request.readyState == 4)
{
//服务器响应状态为“OK”
if(http_request.status == 200)
{
//取得服务器执行相应后所生成内容信息
var responseText = http_request.responseText;
//进行自定义处理,通过javascript实现局部刷新
}
}
}
利用ajax技术可以实现很多用传统请求方式的复杂处理,下面介绍一个常用的例子:用户注册时通过ajax校验用户注册的用户名是否已经被其他人使用:
1.首先在html中为username控件元素添加onBlur事件,并为此驱动事件绑定checkUserName方法。于是,当用户在此输入框中输入自己想要注册的用户名之后,焦点离开userName控件时,会触发checkUserName方法。html代码如下:
<input type="text" id="userName" name="userName" onBlur="checkUserName(this.value);">
2.checkUserName方法的实现:
function checkUserName(userName)
{
//校验用户名格式是否合法,代码略
if (checkStringFormat(userName, "userName")
{
//初始化 HttpRequest
CreateHttpRequest();
//指定请求 url地址
var url = "checkUserName.do?userName=" + userName;
//设定回调函数
http_request.onreadystatechange = showResult;
//提交ajax请求
http_request.open ("GET" , url, true );
http_request.send(null );
}
}
3.struts中校验用户名是否已经被注册过:
public String checkUserName()
{
//取得response对象代码略
//定义一个PrintWriter对象用于输出
PrintWriter out;
try
{
//取得response Writer
out = response.getWriter();
//通过与数据库中现有的用户名校验确定此用户名是否被注册过,代码略
//如果未被注册
if (userService.checkUserName(this.userName)
{
//向画面输出0
out.write("0");
}
//如果已被注册
else
{
//向画面输出1
out.write("1");
}
}
//异常处理
catch (IOException e)
{
e.printStackTrace();
}
finally
{
out.close();
}
return null;
}
4.画面中使用回调函数处理局部刷新:
function showResult()
{
//服务器请求状态为“完成”
if (http_request.readyState == 4)
{
// 服务器响应状态为“OK”
if (http_request.status == 200)
{
//取得服务器执行相应后所生成内容信息
var responseText = http_request.responseText;
//进行自定义处理,通过javascript实现局部刷新
//如果服务器响应后返回0,说明此用户名尚未被注册
if (responseText == "0")
{
//提示此用户名可以注册,具体代码略
}
else if (responseText == "1")
{
//提示此用户名已经被注册,请重新输入用户名,具体代码略
}
}
}
}
以上为javascript和struts2实现基于ajax的校验用户名的功能实现。实际上ajax能够实现的功能,和其所应用到的领域十分广泛,了解了ajax的核心原理,无论使用现有的各种ajax插件来进行开发都很容易。
- Ajax的实现(基于jsp画面和struts)
- 基于JSP的AJAX的实现(用户注册验证)
- 基于Struts的AJAX
- 基于jsp的ajax
- 基于jsp的ajax
- 基于AJAX技术实现Struts校验框架
- 基于SSH2和Ajax的分页实现
- 使用Ajax实现对验证码验证提示(struts+jsp+Ajax)
- Struts - 基于MVC设计模式的JSP (简单介绍)
- ajax实现动态树,基于java+struts+ajax
- 入侵基于java Struts的JSP网站
- 基于struts 的实现文件的下载和删除功能
- 基于Struts技术的Web层应用设计和实现
- 基于Struts的权限实现
- 基于Struts的权限实现
- 基于Struts的权限实现
- 基于Struts的权限实现
- 基于Struts的权限实现
- Web标准
- 马斯洛人类需求五层次理论(Maslow's Hierarchy of Needs)
- CAknSearchField关于selectindex问题
- N层架构的理解
- nicholl-lee-nicholl的标准实现
- Ajax的实现(基于jsp画面和struts)
- TCP/IP通信程序设计的丰富多样性(长短连接、同步异步等)
- Create Oracle Physical Standby Database
- J2ME体系结构及配置概要[转]
- 使用LOGFONT修改windows sdk下字体为系统字体
- CListCtrl 使用方法介绍
- 开发中常用linux命令--文件相关
- 等你回眸!
- 传智播客JAVA培训 2010年6月23日 YONGYOU工作日志