/**
* 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实现数据库链接的登录注册修改密码功能的更多相关文章

  1. node+mysql+express实现登录/注册/修改密码/删除用户 接口

    实现用户的注册.登录.修改密码.删除用户操作 用到的数据库:nodecms:表:user 目录结构: db目录下存放数据库操作语句: userSQL.js 用户有关的操作语句 router目录 接口路 ...

  2. Email接收验证码,以实现登录/注册/修改密码

    要求 1)实现Email形式的注册功能和相应的登录功能:2)实现忘记密码时的密码找回功能:3)存在数据库中的密码不能以明文形式存放,即建议在浏览器端发送请求前,调用js代码对用户的密码做md5加密 分 ...

  3. Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等

    http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...

  4. openfire Android学习(一)----实现用户注册、登录、修改密码和注销等

    以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...

  5. MySql添加用户,新建数据库,用户授权,删除用户,修改密码

    转自:http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html MySql中添加用户,新建数据库,用户授权,删除用户,修改 ...

  6. python-登录-注册-修改密码

    该脚本实现了,登录,注册,修改密码功能. #!/usr/bin/env python # -*- coding:utf-8 -*- #pangguoping import os def login(u ...

  7. 清除SQL Server 2008记住的数据库地址、登录名和密码

    在服务器上登录过数据库信息,并且选择了记住了密码,由于服务器数据库很多人在使用,有必要删除信息 定位到fileC:\Users\%username%\AppData\Roaming\Microsoft ...

  8. android安卓Sqlite数据库实现用户登录注册

    看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...

  9. 【转】Encrypt ConnectionString in Web.Config 【加密ASP.NET web.config数据库链接字串】

    原文链接:https://www.codeproject.com/Tips/795135/Encrypt-ConnectionString-in-Web-Config web.config中一般会存放 ...

随机推荐

  1. STL 之 set的应用

    关于set Set是STL中的一个容器,特点是其中包含的元素值是唯一的,set根据其底层实现机制分为hash存储和红黑树存储两种方式,这两种结构最本质的区别就是有序和无序,红黑树的存储是有序的而has ...

  2. 【shell脚本学习-1】

    Shell学习笔记 简介: Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...

  3. js如何获得系统时间年月日时分秒

    javascript 自带有个对象(构造函数),Date().下面是代码: 回答一: var now = new Date();  var nowTime = now.toLocaleString() ...

  4. &、|、~与&&、||、! 谬误

    按位运算符(&.|.~)的操作是被默认为一个二进制的位序列,分别对其中的每个位进行操作. 逻辑运算符(&&.||.!)将操作数当成非真及假,非假及真.通常就是将0当成假,非0即 ...

  5. Django+vue在腾讯云上搭建前后端分离项目

    最近打算用Django+vue搭建一个个人主站,在此记录一下搭建项目的整个过程. 一 开发环境: 腾讯云Centos     7 Python                3.7 Django    ...

  6. 进程、线程、协程和GIL(二)

    上一篇博客讲了进程.线程.协程和GIL的基本概念,这篇我们来说说在以下三点: 1> python中使用threading库来创建线程的两种方式 2> 使用Event对消来判断线程是否已启动 ...

  7. CentOS 使用 LAMP 环境开启 SSL 搭建 WordPress

    环境阿里云新装CentOS 7.4, 使用yum(非编译安装)搭建LAMP, CA证书为阿里云免费提供的, WordPress为官网下载 安装 LAMP 并开启 HTTPS 1, 关闭防火墙 # sy ...

  8. linux c 调用子文件函数

    今天在学习初级linux c的时候遇到了如下问题:通过主函数调用同路径下的子文件函数调用失败.博主是这样一一解决的: 首先:hello.c: hello.c: #include<bool.c&g ...

  9. 使用MD5比较两个文件是否相同

    MD5算法:是计算机广泛使用的一种哈希算法,将数据(如汉字)运算为另一固定长度值,用于确保信息传输完整一致.java,C++ 等多种编程语言都有MD5的实现,可直接使用. 文件MD5值:每个文件都可以 ...

  10. 14 Django的用户认证组件

    用户认证 auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1.1 .authentica ...