需求

通过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用户登陆注册验证相关推荐

  1. ajax header请求,如何在用户登陆之后给每个页面往后台的ajax请求header都带上

    用户登陆之后进入主页,在主页有多个ajax请求,现在要求每个ajax请求前header里面都要带上Authorization验证信息 我是用的jquery ajax的beforeSend方法,但是发现 ...

  2. java ajax轮询_ajax轮询(ajax轮询实现聊天)

    最近一直在研究ajax长轮询连实现即时通信,但是到底是个怎么轮询法?难道. 一般最原始的作法就是在客户端搞个定时器一直向后台请求,而ajax的长轮询与一般的http连接不一样,它发送的是长连接,比如说 ...

  3. java ajax 点赞功能_Ajax+jQuery+bootstrap+Java实现异步点赞功能,并限制点击次数

    在很多的网站上有很多不同的点赞,我不知道他们是怎么实现的,下面我来分享一下我写的点赞实现,共大家参考下, 这是我在一个项目抽取的代码,可能有些样式会发生变化,但是功能不会影响. 网页代码: 这个是根据 ...

  4. java ajax 更改头像_ajax+node实现头像更改

    好久没有更新博客了,这几天在写文件上传的时候遇到了一个新的问题,就是关于ajax实现文件上传的问题 这几天在做一个小的demo,类似于论坛的一个东西,基于jquery+express+mongo的一个 ...

  5. java ajax轮询_ajax轮询

    http://blog.csdn.net/qq_23412263/article/details/70260057 原理 普通的jquery ajax轮询的原理主要是,客户端通过定时器定时发送ajax ...

  6. java ajax 定时刷新_Ajax实现定时刷新页面

    XML Schema命名空间解析 URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee ...

  7. python用户登陆,Python入门基础--用户登陆

    让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定登陆 #__author:Mifen #date: 2018/11/28 import time #自定义本地用户名和密码 user_nam ...

  8. java Ajax入门

    java Ajax入门 文章目录 java Ajax入门 前言 一.同步和异步 二.Ajax的使用 JavaScript方法 JQuery方法 总结 前言 接下来整理一下Ajax相关的内容,AJAX( ...

  9. Java项目:新闻发布系统(java+Springboot+ssm+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 区分为管理员用户和普通用户,管理员用户能删除评论, 调整新闻显示/隐藏,修改新闻,删除普通用户,普通用户能 登陆浏览, ...

最新文章

  1. Gulp快速入门教程
  2. sicily 1150. 简单魔板
  3. Android Full-Disk Encryption
  4. 如何用行为树开发游戏AI以及任务系统?
  5. 嵌套游标以生成复杂的报表
  6. wxpython bind自定义_wxPython的 - 如何从自定义对话框WX
  7. 修改mysql表的存储引擎
  8. 运行报错provider = models.ForeignKey(Provider, on_delete=True) TypeError(‘on_delete must be callable.‘)
  9. java 银行系统_JAVA之银行系统1
  10. 机器学习实践笔记(三)时间序列数据预测
  11. [数论 反演]BZOJ4816 [Sdoi2017]数字表格
  12. docker搭建rap2
  13. pcb二次钻孔_pcb钻孔的注意事项
  14. 希沃白板如何解决手机端播放课件内视频出现黑屏闪退
  15. linux 进程流量统计,Linux进程网络流量统计方法及实现
  16. *-面对困境,莫言放弃----给学习中遇到困境的学员们
  17. layui单选框verify_layui lay-verify form表单自定义验证规则详解
  18. 干货分享:Totoro 在自动化测试领域的深耕与收获
  19. 系统出现0x80004005错误代码快速解决方法
  20. 类和对象总结及用法 计算点到点距离 线与线的关系 计算三角形平行四边形面积周长 判断形状

热门文章

  1. Android 超好用的播放器——ijkplayer
  2. 适合写作业时听的歌(高效学习)
  3. Day2 Transparency and Trust in Human-AI-InteractionThe Role of Model-Agnostic Explanations in CV DSS
  4. C#判断ip是否可用
  5. html三角形无序列表样式,Keynote创建项目符号列表或编号列表
  6. python开根号为整数_Python基础_1
  7. JAVA入门算法题(九)
  8. 【精选】JAVA入门算法题(四)
  9. 学习Linux命令(3)
  10. coreldraw x4曲线成长度_CorelDraw中获取曲线的长度和面积