/**Ajax 编写流程
* 1、创建 XHR (XMLHttpRequest)对象

 var xmlHttpReq = false; // var xmlHttpReq = "";       数据类型改变--弱类型
//Part1:创建 [一个函数,初始化] XHR 对象--->是 Ajax的基础
function createXmlHttpRequest() {
/**这里要完成两个步骤:
* 1.IE7+、FireFox、Chrome、Safari、Opera浏览器下的 XHR 是如何初始化的
* 2.IE5、IE6 浏览器下的 XHR 有是如何初始化的
**/
if(window.XMLHttpRequest){ //IE7+、FireFox、Chrome、Safari、Opera下创建的 XHR
xmlHttpReq = new XMLHttpRequest();
}else if(window.ActiveXObject){ //IE5、IE6下创建的 XMLHttpRequest
try{ // 所有现代浏览器均支持 XHR 对象(IE5 和 IE6 使用 ActiveXObject)。
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
console.log("=====Fail======");
}
}
}

* 2、利用XHR发送Ajax请求

* 3、写一个回调函数来解析服务器端返回的数据

* 4、把数据渲染到HTML页面上

 //Part2:利用XMLHttpRequest发送Ajax请求---->将请求发送到服务器 用 XHR 对象的 open() 和 send() 方法
function sendRequest(url, params){
// 1创建 XMLHttpReq对象(先调用,使xmlHttpReq初始化)
createXmlHttpRequest();
// 2向服务器发送请求---->设置发送请求相关属性
xmlHttpReq.open("POST",url,true);// 2.1 规定请求的类型、URL 以及是否异步处理请求。
xmlHttpReq.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // 2.2 设置Http请求头
xmlHttpReq.send(params); // 2.3 将请求发送到服务器 发送数据
// Part3 回调函数 处理服务器返回的数据
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200){
//Part4 数据解析---> 把数据渲染到HTML页面上
// nodeValue 返回元素值
var res = xmlHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.nodeValue;
window.alert(res);
}
}
}

完整代码如下:

1.html文件

 <!-- 01_ajax.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax案例</title>
<script src="js/01_ajax.js"></script> </head>
<body>
<form action="" method="post">
<p><label>账号:</label><input type="text" name="uname" id="uname"></p>
<p><label>密码:</label><input type="password" name="upass" id="upass"></p>
<p><input type="button" value="登录" onclick="login()"></p>
</form>
</body>
</html>

01_ajax.html

2.js文件

 /**Ajax编写流程
* 1、创建 XHR (XMLHttpRequest)对象
* 2、利用XHR发送Ajax请求
* 3、学会写一个回调函数来解析服务器端返回的数据
* 4、把数据渲染到HTML页面上
*/ $ = function(obj){
return document.getElementById(obj);
} var xmlHttpReq = false; // var xmlHttpReq = ""; 数据类型改变--弱类型
//Part1:创建 [一个函数,初始化] XHR 对象--->是 Ajax的基础
function createXmlHttpRequest() {
/**这里要完成两个步骤:
* 1.IE7+、FireFox、Chrome、Safari、Opera浏览器下的 XHR 是如何初始化的
* 2.IE5、IE6 浏览器下的 XHR 有是如何初始化的
**/
if(window.XMLHttpRequest){ //IE7+、FireFox、Chrome、Safari、Opera下创建的 XHR
xmlHttpReq = new XMLHttpRequest();
}else if(window.ActiveXObject){ //IE5、IE6下创建的 XMLHttpRequest
try{ // 所有现代浏览器均支持 XHR 对象(IE5 和 IE6 使用 ActiveXObject)。
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
console.log("=====Fail======");
}
}
} //Part2:利用XMLHttpRequest发送Ajax请求---->将请求发送到服务器 用 XHR 对象的 open() 和 send() 方法
function sendRequest(url, params){
// 1创建 XMLHttpReq对象(先调用,使xmlHttpReq初始化)
createXmlHttpRequest();
// 2向服务器发送请求---->设置发送请求相关属性
xmlHttpReq.open("POST",url,true);// 2.1 规定请求的类型、URL 以及是否异步处理请求。
xmlHttpReq.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // 2.2设置Http请求头
xmlHttpReq.send(params); // 2.3 将请求发送到服务器 发送数据
// Part3 使用回调函数 处理服务器返回的数据
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200){
// Part4 数据解析 ---> 把数据渲染到HTML页面上
var res = xmlHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.nodeValue; // nodeValue 返回元素值
window.alert(res);
}
}
} // 登录点击事件方法
function login(){
var uname = $("uname").value;
var upass = $("upass").value;
var params = "uname=" + uname + "&upass=" + upass;
sendRequest("01_ajax.do",params);
}

01_ajax.js

3.java文件

 package com.lsy.ajaxtest1;

 import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; // 服务器端 ---> ervlet @WebServlet("/01_ajax.do")
