Web实现数据库链接的登录注册修改密码功能
/**
* Copyright (C), 2017-2017
* FileName: User
* Author: ichimoku
* Date: 2017/12/5 14:31
* version: 7.9.0
* <Author> <Date> <version>
* 作者姓名 修改时间 版本号
*/
public class User { //登陆查询 ----- 括号内接收从网页传来的用户输入的参数
public static Boolean CheckUser(String username,String password) {
int count = 0;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 1.加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("加载驱动失败");
}
// 2.建立连接
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名", "用户名", "密码");
/*System.out.println("建立连接成功!");*/ String sql = "SELECT id FROM account WHERE name=? AND password=?";
ps=conn.prepareStatement(sql);
ps.setString(1,username);
ps.setString(2,password);
rs=ps.executeQuery();
while (rs.next()){
count++;
} } catch (SQLException e) {
System.out.println("建立连接失败");
} finally {
// 3.关闭连接
try {
if (null != conn) {
conn.close();
}
if (null != ps) {
ps.close();
}
/*System.out.println("关闭连接成功!");*/
} catch (SQLException e) {
System.out.println("程序错误");
}
}
return count>0 ? true:false;
} //新增用户 ----- 括号内接收从网页传来的用户输入的参数
public static void AddUser(String username,String password) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 1.加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("加载驱动失败");
}
// 2.建立连接
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名", "用户名", "密码");
/*System.out.println("建立连接成功!");*/ String sql = "INSERT INTO account SET (name,password) VALUE (?,?)";
ps=conn.prepareStatement(sql);
ps.setString(1,username);
ps.setString(2,password);
rs=ps.executeQuery();
} catch (SQLException e) {
System.out.println("建立连接失败");
} finally {
// 3.关闭连接
try {
if (null != conn) {
conn.close();
}
if (null != ps) {
ps.close();
}
System.out.println("关闭连接成功!!!");
} catch (SQLException e) {
System.out.println("程序错误");
}
}
} //修改密码 --- 括号内接收从网页传来的用户输入的参数
public static void UpdateUser(String newpassword,String username,String password) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 1.加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("加载驱动失败");
}
// 2.建立连接
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名", "用户名", "密码");
/*System.out.println("建立连接成功!");*/ String sql = "UPDATE account SET password=? WHERE name=? AND password=?";
ps=conn.prepareStatement(sql);
ps.setString(1,newpassword);
ps.setString(2,username);
ps.setString(3,password);
rs=ps.executeQuery(); } catch (SQLException e) {
System.out.println("建立连接失败");
} finally {
// 3.关闭连接
try {
if (null != conn) {
conn.close();
}
if (null != ps) {
ps.close();
}
System.out.println("关闭连接成功!");
} catch (SQLException e) {
System.out.println("程序错误");
}
}
}
}
/**
* Copyright (C), 2017-2017
* FileName: Check
* Author: ichimoku
* Date: 2017/12/5 14:40
* version: 7.9.0
* <Author> <Date> <version>
* 作者姓名 修改时间 版本号
*/ @WebServlet(name="CheckUser",urlPatterns="/servlet/CheckUser")
public class CheckUser extends HttpServlet{
private static final long serialVersionUID = 1L; public CheckUser(){
super();
} @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//从网页获取输入的用户名和密码
String username = new String(req.getParameter("username").getBytes("iso-8859-1"), "utf-8");
String password = req.getParameter("password"); //在控制台打印从网页获取到的用户名
System.out.println(username); //判断用户名和密码是否为空
if (username!=null && password!=null){
boolean flag= User.CheckUser(username,password);
//通过flag返回值 为true就会执行if,false就会执行else
if (flag){
req.getRequestDispatcher("/pages/user/login_success.html").forward(req, resp);
}else{
//req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp);
}
}else{
System.out.println("用户的输入为空");
}
}
}
/**
* Copyright (C), 2017-2017
* FileName: Add
* Author: ichimoku
* Date: 2017/12/5 16:01
* version: 7.9.0
* <Author> <Date> <version>
* 作者姓名 修改时间 版本号
*/
@WebServlet(name="AddUser",urlPatterns="/servlet/AddUser")
public class AddUser extends HttpServlet {
private static final long serialVersionUID = 1L; public AddUser(){
super();
} @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//从网页获取输入的用户名和密码
String username = new String(req.getParameter("username").getBytes("iso-8859-1"), "utf-8");
String password = req.getParameter("password"); //在控制台打印从网页获取到的用户名
System.out.println(username); //判断用户名和密码是否为空
if (username!=null && password!=null){
boolean flag=User.CheckUser(username,password);
//通过flag返回值 为true就会执行if,false就会执行else,因为我们要新增用户,如果返回ture就说明
//这个账号已经有人使用,所以我们要提示注册失败,如果返回false,说明数据库里没有这个账号,可以注册
//在else里运行AddUser的方法,成功数据库在数据库里新增注册数据!
if (flag){
//req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp);
}else{
//req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp);
User.AddUser(username,password);
req.getRequestDispatcher("/pages/user/login_success.html").forward(req, resp);
}
}else{
System.out.println("用户的输入为空");
}
}
}
/**
* Copyright (C), 2017-2017
* FileName: Update
* Author: ichimoku
* Date: 2017/12/5 16:05
* version: 7.9.0
* <Author> <Date> <version>
* 作者姓名 修改时间 版本号
*/ @WebServlet(name="UpdateUser",urlPatterns="/servlet/UpdateUser")
public class UpdateUser extends HttpServlet {
private static final long serialVersionUID = 1L; public UpdateUser(){
super();
} @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//从网页获取输入的用户名和密码
String username = new String(req.getParameter("username").getBytes("iso-8859-1"), "utf-8");
String password = req.getParameter("password");
String newpassword = req.getParameter("newpassword"); //在控制台打印从网页获取到的用户名
System.out.println(username); //判断用户名和密码是否为空
if (username!=null && password!=null){
boolean flag=User.CheckUser(username,password);
//通过flag返回值 为true就会执行if,false就会执行else,因为我们要修改密码,所以当返回true,说明用户输入的账号密码
// 和数据库匹配成功!所以我们在if下面执行UpdateUser方法,修改数据库数值!
if (flag){
User.UpdateUser(newpassword,username,password);
req.getRequestDispatcher("/pages/user/login_success.html").forward(req, resp);
}else{
//req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp);
}
}else {
System.out.println("用户的输入为空");
}
}
}
Web实现数据库链接的登录注册修改密码功能的更多相关文章
- node+mysql+express实现登录/注册/修改密码/删除用户 接口
实现用户的注册.登录.修改密码.删除用户操作 用到的数据库:nodecms:表:user 目录结构: db目录下存放数据库操作语句: userSQL.js 用户有关的操作语句 router目录 接口路 ...
- Email接收验证码,以实现登录/注册/修改密码
要求 1)实现Email形式的注册功能和相应的登录功能:2)实现忘记密码时的密码找回功能:3)存在数据库中的密码不能以明文形式存放,即建议在浏览器端发送请求前,调用js代码对用户的密码做md5加密 分 ...
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等
http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...
- openfire Android学习(一)----实现用户注册、登录、修改密码和注销等
以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...
- MySql添加用户,新建数据库,用户授权,删除用户,修改密码
转自:http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html MySql中添加用户,新建数据库,用户授权,删除用户,修改 ...
- python-登录-注册-修改密码
该脚本实现了,登录,注册,修改密码功能. #!/usr/bin/env python # -*- coding:utf-8 -*- #pangguoping import os def login(u ...
- 清除SQL Server 2008记住的数据库地址、登录名和密码
在服务器上登录过数据库信息,并且选择了记住了密码,由于服务器数据库很多人在使用,有必要删除信息 定位到fileC:\Users\%username%\AppData\Roaming\Microsoft ...
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
- 【转】Encrypt ConnectionString in Web.Config 【加密ASP.NET web.config数据库链接字串】
原文链接:https://www.codeproject.com/Tips/795135/Encrypt-ConnectionString-in-Web-Config web.config中一般会存放 ...
随机推荐
- motto - Express 4.x Request对象获得参数方法
本文搜索关键字:motto express node js nodejs javascript request body request.body 1. req.param() 该方法获得参数最为方便 ...
- linux特殊权限位suid
特殊权限位基本说明(了解): linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限: suid s(x) S 4 用户对应的权限位(用户对应的3位 ...
- 记一次微信小程序在安卓的白屏问题
在做小程序的时候,做到了一个限时商品售卖,用到了倒计时,因为这个原因导致了安卓手机上使用小程序时,将小程序放入后台运行一段时间后,再次进入小程序后出现了页面白屏或者点击事件失效的情况,这里记录下 1. ...
- IDEA工具配置weblogic
1.首先打开IDEA,点击Run-Edit Configurations… 2.配置weblogic页面 2.1点击“+”号,选WeblogicServer-local 2.2红框的是新添加的服务,起 ...
- Python__学习路上的坑之--引用,浅拷贝,深拷贝
copy : 相当于只是拷贝表面一层,如果里面还有深层次的引用,那么也是直接拷贝引用的地址,而且如果拷贝对象是不可变类型比如元组,那么也是直接拷贝引用. deepcopy: 无论是拷贝可变类型还是不可 ...
- swoole学习(一)----linux安装swoole
1.下载swoole 登录swoole官网 https://www.swoole.com/ 点击下载,找到github或者其他链接下载下来 放到虚拟机上. 也可以使用虚拟机下载 2.登录虚拟机 推荐使 ...
- python网络爬虫入门范例
python网络爬虫入门范例 Windows用户建议安装anaconda,因为有些套件难以安装. 安装使用pip install * 找出所有含有特定标签的HTML元素 找出含有特定CSS属性的元素 ...
- 笔记-python-元类metaclass
笔记-python-元类metaclass 1. 元类 1.1. 类也是对象 class Person(object): pass 上面的代码会在内存中创建一个类,它也是对象, 可以将 ...
- Android面试收集录 Android入门
1.Android的特点有哪些? 编程语言是Java或Kotlin,Android中的Java字节码是允许在Dalvik虚拟机上的 支持4大组件 Android内置了WebKit核心的浏览器,支持H5 ...
- Android 人脸识别
Android人脸识别技术,可以参考下面的网站. http://www.faceplusplus.com.cn/ 本项目使用的就是该网站的api. 项目具体使用的技术代码 /** * 用来压缩图片的方 ...