以上功能的实现可以借助于Ajax。首先,登录表单中的账号和密码提交到Servlet,由Servlet调用DAO进行验证,最后根据验证结果决定跳转到某个页面显示。
由于篇幅关系,对DAO的功能进行了简化,认为账号密码相等就登录成功。
以下是LoginServlet的源代码:
LoginServlet.java
package servlets;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String account = request.getParameter("account");
String password = request.getParameter("password");
String loginState = "Fail";
String targetUrl = "/loginFail.jsp";
//认为账号密码相等就算登录成功,此处是对DAO的简化
if(account.equals(password)){
loginState = "Success";
targetUrl = "/loginSuccess.jsp";
HttpSession session = request.getSession();
session.setAttribute("account", account);
}
request.setAttribute("loginState", loginState);
ServletContext application = this.getServletContext();
RequestDispatcher rd =
application.getRequestDispatcher(targetUrl);
rd.forward(request, response);
}
}
该Servlet中,进行了数据验证,如果登录成功,跳转到loginSuccess.jsp,登录失败,跳转到loginFail.jsp。loginSuccess.jsp的代码如下:
loginSuccess.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body>
欢迎${account}登录成功!<BR>
您可以选择以下功能:<BR>
<a href="">查询学生</a><BR>
<a href="">修改学生资料</a><BR>
<a href="">修改用户资料</a><BR>
<a href="">退出</a><BR>
</body>
</html>
此处仅仅进行模拟。loginFail.jsp的代码如下:
loginFail.jsp
<%@ page language="java" contentType="text/html;
charset=gb2312"%>
<html>
<body>
对不起,登录失败!<BR>
请您检查是否:<BR>
账号名写错<BR>
密码写错
</body>
</html>
最后是login.jsp,该JSP上有一个表单,点击登录按钮,进行异步提交。代码如下:
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<SCRIPT LANGUAGE="JavaScript">
function login(){
var account = document.loginForm.account.value;
var password = document.loginForm.password.value;
var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
var url =
"servlet/LoginServlet?account="+account+"&password="+password;
xmlHttp.open("post", url, true);
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4) {
resultDiv.innerHTML = xmlHttp.responseText;
}
else{
resultDiv.innerHTML += "正在登录,请稍候......";
}
}
xmlHttp.send();
}
</SCRIPT>
欢迎登录学生管理系统. <hr>
<div id="resultDiv">
<form name="loginForm">
请您输入账号:<input type="text" name="account"><BR>
请您输入密码:<input type="password" name="password"><BR>
<input type="button" value="登录" onclick="login()">
</form>
</div>
</body>
</html>
运行,即可得到相应的效果。
注意,此处的按钮类型千万不要写成submit,否则会造成表单提交,界面刷新,不是Ajax效果。
分享到:
相关推荐
《PHP与AJAX实际应用深度解析》 在Web开发领域,PHP和AJAX是两种非常重要的技术,它们共同构建了动态、交互性强的网页应用程序。本篇将详细讲解PHP与AJAX的实际应用,并通过实例来深入理解这两种技术的结合。 一、...
**三、Ajax实际应用** 1. **表单验证**:在提交表单前,使用Ajax验证用户输入,提供即时反馈。 2. **动态加载内容**:如新闻列表、评论区等,用户滚动到页面底部时自动加载更多内容。 3. **无刷新搜索**:在用户输入...
PHP以其易用性、开源性等特点成为一种非常热门的网站... ... ... 第2章 调试环境的安装.ppt ... 第18章 AJAX实际应用.ppt 第19章 PHP+AJAX留言簿程序.ppt 第20章 PHP+AJAX聊天室程序.ppt 第21章 用PHP+Ajax制作论坛.ppt
9. **实战案例**:通过168个经典范例,你将接触到登录验证、数据检索、分页、图表展示、异步上传等多种应用场景,加深对ASP.NET和AJAX实际应用的理解。 10. **精选71例**:这些精选案例可能涵盖了更高级或特定领域...
- **源码分析**:提供的源码是学习Ajax实际应用的好材料,可以深入理解如何构建Ajax请求,以及如何与XML或JSON数据交互。 - **在线教程**:网上有许多关于Ajax和XML的教程,例如MDN Web Docs,W3School等,可以作为...
总结来说,Ajax完全自学指导涵盖了从JavaScript基础知识到Ajax实际应用的全面内容,旨在帮助初学者快速上手,并为高级开发者提供参考。通过系统学习和实践,你将能够利用Ajax技术构建出更加高效、互动性强的Web应用...
**传统Web应用与AJAX应用** 在Web应用的发展历程中,传统的Web应用和AJAX(Asynchronous JavaScript and XML)应用是两个重要的阶段。传统的Web应用,又称为“页面刷新”模型,是基于HTTP协议的请求-响应模式。用户...
在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。...通过学习和实践这样的实例,开发者能够更好地理解和掌握Ajax在实际项目中的应用。
当然,实际的Ajax应用可能涉及到更复杂的错误处理、缓存策略以及跨域问题,但这些都是建立在这个基础之上的。现在,你可以查看名为“gj”的压缩包文件中的代码,进一步学习和实践这些Ajax知识。
在Ajax实际应用中,跨域问题、缓存策略、错误处理、性能优化等方面也是重要知识点。书中会讨论这些问题,并给出解决方案,如使用JSONP解决跨域限制,利用HTTP头部控制缓存,以及通过合理设计减少网络传输量来提升...
综上所述,这个示例提供了一个完整的jQuery AJAX交互流程,包括客户端发起请求和服务器响应的源码,是学习和理解AJAX实际应用的好资源。通过深入研究这些代码,你可以掌握AJAX的基本用法,以及如何在实际项目中应用...
综上所述,Ajax技术在基于ARCIMS的WEBGIS开发中,大大提升了系统的响应速度和交互性,使WebGIS应用更加贴近用户的实际需求,提高了地理信息的获取和利用效率。通过合理运用Ajax,开发者能够为用户提供更加高效、直观...
在实际应用中,JSON(JavaScript Object Notation)通常作为数据交换格式,因其轻量级和易读性而广受欢迎。在Ajax请求中,可以通过JSON.stringify()将JavaScript对象转换为JSON字符串发送给服务器,服务器处理后返回...
5. **Ajax实际应用** - **实时通信**:例如聊天室、股票报价系统,实现即时数据更新。 - **表单无刷新验证**:提交前验证用户输入,无需等待页面刷新。 - **数据分页**:动态加载更多内容,提高页面加载速度。 -...
标题"ajax example"暗示我们将讨论一个关于Ajax实际应用的例子。这个例子可能包括如何使用Ajax来实现动态加载内容、用户输入验证或实时数据更新等功能。描述中的"this is very useful example"表明这是一个非常实用...
本篇文章将深入探讨Ajax实例演示中的关键知识点,以及如何在实际项目中应用这些知识。** **一、Ajax工作原理** Ajax的核心是通过JavaScript与服务器进行异步数据交换,主要由以下几个步骤组成: 1. 创建...
在"**Ajax经典实例及源程序**"中,我们可能找到一系列用于展示Ajax实际应用的示例,这些示例可能涵盖了各种常见的Web交互场景。例如: 1. **表单验证**:在用户填写表单时,无需提交就能实时验证输入的有效性,如...
总的来说,AJAX在现代Web开发中扮演着重要角色,通过它,开发者能够构建更加高效、流畅的用户体验,同时也要注意其局限性和优化策略,以确保应用的可访问性和性能。随着技术的不断发展,AJAX也在持续进化,适应着日...
压缩包中的源码示例可能包括了上述各种AJAX应用场景的实现,通过阅读和实践这些代码,可以加深对AJAX实际应用的理解。例如,GET请求、POST请求的实现,以及错误处理和数据解析的技巧。 7. **最佳实践** - **避免...
"实际项目训练之传智播客"是一个专门针对Ajax实际应用的训练资源,它包含了一系列的专业Ajax技术内容,旨在帮助学习者掌握Ajax的核心概念和技术,并将其应用于实际项目中。 Ajax的核心组件包括以下几个方面: 1. *...