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中一般会存放 ...
随机推荐
- CodeForces_864_bus
C. Bus time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...
- js函数的默认参数
function f(flag, start, end, msg){ flag = flag == false ? flag : true; start = start || null; start ...
- Navicat-12.0.26的激活
1.卸载掉早期版本,卸载干净,然后安装最新版Navicat(使用群文件中Iobit uninstaller8卸载) 2.安装完成后将破解补丁复制到安装目录下,运行破解补丁. 4.先patch,然后选择 ...
- 开发工具cfree安装报错解决
报错如下: [ --------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW-------------------- 检查文件依赖性... 正在编译 ...
- scrapy--json(360美图)
之前开始学习scrapy,接触了AJax异步加载.一直没放到自己博客,趁现在不忙,也准备为下一个爬虫做知识储存,就分享给大家. 还是从爬取图片开始,先上图给大家看看成果,QAQ. 一.图片加载的方法 ...
- Fiddler(一)
Fiddler:学习scrapy,不只是满足于网页上爬去信息的成功乐趣,现在开始接触爬去手机信息了,不好解决,知道过程不会轻松,但自己想去尝试.QAQ 写这篇博客是基于以下的几位大神学习笔记,我只是做 ...
- foreachRDD,foreach,foreachPartition区别联系
foreachRDD(SparkStreaming): SparkStreaming是流式实时处理数据,就是将数据流按照定义的时间进行分割(就是"批处理").每一个时间段内处理到的 ...
- python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
1.问题描述: 爬取链家深圳二手房的详细信息,并将爬取的数据存储到Excel表 2.思路分析: 发送请求--获取数据--解析数据--存储数据 1.目标网址:https://sz.lianjia.com ...
- 图像的模糊-opencv
调用两个API,一个是均值模糊,一个是高斯模糊.如下所示: #include<opencv2/opencv.hpp> #include<iostream> using name ...
- Java-数据结构之二叉树练习
本来这个随笔应该在4月17号就应该发出来的.不巧的是,那天晚上收到了offer,然后接下去两天为入职到处跑,20号入职后一直忙,直到最近几天才有时间看看书.然而20多天前就看完的了二叉树,然后17号那 ...