Ajax实现登陆

用Ajax前后端分离实现一个简单的用户登录页面

先看一下页面效果图
在这里插入图片描述
账号和密码格式错误
在这里插入图片描述
格式正确但是用户名或密码错误(清空密码框内容,选中账号框全部内容)
在这里插入图片描述
程序详解:
@: 对输入的账号和密码用正则表达式验证格式
@@: 格式错误会提示让你输入正确的格式
@@@: 验证输入的账号密码是否正确
@@@@: 不正确密码清空账号输入框的内容全部被选中
@@@@@: 账号和密码都正确会跳转到另外一个页面

  1. 看一下文件的布局结构
    在这里插入图片描述
  2. index.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><style>body{text-align: center;float: center;background-image: url(img/2.jpg);}#big{width: 60%;height: 500px;border: 1px #F9FBF8 solid;margin: 120px auto;background-image: url(img/3.jpg);opacity: 0.7;}#small{width: 25%;height: 45%;border: 2px solid black;margin: 130px 600px;background-color: #F6F9F5;border-radius: 10px;}#one{width: 100%;height: 50px;text-align: center;margin-top: 50px;}#two{width: 100%;height: 50px;text-align: center;}#three{width: 100%;height: 50px;text-align: center;}#three input{width: 100px;height: 50px;background-color: #61DA9F;border-radius: 20px;}</style><body><div id="big"><div id="small"><form><div id="one">账号:<input type="text" name="name" id="name" /><br /><span id="a1"></span></div><div id="two">密码:<input type="password" name="pwd" id="pwd" /><br /><span id="a2"></span></div><div id="three"><input type="button" value="登陆" /></div></form></div></div><script src="js/jquery.js"></script><script>$(function(){$(":button").on("click",function(){var bool = true;//判断用户名function regUserName(){var userName = document.getElementById("name").value;var verify1 = /^[A-Z]{1}[A-Za-z_]{5,19}$/;var result1 = verify1.test(userName.trim());if (result1 && userName != ""){document.getElementById("a1").innerHTML = "";}else {document.getElementById("a1").innerHTML = "请输入正确的格式";document.getElementById("a1").style.color = "red";bool = false;}   }//判断密码function regPwd(){var pwd = document.getElementById("pwd").value;var verify2 = /^[A-Z]{1}[A-Za-z_]{5,19}$/;var result2 = verify2.test(pwd.trim());if (result2 && pwd != ""){document.getElementById("a2").innerHTML = "";}else {document.getElementById("a2").innerHTML = "请输入正确的格式";document.getElementById("a2").style.color = "red";bool = false;}}regUserName();regPwd();if(bool){$.ajax({url:"ajax",type:"post",data:{name:$("#name").val(),pwd:$("#pwd").val()},dataType:"text",success:function(data){if(data == "ok"){window.location.href="sucess.jsp";}else{$("#name").select();$("#pwd").val("");}}});}else{alert("验证功不通过");};});		});</script></body>
</html>
  1. AjaxServlet.java代码
package servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class AjaxServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html");PrintWriter out = response.getWriter();String name = "Zhangsan";String pwd = "Zhangsan";String ajaxName = request.getParameter("name");String ajaxPwd = request.getParameter("pwd");System.out.println(ajaxName);System.out.println(ajaxPwd);if(name.equals(ajaxName) && pwd.equals(ajaxPwd)){out.print("ok");}else{out.print("error");}out.flush();out.close();}}
  1. sucess.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'sucess.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>这是登录成功之后现实的内容!!!</body>
</html>

到此为止已经能够实现上述所说的全部内容!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV 例程200篇】35. 图像的投影变换(边界填充)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】35. 图像的投影变换&#xff08;边界填充&#xff09; 投影变换&#xff08;Projective mapping&#xff09;也称透视变换&#xff08;Perspective transformation&#xff09;是建立两平面场之间的对…

MXNet的Model API

MXNet的API mxnet里面的model API不是真的API&#xff0c;它只不过是一个对ndarray的一个封装&#xff0c;使其更容易使用。训练一个模型 为了训练一个模型&#xff0c;你需要遵循以下两步&#xff0c;第一步是使用symbol来构造&#xff0c;然后调用model.Feedforward.create这…

点击修改表格背景色

使用Jquery事件实现点击修改表格的背景颜色 每列表格之前都有一个多选按钮&#xff0c;当你点击按钮时&#xff0c;这一行所有内容的背景色会发生改变&#xff0c;当你再次点击该多选按钮的时候&#xff0c;取消背景色。 未点击之前的样式 点击时候的样式 程序解读&#xff…

【OpenCV 例程200篇】36. 直角坐标与极坐标转换(cv2.polarToCart)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】36. 直角坐标与极坐标的转换 函数 cv2.cartToPolar 用于将直角坐标&#xff08;笛卡尔坐标&#xff09;转换为极坐标&#xff0c;函数 cv2.polarToCart 用于将极坐标转换为直角坐标&#xff08;笛卡尔…

python里面的函数

python里面的函数 函数定义 def my_abs(x):if x > 0:return xelse:return -x 如果没有return语句&#xff0c;函数执行完毕后也会返回结果&#xff0c;只是结果为None。 return None可以简写为return。 在Python交互环境中定义函数时&#xff0c;注意Python会出现...的提示…

