环境: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. MFC入门经典

    今天向同学请教了下MFC的入门问题,当真有种"听君一席话,胜读十年书"的感觉.我个人以为每个学习C++控制台类型编程的新手都希望能够把小黑窗变为交互简单的窗口程序,这就促使我们学习 ...

  2. C++对Lua中table进行读取、修改和创建

    C++代码: // LuaAndC.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #i ...

  3. Unity3D的坑系列:你真想发布WinPhone版吗?

    Unity 4.2加入了支持WinPhone发布,本来是一件令人开心的事情,不过最近听了Unity技术支持的一个事情后就发现,原来发布WinPhone版也是一个坑. 实际上如果你用Unity做小游戏发 ...

  4. classmethod VS staticmethod

  5. 用sysbench压测MySQL,通过orzdba监控MySQL

    1.1 安装sysbench wget https://codeload.github.com/akopytov/sysbench/zip/0.5 unzip 0.5 cd sysbench-0.5/ ...

  6. springboot整合redis单机及集群

    一.单机配置 properties配置 #单机redis spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.passwor ...

  7. 病症:arm启动后应用程序界面显示…

    病症:病症:arm启动后应用程序界面显示不正常(左面有部分未能正常显示)也就是左面少一块区域,右面多一部, 原因:lcd显示驱动中场扫描的问题 平台:s3c2416.linux2.6.800*480l ...

  8. Animation Parameter

    [Animation Parameter] Animation Parameters are variables that are defined within the animation syste ...

  9. C# 读取文件中的sql语句 创建数据库以及表结构

    大概思路是: 读取文件 根据文件中行内容为GO 作为分割  一条条放到list中 然后在程序中逐条执行sql语句; 值得一提的是 创建数据库的语句是不允许放到程序事务中执行的 所以目前我是分了两个文本 ...

  10. 【原创】3. MYSQL++ Query类型与SQL语句执行过程(非template与SSQLS版本)

    我们可以通过使用mysqlpp:: Query来进行SQL语句的增删改查. 首先来看一下mysqlpp::Query的一些最简单的调用, conn.connect(mysqlpp::examples: ...