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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
宠物ID:<input type="text" name="petID" size="6" value="">
密码:<input type="password" name="pwd" size="6" value="">&nbsp;&nbsp;&nbsp;&nbsp;
<button onclick="requestServer()">登录</button>&nbsp;&nbsp;

Ajax+Struts做登录判断的更多相关文章

  1. ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动,还有从数据库中获得

    今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术  即,AJAX是一个[局部刷新 ...

  2. express做登录判断

    1)JWT试试 https://github.com/penguinab/express-jwt 2)express session https://github.com/whevether/reac ...

  3. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  4. ajax基础语法、ajax做登录、ajax做用户名验证是否可用、ajax做关键字查询动态显示、ajax做用表格显示数据并增加操作列

    AJAX: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.   ...

  5. ajax 做登录 实现页面免刷新

    结合之前学的知识,可以用ajax来传递数据,实现页面不用刷新,仅数据刷新,来看一下ajax是怎么来实现页面免刷新的 方的是客户端,圆的是服务器 如果没有ajax的话,客户端直接把数据传给服务器,服务器 ...

  6. ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  7. 使用PHP中的ajax做登录页面、验证用户名是否可用、动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  8. 14.ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  9. 11.10 (上午)开课二个月零六天(ajax基础,ajax做登录)

    test.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

随机推荐

  1. asp.net mvc 学习步骤

    入门篇(一) ASP.NET MVC案例教程(基于ASP.NET MVC beta) http://www.cnblogs.com/leoo2sk/archive/2008/10/27/1320285 ...

  2. :before和:after结合使用

    <div class="slider-block" id="block" style="left: 15.5px;" data=&qu ...

  3. python tips:dict的key顺序

    python3.6+版本中,dict的键值保持插入有序. t = list(range(10)) b = t[:] d = dict(zip(t, b)) print(list(d.items())) ...

  4. [POI2005]SKA-Piggy Banks tarjan 水题

    Code: #include<bits/stdc++.h> #define maxn 1000002 using namespace std; void setIO(string s) { ...

  5. 虚拟机pycharm

    一.进入虚拟机Ubuntu软件查找pycharm专业版进行安装 二.进入https://www.jetbrains.com/pycharm/download/#section=linux 下载Linu ...

  6. 爬虫系列(十三) 用selenium爬取京东商品

    这篇文章,我们将通过 selenium 模拟用户使用浏览器的行为,爬取京东商品信息,还是先放上最终的效果图: 1.网页分析 (1)初步分析 原本博主打算写一个能够爬取所有商品信息的爬虫,可是在分析过程 ...

  7. android的数据与访问(1)-我的app配置参数文件放在哪儿?

    系统提供数据处理方式: 1.SharedPreferences 2.文件存储 3.轻量级的数据.如SQLLite 1.简单存储 是android提供的起来年纪的数据存储方式:SharedPerence ...

  8. mybatis传入两个String类型的参数

    1.项目spring +mybatis +oracle 2.报错信息: [DEBUG] -- :: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debu ...

  9. TCP连接之未连接队列的理解

    tcp服务器在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认 ...

  10. pl/sql developer 布局结构保存

    pl/sql developer 布局结构保存 调整了工具栏,调整了窗体框位置,点击 窗口->保存版面 就可以保留当前的调整的结果,不用一次一次调整了: 也可以在工具 -> 首选项 -&g ...