java ajax 登陆验证_AJAX+JAVA用户登陆注册验证
需求
通过ajax异步刷新页面验证用户输入的账号密码是否在数据库中存在。
技术栈
JSP+Servlet+Oracle
具体代码
JSP部分:
pageEncoding="UTF-8"%>
Insert title here
function createXMLHttpRequest() {
try {
xmlHttp = new XMLHttpRequest();//除了ie之外的其他浏览器使用ajax
} catch (tryMS) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//ie浏览器适配
} catch (otherMS) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//ie浏览器适配
} catch (failed) {
xmlHttp = null;
}
}
}
return xmlHttp;
}
//提交请求
var xmlHttp;
function checkUserExists() {
var u = document.getElementById("uname");
var username = u.value;
if (username == "") {
alert("请输入用户名");
u.focus();
return false;
}
//访问字符串
var url = "loginServlet";
//创建核心xmlhttprequest组件
xmlHttp = createXMLHttpRequest();
//设置回调函数
xmlHttp.onreadystatechange = proessRequest;
//初始化核心组件
xmlHttp.open("post", url, true);
//设置请求头
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
//发送请求
xmlHttp.send("uname="+username);
}
//回调函数
function proessRequest() {
if (xmlHttp.status==200 && xmlHttp.readyState == 4) {
var b = xmlHttp.responseText;//得到服务端的输出结果
if (b=="true") {
document.getElementById("alert").innerHTML = "用户名已经存在!";
}else {
document.getElementById("alert").innerHTML = "用户名可以使用!";
}
}
}
请输入用户名:
这里没有用Dao层,直接用servlet和service层进行验证。
下面是service下JDBC查询的代码:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.stx.service.User;
import com.stx.service.ConnectionManager;
public class ajaxService {
public boolean searchUser (String uname) {
//jdbc查询用户名是否存在
boolean isFalse = false;
Connection connection = null;
Statement stmt = null;
ResultSet rs = null;
connection = ConnectionManager.getConnection();
try {
stmt = connection.createStatement();
String sql = "select * from user_b where uname='"+uname+"'";//sql语句
rs = stmt.executeQuery(sql);
isFalse=rs.next();
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnectionManager.closeResultSet(rs);
ConnectionManager.closeStatement(stmt);
ConnectionManager.closeConnection(connection);
}
return isFalse;
}
}
JDBC连接代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectionManager {
private final static String DRIVER_CLASS = "oracle.jdbc.OracleDriver";
private final static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private final static String DBNAME = "ibook";
private final static String PASSWORD = "qwer";
public static Connection getConnection() {
Connection connection = null;
try {
Class.forName(DRIVER_CLASS);
connection = DriverManager.getConnection(URL, DBNAME, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void closeResultSet(ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void closeConnection(Connection connection) {
try {
if (connection != null && !connection.isClosed())
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void closeStatement(Statement stmt) {
try {
if (stmt != null)
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
关于user类:
public class User {
private String uname;
public User() {
super();
}
public User(String uname) {
super();
this.uname = uname;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
关于控制层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;
import com.stx.service.ajaxService;
/**
* Servlet implementation class loginServlet
*/
public class loginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private ajaxService ajaxService = new ajaxService();
/**
* @see HttpServlet#HttpServlet()
*/
public loginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String uname = request.getParameter("uname");//获取到输入的用户名
boolean isUname = ajaxService.searchUser(uname);//调用service中的查询方法
response.setCharacterEncoding("UTF-8");//设置字符编码
PrintWriter out = response.getWriter();
out.print(isUname);
out.flush();
out.close();//关闭资源
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
java ajax 登陆验证_AJAX+JAVA用户登陆注册验证相关推荐
- ajax header请求,如何在用户登陆之后给每个页面往后台的ajax请求header都带上
用户登陆之后进入主页,在主页有多个ajax请求,现在要求每个ajax请求前header里面都要带上Authorization验证信息 我是用的jquery ajax的beforeSend方法,但是发现 ...
- java ajax轮询_ajax轮询(ajax轮询实现聊天)
最近一直在研究ajax长轮询连实现即时通信,但是到底是个怎么轮询法?难道. 一般最原始的作法就是在客户端搞个定时器一直向后台请求,而ajax的长轮询与一般的http连接不一样,它发送的是长连接,比如说 ...
- java ajax 点赞功能_Ajax+jQuery+bootstrap+Java实现异步点赞功能,并限制点击次数
在很多的网站上有很多不同的点赞,我不知道他们是怎么实现的,下面我来分享一下我写的点赞实现,共大家参考下, 这是我在一个项目抽取的代码,可能有些样式会发生变化,但是功能不会影响. 网页代码: 这个是根据 ...
- java ajax 更改头像_ajax+node实现头像更改
好久没有更新博客了,这几天在写文件上传的时候遇到了一个新的问题,就是关于ajax实现文件上传的问题 这几天在做一个小的demo,类似于论坛的一个东西,基于jquery+express+mongo的一个 ...
- java ajax轮询_ajax轮询
http://blog.csdn.net/qq_23412263/article/details/70260057 原理 普通的jquery ajax轮询的原理主要是,客户端通过定时器定时发送ajax ...
- java ajax 定时刷新_Ajax实现定时刷新页面
XML Schema命名空间解析 URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee ...
- python用户登陆,Python入门基础--用户登陆
让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定登陆 #__author:Mifen #date: 2018/11/28 import time #自定义本地用户名和密码 user_nam ...
- java Ajax入门
java Ajax入门 文章目录 java Ajax入门 前言 一.同步和异步 二.Ajax的使用 JavaScript方法 JQuery方法 总结 前言 接下来整理一下Ajax相关的内容,AJAX( ...
- Java项目:新闻发布系统(java+Springboot+ssm+mysql+maven)
源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 区分为管理员用户和普通用户,管理员用户能删除评论, 调整新闻显示/隐藏,修改新闻,删除普通用户,普通用户能 登陆浏览, ...
最新文章
- Gulp快速入门教程
- sicily 1150. 简单魔板
- Android Full-Disk Encryption
- 如何用行为树开发游戏AI以及任务系统?
- 嵌套游标以生成复杂的报表
- wxpython bind自定义_wxPython的 - 如何从自定义对话框WX
- 修改mysql表的存储引擎
- 运行报错provider = models.ForeignKey(Provider, on_delete=True) TypeError(‘on_delete must be callable.‘)
- java 银行系统_JAVA之银行系统1
- 机器学习实践笔记(三)时间序列数据预测
- [数论 反演]BZOJ4816 [Sdoi2017]数字表格
- docker搭建rap2
- pcb二次钻孔_pcb钻孔的注意事项
- 希沃白板如何解决手机端播放课件内视频出现黑屏闪退
- linux 进程流量统计,Linux进程网络流量统计方法及实现
- *-面对困境,莫言放弃----给学习中遇到困境的学员们
- layui单选框verify_layui lay-verify form表单自定义验证规则详解
- 干货分享:Totoro 在自动化测试领域的深耕与收获
- 系统出现0x80004005错误代码快速解决方法
- 类和对象总结及用法 计算点到点距离 线与线的关系 计算三角形平行四边形面积周长 判断形状
热门文章
- Android 超好用的播放器——ijkplayer
- 适合写作业时听的歌(高效学习)
- Day2 Transparency and Trust in Human-AI-InteractionThe Role of Model-Agnostic Explanations in CV DSS
- C#判断ip是否可用
- html三角形无序列表样式,Keynote创建项目符号列表或编号列表
- python开根号为整数_Python基础_1
- JAVA入门算法题(九)
- 【精选】JAVA入门算法题(四)
- 学习Linux命令(3)
- coreldraw x4曲线成长度_CorelDraw中获取曲线的长度和面积