环境:IDEA Maven

效果截图:

项目结构:

类说明:

ConnectionUtil:负责数据库连接和释放

UserDao:数据库增删改查操作

User:用户Bean,只用注册和登录的话可以不要

UserServlet:Servlet,控制页面跳转

前端就不放了大同小异

 import cn.flyuz.pan.entity.User;
import cn.flyuz.pan.util.Base;
import cn.flyuz.pan.util.ConnectionUtil; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; public class UserDao {
private Connection getConn() {
ConnectionUtil connectionUtil = new ConnectionUtil();
return connectionUtil.getConn();
}
public boolean login(String user, String pw) {
Connection conn = getConn();
String sql = "select * from login where user=? and pw=?"; try {
PreparedStatement ps =conn.prepareStatement(sql);
ps.setString(1,user);
ps.setString(2,pw);
ResultSet rs = ps.executeQuery();
if (rs.next()){
ps.close();
rs.close();
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
} public String reg(String user, String pw) {
Connection conn = getConn();
String sql1= "select * from login where user = ?";
String sql = "insert into login(user,pw) values (?,?)"; try {
PreparedStatement pss = conn.prepareStatement(sql1);
pss.setString(1,user);
ResultSet rs = pss.executeQuery();
if (!rs.next()){
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,user);
ps.setString(2,pw);
ps.executeUpdate();
return Base.registerSuccess;
}else{
return Base.registerFalse;
}
} catch (SQLException e) {
e.printStackTrace();
}
return Base.registerFalse;
} public void del(String user) {
Connection conn = getConn(); //获取连接
String sql = "delete from login where user = ?";//sql语句
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,user);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// public List<User> getAll() {
// Connection conn = getConn();
// String sql = "select * from login";
// try {
// PreparedStatement ps = conn.prepareStatement(sql);
// ResultSet rs = ps.executeQuery();
// List<User> userList = new ArrayList<>();
// while(rs.next()) {
// User user1 = new User();
// user1.setUser(rs.getString("user"));
// user1.setPw(rs.getString("pw"));
// userList.add(user1);
// }
// return userList;
// } catch (SQLException e) {
// e.printStackTrace();
// }
// return null;
// }
// public void update(String user,String pw){
// Connection conn = getConn(); //获取连接
// String sql = "update login set user = ?,pw = ? where id = ?"; //sql语句
// try {
// PreparedStatement ps = conn.prepareStatement(sql);
// //设置参数
// ps.setString(1,user);
// ps.setString(2,pw);
// ps.executeUpdate();
//
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
}

UserDao

 import cn.flyuz.pan.dao.UserDao;
import cn.flyuz.pan.util.Base; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; @WebServlet(name = "UserServlet", urlPatterns = "/loginServlet")
public class UserServlet extends HttpServlet {
private UserDao userDao = new UserDao(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
String type = request.getParameter("type"); switch (type) {
case "login":
login(request, response);
break;
case "reg":
reg(request, response);
break;
// case "del":
// del(request, response);
// break;
// case "getAll":
// getAll(request, response);
// break;
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
} private void login(HttpServletRequest request, HttpServletResponse response) {
String user = request.getParameter("user");
String pw = request.getParameter("pw"); boolean user_login = userDao.login(user, pw);
try {
if (user_login) {
request.getRequestDispatcher("index/index.jsp").forward(request, response);
} else {
String msg = "登陆失败";
request.getSession().setAttribute("msg", msg);
request.getRequestDispatcher("index/login.jsp").forward(request, response);
}
} catch (ServletException | IOException e) {
e.printStackTrace();
}
} private void reg(HttpServletRequest request, HttpServletResponse response) {
String user = request.getParameter("user");
String pw = request.getParameter("pw"); String rs = userDao.reg(user, pw);
if (rs.equals(Base.registerSuccess)) {
try {
request.getRequestDispatcher("index/login.jsp").forward(request, response);
} catch (ServletException | IOException e) {
e.printStackTrace();
}
} else if (rs.equals(Base.registerFalse) || rs.equals(Base.registerRepeated)) {
try {
String msg = "注册失败";
request.getSession().setAttribute("msg", msg);
request.getRequestDispatcher("index/register.jsp").forward(request, response);
} catch (ServletException | IOException e) {
e.printStackTrace();
}
}
}
// private void del(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// String user = request.getParameter("user");
// try {
// userDao.del(user);
// request.getSession().setAttribute("msg", "删除成功!");
// request.getRequestDispatcher("index/index.jsp").forward(request, response);
// } catch (Exception e) {
// e.printStackTrace();
// request.getSession().setAttribute("msg", "删除失败!");
// request.getRequestDispatcher("index/index.jsp").forward(request, response);
// }
// }
// private void getAll(HttpServletRequest request, HttpServletResponse response) {
// request.getSession().setAttribute("userList", userDao.getAll());
// try {
// request.getRequestDispatcher("index/index.jsp").forward(request, response);
// } catch (ServletException | IOException e) {
// e.printStackTrace();
// }
// }
}

UserServlet

 import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection; public class ConnectionUtil {
private String dbDriver = "com.mysql.cj.jdbc.Driver";
private String dbUrl="jdbc:mysql://localhost:3306/login?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC ";
private String dbUser="root";
private String dbPw="123456";
private static Connection conn = null; public Connection getConn() {
try{
Class.forName(dbDriver);
conn = DriverManager.getConnection(dbUrl,dbUser,dbPw);
}catch(ClassNotFoundException|SQLException e){
e.printStackTrace();
}
return conn;
} public static void conClose(){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

ConnectionUtil

 import cn.flyuz.pan.util.ConnectionUtil;

 import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener; @WebListener
public class DBCloseListener implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
ConnectionUtil.conClose();
} @Override
public void contextInitialized(ServletContextEvent arg0) {
}
}

DBCloseListener

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>groupId</groupId>
<artifactId>flyuzP</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
</plugins>
</build> </project>

Maven

servlet-mysql实现简单用户登录注册的更多相关文章

  1. Java Spring+Mysql+Mybatis 实现用户登录注册功能

    前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...

  2. DBCP(MySql)+Servlet+BootStrap+Ajax实现用户登录与简单用户管理系统

    目  录   简介 本次项目通过Maven编写 本文最后会附上代码 界面截图 登录界面 注册界面 登录成功进入主页 增加用户操作 删除用户操作 修改用户操作 主要代码 Dao层代码 DBCP代码 Se ...

  3. jsp+servlet+mysql 实现简单的银行登录转账功能

    jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...

  4. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  5. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  6. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  7. javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  8. JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  9. MYSQL存储过程实现用户登录

    MYSQL存储过程实现用户登录 CREATE DEFINER=`root`@`%` PROCEDURE `uc_session_login`( ), ) ) LANGUAGE SQL NOT DETE ...

