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中一般会存放 ...
随机推荐
- js动画之无缝滚动
效果图如下: HTML代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- Linux nohup 关闭终端的时候,程序依然能在后台运行( linux重定向及nohup不输出的方法)
先说一下linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出.在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标号 ...
- 还在使用pdf、word简历?简单五步实现github托管个人逼格简历
写在前面: 什么是git.github? git 版本控制工具 github 通过git工具做的版本控制的项目托管平台 项目开发肯定不止一个程序猿,多个程序猿针对同一个文件进行代码读写操作时,是先保存 ...
- Java OOP——第五章 异常
1. 尝试通过if-else来解决异常问题: Eg: public class Test2 { public static void main(String[] args) { ...
- Android面试收集录 Android布局
1.请说出Android中的五种布局,并介绍作用? FrameLayout(堆栈布局),层叠方式显示,类似于PhotoShop上的层叠图层. LinearLayout(线性布局),将视图以水平或者垂直 ...
- BZOJ 3027: [Ceoi2004]Sweet
容斥 #include<cstdio> using namespace std; int a,b,n,m[15]; long long ans=0,mod=2004; long long ...
- Java从后台重定向(redirect)到另一个项目的方法
(1)通过ModelAndView跳转 @RequestMapping("alipayforward") public ModelAndView alipayforward(Htt ...
- SLB 7层负载均衡“HUNG”问题追查
最近接到博客园的反馈,SLB 7层负载均衡的实例会不定期出现流量突跌的情况,突跌持续10s左右:同时,SLB自身监控也观察到了相同的现象: 针对该问题,我们进行了持续追查,最终定位到是nginx配置的 ...
- 《Cracking the Coding Interview》——第1章:数组和字符串——题目7
2014-03-18 01:55 题目:给定一个MxN矩阵,如果某个元素为0,则将对应的整行和整列置为0. 解法:单独挑出一行和一列作为标记数组.因为某元素为0就全部置为0,所以不论A[i][j]为0 ...
- USACO Section1.2 Dual Palindromes 解题报告
dualpal解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...