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. Visual Studio Code 插件推荐

    Path Intellisense - 路径补全 HTML Snippets - HTML 标记增强 Markdown+Math - Markdown 增强(数学表达式) vscode-icons - ...

  2. jq遍历table 下的 td 添加类

    <script> $('#btntb').click(function () { $('#tab tr').each(function (i) { // 遍历 tr $(this).chi ...

  3. 输出字符串格式化/ Linq对数组操作 /一个按钮样式

    textBox1.Text = dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss"); , , , , , , , , , , ...

  4. 数据库操作(一)DML

    1.数据库 数据库可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增.查询.更新.删除等操作. 所谓“数据库”是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与 ...

  5. windows开机自启动bat脚本设置

    群里有朋友问到windows下如何设计开机自启动的脚本,一般而言小鱼大多还是在linux环境下运维,windows的bat了解的很少,windows运行机制也不是特别了解,不过既然朋友问到这个问题,虽 ...

  6. 实验吧writeup

    后台登录 1.看源码有这样一段php代码<!-- $password=$_POST['password']; $sql = "SELECT * FROM admin WHERE use ...

  7. 1.1、配置Python虚拟环境

    安装虚拟环境 系统:CentOS 7.2 python版本:Python 2.7.5 1.虚拟环境介绍 虚拟环境是Python解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装 ...

  8. Linux思维导图之sed、实战习题

    命令解释: ◆sed 2p /etc/passwd第二行打印了两次其余一次 ◆sed-n '2p' /etc/passwd 只打印出第二行 ◆sed-n 1,4p' /etc/passwd 只打印出1 ...

  9. COOKIE, SESSION, JSESSION

    http://www.360doc.com/content/11/1027/10/7472437_159535413.shtml

  10. Java 实现线程安全的三种方式

    一个程序在运行起来的时候会转换成进程,通常含有多个线程. 通常情况下,一个进程中的比较耗时的操作(如长循环.文件上传下载.网络资源获取等),往往会采用多线程来解决. 比如显示生活中,银行取钱问题.火车 ...