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. Memcached 之缓存雪崩现象、实际案例和缓存无底洞现象

    一.缓存雪崩现象 由于集群中某个memcached服务器宕机的原因,造成集群中的服务器命中率下降.只能通过访问数据库得到数据,是的数据库的压力倍增,造成数据库服务器崩溃.重启数据库还是会崩溃,但是数据 ...

  2. CorelDRAW中内置的视频教程在哪里?

    CorelDRAW中内置了很多教学内容和视频教程,可以帮助用户快速学习和掌握CorelDRAW的使用方法,创作出个性化的作品.很多小伙伴表示找不到软件自带学习视频,现在小编就来告诉你. 用户可以通过两 ...

  3. PAT_A1149#Dangerous Goods Packaging

    Source: PAT A1149 Dangerous Goods Packaging (25 分) Description: When shipping goods with containers, ...

  4. xpath定位实列

    这次将讲Xpath定位! 什么是Xpath: Path就是路径,xpath也类似,就像 在DOS中 D:\Auto\jack. Xpath的使用: 1:在火狐下载 FirePath 插件(图1),然后 ...

  5. 5、SpringBoot+MyBaits+Maven+Idea+pagehelper分页插件

    1.为了我们平时方便开发,我们可以在同一个idea窗口创建多个项目模块,创建方式如下 2.项目中pom.xm文件的内容如下 <?xml version="1.0" encod ...

  6. numpy中sum(axis=0)和axis=1的计算原理

    看起来挺简单的样子,但是在给sum函数中加入参数.sum(a,axis=0)或者是.sum(axis=1) 就有点不解了 在我实验以后发现 我们平时用的sum应该是默认的axis=0 就是普通的相加 ...

  7. VS2015 建立一个C++的MFC简易窗体程序项目

    一开始建立的窗体工程都是带很多窗口,而且自己拉到窗体的控件,一调试就看不到了,是因为新建立工程项目时勾选了太多其他的了,这里记录分享一下建立一个单纯的窗体程序项目步骤给有需要的人也可以学习. 第一步: ...

  8. 合并目录中的txt文件

    txt 文件 合并 并 按章节 分隔 # -*- coding: utf8 -*- import os result_name = 'result.txt' def resplit_txt_in_fo ...

  9. 阶梯博弈&POJ 1704

    阶梯博弈: 先借用别人的一幅图片.(1阶梯之前还有一个0阶梯未画出) 阶梯博弈的最初定义是这样的:每一个阶梯只能向它的前一个阶梯移动本阶梯的点,直至最后无法移动的为输. 那么,利用NIM,只计算奇数级 ...

  10. Java&amp;&amp;(面试题)初始化顺序总结

    1  无继承情况下的Java初始化顺序: class Sample {       Sample(String s)       {             System.out.println(s) ...