【youcans 的图像处理学习课】6. 灰度变换与直方图处理

专栏地址&#xff1a;『youcans 的图像处理学习课』 文章目录&#xff1a;『youcans 的图像处理学习课 - 总目录』 【youcans 的图像处理学习课】6. 灰度变换与直方图处理 文章目录【youcans 的图像处理学习课】6. 灰度变换与直方图处理1. 图像增强技术2. 图像的灰度化处理和二…

数字时钟

一个美丽的数字时钟 利用所学的Jquery知识制作一个自己的专属时钟&#xff0c;下面先看一下效果图 效果图此图为静止 &#xff08;时分秒都是动态变化的&#xff09; 程序解读&#xff1a;使用定时器进行动态变化&#xff0c;时分秒的数字小于10的时候前面应该加上一个0&…

python里面的高级特性

python里面的高级特性 1.切片(Slice) >>> L[0:3] [Michael, Sarah, Tracy]L[0:3]表示&#xff0c;从索引0开始取&#xff0c;直到索引3为止&#xff0c;但不包括索引3。即索引0&#xff0c;1&#xff0c;2&#xff0c;正好是3个元素。 如果第一个索引是0&#xff0c;…

链接数据库增删改通用

实现对SQLServer和MySql数据库通用链接及数据的增删改 我们经常需要和数据库打交道&#xff0c;对数据库数据进行增改删查的操作&#xff0c;首先我们必须要先链接数据库&#xff0c;然后对数据内容进行相关增删改操作。 首先看一下目录结构 程序解读&#xff1a;一共有三个…

2021爱智先行者—(2)零基础APP开发实例

【本文正在参与"2021爱智先行者-征文大赛"活动】&#xff0c;活动链接&#xff1a;https://bbs.csdn.net/topics/602601454 欢迎关注 『Python小白的项目实战』 系列&#xff0c;持续更新 2021爱智先行者—&#xff08;1&#xff09;开箱点评 2021爱智先行者—&#…

pyinstaller使用

pyinstaller 顾名思义&#xff0c;pyinstaller是给python脚本打包用的。 先直接上例子吧 1.直接打包&#xff0c;包含多个文件 pyinstaller xx.py 2.打包成一个文件 pyinstaller -F xx.py 3.打包为一个文件没有黑框(终端或者命令行) pyinstaller -F -w xx.py 4.打包…

ATM取款机系统

模拟银行实现ATM机取款系统 该系统使用( ( (SQLServer) ) )数据库 功能介绍&#xff1a; 开户&#xff08;到银行填写开户申请单&#xff09;取钱存钱查询余额转账 根据需求设计相对应的数据库概念模型 流程分步详解 1 创建数据库Bank_db --创建数据库 CREATE DATABASE B…

【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理(cv2.threshold)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理 按照颜色对图像进行分类&#xff0c;可以分为二值图像、灰度图像和彩色图像。 二值图像&#xff1a;只有黑色和白色两种颜色的图像。每个像素点可以用 0/1 表示&#xff0c;0…

python库大全

环境管理 管理 Python 版本和环境的工具 p&#xff1a;非常简单的交互式 python 版本管理工具。官网pyenv&#xff1a;简单的 Python 版本管理工具。官网Vex&#xff1a;可以在虚拟环境中执行命令。官网virtualenv&#xff1a;创建独立 Python 环境的工具。官网virtualenvwrap…

【OpenCV 例程200篇】38. 图像的反色变换(图像反转)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】38. 图像的反色变换&#xff08;图像反转&#xff09; 灰度变换是图像增强的重要方法&#xff0c;可以使图像动态范围扩大、图像对比度增强&#xff0c;图像更清晰&#xff0c;特征更明显&#xff0c;从而改善图…

SQLServer 条件查询语句大全

对于刚开始认识SQLServer数据库的小伙伴们来说添加一些条件查询是比较困难的&#xff0c;我整理了一份常用的条件查询语句供大家参考借鉴 一. 创建数据库 CREATE DATABASE Class ON PRIMARY ( NAME Bank_db_data, FILENAME D:\DATA\Class_data.mdf, SIZE 5MB, MAXSIZE 50…

【OpenCV 例程200篇】39. 图像灰度的线性变换

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】39. 图像灰度的线性变换 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 线性灰度变化对图像的每一个像素作线性拉伸&#xff0c;可以凸显图像的细节&#xff0c;提高图像的…

网络编程基础

网络协议 TCP/IP协议 IP地址与端口

获取焦点改变状态

表格显示文本内容&#xff0c;当用鼠标点击时获取到焦点文本变为可输入的输入框&#xff0c;点击空白处时失去焦点变为文本显示的文本内容 先看效果图 失去焦点的时候&#xff08;文本内容只能看不能编辑&#xff09; 获取焦点的时候&#xff08;文本内容变为可以编辑的输入框…

【OpenCV 例程300篇】40. 图像分段线性灰度变换

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程300篇】40. 图像分段线性灰度变换 分段线性变换函数可以增强图像各部分的反差&#xff0c;增强感兴趣的灰度区间、抑制不感兴趣的灰度级。 分段线性函数的优点是可以根据需要拉伸特征物的灰度细节&#xff…