Action类里:
/*
* 登录
*/
public ActionForward doLogin(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws IOException
{
//获得表单数据
int uid=Integer.parseInt(request.getParameter("petID"));
String pwd=request.getParameter("pwd");
PrintWriter out=response.getWriter();
//根据ID获得其信息
PetInfo info=petInfoBiz.getPetInfoByID(uid);
if(info==null)
{
out.print(0);
return null;
}
else if(!petInfoBiz.login(uid, pwd))
{
out.print(1);
return null;
}
else if(petInfoBiz.login(uid, pwd))
{
out.print(2);
return null;
}
return null;
}
页面的javascript部分(没有使用框架):
//根据IE的类型创建一个XmlHttpRequest对象
function createXmlHttpRequest()
{
if(window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
return new XMLHttpRequest;
}
}
var xmlHttpRequest;
//根据宠物编号发送请求到服务器
function requestServer()
{
var loginState=document.getElementById("loginState");
with(document.petForm)
{
if(petID.value=="")
{
loginState.innerText="请填写宠物编号!";
}
else if(isNaN(petID.value))
{
loginState.innerText="编号不合法";
}
else if(pwd.value=="")
{
loginState.innerText="请填写密码";
}
else
{
var url="doPetInfo.do?methodName=doLogin&petID="+petID.value+"&pwd="+pwd.value;
//创建XMLHttpRequest组件
xmlHttpRequest=createXmlHttpRequest();
//设置回调函数,让其等待服务器的响应
xmlHttpRequest.onreadystatechange=doLogin;
//初始化xmlHttpRequest组件,传入URL
xmlHttpRequest.open("GET",url,true);
//发送请求
xmlHttpRequest.send(null);
}
}
}
//登录,获得服务器返回的信息并做出相应提示
function doLogin()
{
var loginState=document.getElementById("loginState");
if(xmlHttpRequest.readyState==0)
{
loginState.innerText="未初始化...";
}
if(xmlHttpRequest.readyState==1)
{
loginState.innerText="初始化中...";
}
if(xmlHttpRequest.readyState==2)
{
loginState.innerText="正在向服务器发送请求...";
}
if(xmlHttpRequest.readyState==3)
{
loginState.innerText="正在验证登录信息...";
}
if(xmlHttpRequest.readyState==4)
{
loginState.innerText="验证完成...";
}
if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200)
{
var text=xmlHttpRequest.responseText;
if(text=="0")
{
loginState.innerText="此ID不存在";
}
else if(text=="1")
{
loginState.innerText="密码错误";
}
else if(text=="2")
{
loginState.innerText="验证成功...";
location.href="doPetInfo.do?methodName=doInit&petID="+document.petForm.petID.value;
}
}
}
表单部分:
<span id="loginState" style="color:red"></span>
宠物ID:<input type="text" name="petID" size="6" value="">
密码:<input type="password" name="pwd" size="6" value="">
<button onclick="requestServer()">登录</button>
分享到:
相关推荐
ExtJS + Struts2 + Hibernate + JSON 登录程序是一个典型的Web开发示例,结合了前端JavaScript框架、MVC框架、持久层框架以及数据传输格式,实现了用户登录功能的前后端交互。下面将详细阐述这些技术及其在登录程序...
在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面的例子,我们只希望返回一个1和0有助于进行后续判断即可,没必要返回json类型,返回一个text字符串就可以了. regist.jsp(这里只提供[removed]部分): ...
本资源"零基础学Java[1].Web开发:JSP.Servlet.Struts.Spring.Hibernate.Ajax(PPT).rar"提供了一套完整的入门教材,涵盖了从基础到进阶的关键知识点。 首先,我们从基础开始,讲解【HTML相关技术基础知识】。HTML...
SSH + Ajax + 分页 小项目是一个典型的Web应用程序开发实例,它结合了Spring、Struts2和Hibernate这三大主流Java企业级开发框架,并利用Ajax技术实现了页面无刷新的分页功能。下面将详细介绍这个项目中的关键技术和...
文档将详细解析如何在JSP页面中使用Struts标签,如`<s:textfield>`用于创建输入字段,`<s:submit>`用于提交表单,`<s:actionerror>`显示错误消息,以及`<s:if>`和`s:else`进行条件判断等。通过学习这些标签,你可以...
开发者可以通过JSP标签库(Tag Libraries)来简化页面逻辑,例如JSTL(JavaServer Pages Standard Tag Library),它可以提供用于处理常见任务的预定义标签,如迭代、条件判断等。 其次,Struts是Apache软件基金会...
- **Hibernate**:`checkBean`方法内部可能调用了某个DAO层的方法,通过Hibernate查询数据库判断用户名是否已存在。 - **返回结果**:将验证结果封装成JSON格式返回给前端。 3. **前端处理响应**:使用jQuery解析...
5. **拦截器与jQuery事件**:Struts2的拦截器可以处理通用的业务逻辑,如登录检查。结合jQuery的事件监听,可以在前端进行初步的业务判断,减少不必要的服务器请求。 6. **模板与样式**:Struts2的FreeMarker或...
3. **Ajax支持**:Struts2提供了Ajax插件,支持异步更新,提升用户体验。 4. **国际化与本地化**:Struts2支持多语言环境,通过资源包实现内容的国际化。 **四、Struts2的安全性** 1. **XSS防护**:Struts2内置了...
6. **用户名验证**:用户在注册或登录时输入用户名,通过Ajax发送请求到后端,Struts控制器接收到请求,Spring处理业务逻辑,Hibernate查询数据库判断用户名是否已存在。如果已存在,返回错误信息,前端使用jQuery...
JSTL是一套标签库,提供了一些实用的标签,比如循环、条件判断、数据处理等,使得JSP页面更易读、易写。 - **数据持久化**:可能涉及数据库操作,如使用JDBC(Java Database Connectivity)连接数据库,进行面包信息...
Ajax(Asynchronous JavaScript and XML)技术与Action(如Struts2中的Action)结合,可以实现异步验证,提供更好的用户体验,避免页面刷新,提高交互性。这篇博文主要探讨了如何利用Ajax技术和Struts2 Action实现...
2. **配置Struts2**:在struts.xml配置文件中,定义一个Action映射,指定AJAX请求的URL和处理该请求的Action类。 3. **编写Action类**:在Java中创建一个Action类,包含验证用户名的方法,该方法与Struts2配置对应...
在SSH2(Apache Struts2)、Ajax、jQuery和JSON技术组合中,验证用户名是否存在的功能是一个典型的前后端交互示例。以下是这些技术如何协同工作的详细解释: **SSH2 (Struts2)**:SSH2是Struts2的简称,它是Apache的...
"ajax+jQuery+struts2验证用户名是否重复"的实现过程涉及到了几个关键的技术点,主要包括Ajax、jQuery和Struts2框架。下面将详细阐述这些技术及其在实际操作中的应用。 **1. Ajax(异步JavaScript和XML)** Ajax是...
在登录页面中,Jquery可以用于处理表单提交事件,通过Ajax异步发送登录请求,避免页面刷新,提升用户体验。例如,使用Jquery的$.ajax方法,可以将用户名和密码发送到服务器,同时显示加载指示器,等待服务器响应。 ...
本章主要聚焦于Struts2的标签库及其AJAX技术的应用,这两个关键点对于提升用户体验和增强应用程序交互性至关重要。 Struts2标签库是Struts2框架的核心组成部分之一,它提供了一系列预定义的JSP标签,用于简化视图层...
5. **JQuery验证**:在Ajax的success回调函数中,接收到服务器返回的JSON数据后,根据返回的“success”或“error”判断验证结果。如果验证失败,显示错误信息;如果成功,可以继续进行提交或者跳转到其他页面。 6....