今日看了下ajax实现的登录框,javaeye之前实现的一个登录框估计也是采用ajax实现的.它可以使在页面不刷新的情况下验证用户名或者是验证码是否正确等应用. 首先我们需要的工具如下:
1.intellij idea 8.1 下载地址http://download-ln.jetbrains.com/idea/idea-8.1.exe
2.jquery 下载地址 http://jqueryjs.googlecode.com/files/jquery-1.3.2.js
它是一些函数,都是通过它去新请求服务器.所以对于页面来说我们只是调用了按钮的onclick.
3.firefox 下载地址
thunder://QUFodHRwOi8vd3d3LjExOS54ZG93bnMuY29tL3VwbG9hZEZpbGUvMjAwOS0yL01vemlsbGEgRmlyZWZveC5yYXJaWg==
这是一款绿色版的浏览器,它可以使js调用变得很清晰,简单化,同时我们还需要下载firebug.
下载地址如下:http://releases.mozilla.org/pub/mozilla.org/addons/1843/firebug-1.3.2-fx.xpi.
(安装方法很简单,只要把它拖曳到firefox上面就会提示安装,安装完之后,重启一下firefox浏览器就可以了,f12快捷键可以调出它. 好,介绍开发工具之后,我们开始进行ajax带给我们的新的惊奇吧. 为了与之前的页面跳转进行比较,我们先做一个传统的页面跳转. 首先安装intelliJ,这个就不用说了,安装完之后新建工程.我们新建立一个PreServlet的类,如下:
public class ClassicServer extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
System.out.println("call doGet");
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
String old = request.getParameter("name");
if(old == null || old.length() == 0){
out.println("用户名不能为空r");
} else{
String name = new String(old.getBytes("ISO8859-1"));
if(name.equals("wangxingkui")){
out.println("用户名[" + name + "]已经存在,请使用其他用户名");
} else{
out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册");
}
}
out.println("<br/><a href=\"index.html\">返回校验页面</a>");
} catch(Exception e){
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("call doPost");
doGet(request,response);
}
}
建立完Servlet之后,我们需要在web.xml配置好及 PreServlet PreServlet PreServlet /PreServlet 然后我们建立一个页面跳转的展示.新建立一个preindex.html 校验用户服务是否存在的例子
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
校验用户服务是否存在的例子<br/>
<form action="ClassicServer" method="GET">
用户名:<input type="text" name="name"/>
<input type="submit" value="校验"/>
</form>
</body>
</html>
这样就可以了,我们运行一下工程就可以看到传统的验证效果,它会跳转到另一个页面,并说明登录是否成功.这个时候我们必须点击返回才能返回到登录页面. 与传统登录页面不同的,ajax根本就不用刷新或者跳到另一个页面,它会调用jquery里的函数去请求服务器,从而把当前页面直接返回给用户.待服务器响应回来时,它也是只刷新一部分.通常这个调用的是jquery的html(data)函数下面就开始讲一下如下建这个的例子. 我们同样新建一个Servlet叫AJAXServlet. 如下:
public class AJAXServer extends HttpServlet {
@Override
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
try{
// request.setCharacterEncoding("UTF-8");
// response.setContentType("text/html;charset=gb18030");
System.out.println("int AJAXServer doGet");
httpServletResponse.setContentType("text/html;charset=utf-8");
PrintWriter out = httpServletResponse.getWriter();
Integer inte = (Integer) httpServletRequest.getSession().getAttribute("total");
int temp = 0;
if (inte == null) {
temp = 1;
} else {
temp = inte.intValue() + 1;
}
httpServletRequest.getSession().setAttribute("total",temp);
//1.取参数
String old = httpServletRequest.getParameter("name");
//String name = new String(old.getBytes("iso8859-1"),"UTF-8");
//2.检查参数是否有问题
if(old == null || old.length() == 0){
out.println("用户名不能为空");
} else{
String name = URLDecoder.decode(old,"UTF-8");
// String name = URLDecoder.decode(old,"UTF-8");
// byte[] by = old.getBytes("ISO8859-1");
// String name = new String(by,"utf-8");
// String name = URLDecoder.decode(old,"utf-8");
//3.校验操作
// String name = old;
if(name.equals("wangxingkui")){
//4。和传统应用不同之处。这一步需要将用户感兴趣的数据返回给页面段,而不是将一个新的页面发送给用户
//写法没有变化,本质发生了改变
out.println("用户名[" + name + "]已经存在,请使用其他用户名, " + temp);
} else{
out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " + temp);
}
}
} catch(Exception e){
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
doGet(httpServletRequest, httpServletResponse);
}
}
建立完之后,我们同样需要配置下web.xml. 同上. 接下来我们需要建立一个ajaxindex.html <script src="/admin/blogs/337319/jslib/jquery-1.3.2.js" type="text/javascript"></script><script src="/admin/blogs/337319/jslib/verify.js" type="text/javascript"></script> itcast.cn用户名校验的ajax实例,请输入用户名
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>itcast.cn用户名校验ajax实战p</title>
<script type="text/javascript" src="jslib/jquery-1.3.2.js"></script>
<script type="text/javascript" src="jslib/verify.js"></script>
</head>
<body>
itcast.cn用户名校验的ajax实例,请输入用户名<br/>
<!--ajax方式下不需要使用表单来进行数据提交,因为ajax不用表单标签-->
<!--ajax方式不需要name属性,需要id-->
<input type="text" id="userName">
<input type="button" value="校验" onclick="verify()"/>
<!--这个div用于存放服务器段返回的信息,开始为空-->
<!--id属性定义是为了利用dom方式找到某一个节点,-->
<div id="result"></div>
<!--div与span差异,div的内容独占行,span中的内容和前后其他相处良好-->
</body>
</html>
我们这里采用onclick让它调用verify(),这个方法会在verify.js里调用 ,所以我们还需要在web下导入jquery-1.3.2.js及建立verify.js文件. verify.js文件如下: function verify(){ var obj = $("#userName"); var userName= obj.val(); //将文本框中的数据发送给服务段的servlet $get("AJAXServlet?name="+userName,null,callback,"GET"); } //回调函数data是服务端返回的数据...在服务端是out.print("..."); function callback(data){ //把获得的数据显示在页面中 var obj = $("#result"); obj.html(data); } ok,js里的方法也已经建立好了,我们就可以调试下界面了.
分享到:
相关推荐
Ajax的核心是JavaScript对象XMLHttpRequest,它允许开发者在不重新加载整个页面的情况下与服务器进行通信。当用户在登录表单中输入用户名和密码并点击“登录”按钮时,Ajax代码会被触发。通过创建一个XMLHttpRequest...
"ajaxregASP+AJAX无刷新用户注册、判断用户名数据库版"项目展示了如何结合ASP和AJAX技术,实现在不刷新页面的情况下,完成用户注册并实时验证用户名的可用性。这种技术方案提高了网页的交互性和响应速度,为用户提供...
【ASP+AJAX无刷新用户注册】是一种网页开发技术,旨在提供更加流畅和高效用户体验,让用户在不重新加载整个页面的情况下进行数据交互。这个技术结合了两种主要的技术:Active Server Pages(ASP)和Asynchronous ...
Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它的核心是JavaScript对象XMLHttpRequest,通过这个对象,我们可以向服务器发送异步请求,获取数据并动态...
Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,极大地提升了用户体验。在网页应用中,如用户...
AJAX(Asynchronous JavaScript and XML)技术可以在此场景下发挥重要作用,它允许我们在不刷新整个页面的情况下与服务器进行异步数据交换。下面将详细阐述如何使用AJAX对注册用户名进行判断。 首先,理解AJAX的...
在网页开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛用于实现无刷新页面更新,从而提升用户体验。"AJAX无刷新验证用户名是否存在"是一个典型的应用场景,它允许用户在输入用户名时实时检查该用户名...
总结来说,利用Ajax实现“判断用户名是否可用”功能,需要结合前端JavaScript和后端服务器的配合,通过异步请求和响应处理,实现无刷新的用户体验,同时关注性能和安全性。在实际开发中,还可以结合现代前端框架如...
Ajax是一种在无需刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。它通过创建 XMLHttpRequest 对象实现实时通信。在本场景中,当用户输入用户名并提交时,会触发一个Ajax请求,这个请求不会导致整个页面...
Ajax是创建动态网页的关键技术,允许页面在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。它通过XMLHttpRequest对象与服务器进行异步通信,发送请求并接收响应。在用户输入用户名后,Ajax可以即时...
Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况下与服务器进行异步通信,使得用户注册过程更加流畅。本文将深入探讨如何使用Ajax实现用户注册时判断用户名是否已存在的功能。 首先,...
在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。Ajax的核心是通过JavaScript与服务器进行异步数据交换,使得用户在等待响应时可以继续浏览页面...
Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。在这个"Ajax注册验证用户名实例"中,我们将深入...
在Web开发领域,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许网页部分更新而无需整体刷新页面。在本场景中,标题"Ajax请求验证用户名问题"指的是使用Ajax来实现用户输入用户名时实时检查...
1. **Ajax(异步JavaScript和XML)**:Ajax是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。通过创建后台通信链接,Ajax可以在用户与服务器之间进行数据交换,从而实现页面的局部更新。在这个场景中,...
原生Ajax技术可以实现异步数据交互,无需刷新页面就能验证用户名是否已存在,提供良好的用户体验。以下是对"原生ajax模拟判断用户名是否已注册"这一主题的详细解释。 首先,我们需要理解什么是Ajax。AJAX ...
Ajax的核心在于其异步特性,它允许网页在不重新加载整个页面的情况下与服务器交换数据并局部更新页面。这种技术极大地提高了用户界面的响应速度和用户体验。在登录场景中,用户输入用户名和密码后,通过Ajax发送请求...
通过创建XMLHttpRequest对象、打开连接、发送请求和接收响应四个步骤,我们可以实现不刷新页面的数据交互。 对于"ajax用户名检测"这一功能,我们通常会有一个前端表单,包含一个用户名输入框和一个提交按钮。当用户...
在本文中,我们将深入探讨如何使用jQuery的AJAX功能实现一个简单的登录系统,该系统能够实时检查用户名是否存在,而无需用户点击提交按钮或刷新整个页面。这种方法极大地提升了用户体验,因为用户可以即时得到反馈,...
在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于实现页面的无刷新更新,提高用户体验。本文将深入探讨如何使用Ajax实现异步提交,以及如何在前端验证用户名是否存在和长度是否过短。 首先,...