随机推荐

  1. Angular2快速入门-1.创建第一个app

    一.环境搭建 Angular2 运行在nodejs 环境下,需要我们先创建好nodejs环境,具体操作   1.下载安装Nodejs,参考网址,https://nodejs.org/en/ 选择64位 ...

  2. IDA Pro 权威指南学习笔记(三) - IDA 桌面简介

    IDA 的默认桌面如下图 工具栏区域(1)包含与 IDA 的常用操作对应的工具,可以使用 View -> Toolbar 显示或隐藏工具栏 可以使用 View -> Toolbars -& ...

  3. flask系列三之Jinja2模板

    1.如何渲染模板 模板在‘templates’文件夹下(htnl页面) 从flask中导入render_template函数---渲染html模板 在视图函数中,使用render_template 函 ...

  4. leetcode375

    public class Solution { public int GetMoneyAmount(int n) { , n + ]; , n); } int DP(int[,] t, int s, ...

  5. uboot重定位代码分析(转)

    概述 重定位(relocate)代码将BootLoader自身由Flash复制到SDRAM,以便跳转到SDRAM执行.之所以需要进行重定位是因为在Flash中执行速度比较慢,而系统复位后总是从0x00 ...

  6. springBean之BeanFactory与ApplicationContext

    一.主要区别: 两者都是通过xml配置文件加载bean,ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,如果Bean的某一个属性 ...

  7. QQ、邮箱、手机号 正则验证

    邮箱:/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ 手机号:/^(((13[0-9]{1})|(15[0-9]{1 ...

  8. tmux上用vim时显示错行

    环境:tmux-master,xshell4,vim7.4,CentOS6.9 tmux在某些版本会出现很奇怪的显示错乱问题,特别是在做替换的时候,只要页面翻动,显示就会乱,命令行会错位显示到状态行, ...

  9. 基于C++11的线程池(threadpool),简洁且可以带任意多的参数

    咳咳.C++11 加入了线程库,从此告别了标准库不支持并发的历史.然而 c++ 对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池.信号量等.线程池(thread pool) ...

  10. codeforce 460DIV2 D题

    感觉这个题不错,对拓扑排序有了更深的了解,用两种拓扑排序都写了些试试. dfs #include <cstdio> #include <algorithm> #include ...