/*只要在Servlet上设置@WebServlet标注,容器就会自动读取当中的信息。上面的@WebServlet告诉容器,
如果请求的URL是“/01_ajax.do”,则由HelloServlet的实例提供服务。可以使用@WebServlet提供更多信息*/
public class AjaxServelet_01 extends HttpServlet { private static final long serialVersionUID = 4776153483702612333L; /**服务器端要做怎样的操作
* 1、获得数据(请求)
* 2、返回数据(响应)
**/
@Override
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
request.setCharacterEncoding("utf-8"); //请求的中文处理
response.setCharacterEncoding("utf-8"); //响应的中文处理
response.setContentType("text/xml;charset=utf-8"); //响应类型的设置
PrintWriter out = response.getWriter(); //输出流(字符流),输出xml格式数据 String uname = request.getParameter("uname");
String upass = request.getParameter("upass"); // System.out.println(uname + "---" + upass);
// String xml = "<response><res>欢迎光临...</res></response>";
StringBuffer xml = new StringBuffer();
xml.append("<response>");
if("zs".equals(uname) && "123".equals(upass)) {
xml.append("<res>欢迎光临...</res>");
}else {
xml.append("<res>输入信息有错!</res>");
}
xml.append("</response>");
out.println(xml.toString());
out.flush();
out.close(); //输出流关闭
}
}

AjaxServelet_01.java

AJAX - 实现一个简单的登录验证的更多相关文章

  1. Web开发技术---简单的登录验证

    制作一个APP或系统最基础的是登录界面,下面通过一个简单的登录注册界面的程序,来熟练掌握Web开发的技术. 一.知识点: 1.在网页界面获取用户的输入信息 2.标签的基本应用 3.用户输入结果的错误提 ...

  2. Asp.Net WebApi一个简单的Token验证

    1.前言: WebAPI主要开放数据给手机APP,Pad,其他需要得知数据的系统,或者软件应用.Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能.我上次写的<Asp.Net MV ...

  3. 第四章 .net core做一个简单的登录

    项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...

  4. asp.net 一个简单的登录控制

    如果说一个网站需要用户登录后才能浏览,那么用户登录控制就不可避免.但是对于几百个以上的页面,不可能每个页面都做一次登录验证.因此,这需要在母版页中进行登录控制,这样就可以使得每一个使用这个母版页的子页 ...

  5. jmeter 压力测试(一)一个简单的登录

    写在最前面,之所以记录这个最最简单的http的登录,是因为捣鼓了一天,真的是找错也找不错了,后来请教的同事,重新写了一个ok了,最后发现竟然是因为[http信息头]写的有问题,简直是!!醉了 如下,这 ...

  6. SSM框架完成Ajax简单用户登录验证

    一.前端JSP <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...

  7. struts-spring-mybatis实现最简单的登录验证

    1.导入项目相关的jar包 2.建立项目结构 3.配置文件的配置及代码 db.properties: jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:my ...

  8. 7. Swift 基于Xmpp和openfire实现一个简单的登录注册

    1. 基本步骤:首先导入Xmpp框架,配置环境 ->由于我们使用的是OC的Xmpp框架,再进行Swift开发时需要进行桥接. 具体方法就是创建一个基于c的.h的头文件,然后将我们需要编译OC的语 ...

  9. node.js 实现一个简单的登录拦截器

    拦截器在web开发中随处可见,比如站点的管理后台,不说所有人都能进入,所以就需要做一个拦截器并友好的跳转到提示页. 下面我们简单实现一种,判断用户是否登录成功,登录不成功的用户自动重定向到登录页面. ...

随机推荐

  1. postgresql相关sql集锦

    1.类似于oracle的listagg->string_agg SELECT area_county,)total FROM project_info GROUP BY area_county ...

  2. image按钮新增的width属性和height属性

    代码实例: test.html <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  3. JSP和Servlet及浏览器与tomcat交互过程

    JSP与SERVLET区别 JSP在本质上就是Servlet,但是两者的创建方式不一样. JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.因此在实际应用中采用Servlet来控制业务流程 ...

  4. 小记:web安全测试之——固定session漏洞

    今天因为项目背景需要,需要检测web接口是否一些安全隐患. 无奈于从未掌握有系统的渗透性知识,只好根据个人对网络协议和 web 的理解,做一些探索,最终发现了一个session fixation at ...

  5. Atcoder2134 Zigzag MST

    问题描述 We have a graph with N vertices, numbered 0 through N−1. Edges are yet to be added. We will pro ...

  6. [CH5E02] A Little Shop of Flowers

    问题描述 You want to arrange the window of your flower shop in a most pleasant way. You have F bunches o ...

  7. python学习笔记(六)函数

    1.函数是什么? 定义:函数是指一组语句的集合通过一个名字(函数名)封装起来,只需调用函数名即可. 2.函数的好处: 简化代码 提高代码的复用性 代码可扩展 3.python中函数的定义: 定义函数使 ...

  8. ClickOnce是什么?如何使用?

    ClickOnce是一种部署方式,主要解决C/S软件版本更新后,所有客户端都要重新安装的问题. 场景:假如,你的客户有1000个,你的服务端更新后,这1000个客户都要重新安装,难道要员工一个一个的电 ...

  9. PL/SQL 循环

    ----PL/SQL基本循环语句 LOOP DECLARE x ; BEGIN LOOP dbms_output.put_line(x); x :; THEN exit; END IF; END LO ...

  10. 破解Revealapp的试用时间限制

    转载自:http://jingwei6.me/2014/02/28/reveal_crack.html Revealapp作为分析iOS app UI结构的利器,还是非常称手的,89刀的价格也是物有所 ...