servlet-mysql实现简单用户登录注册
环境: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实现简单用户登录注册的更多相关文章
- Java Spring+Mysql+Mybatis 实现用户登录注册功能
前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...
- DBCP(MySql)+Servlet+BootStrap+Ajax实现用户登录与简单用户管理系统
目 录 简介 本次项目通过Maven编写 本文最后会附上代码 界面截图 登录界面 注册界面 登录成功进入主页 增加用户操作 删除用户操作 修改用户操作 主要代码 Dao层代码 DBCP代码 Se ...
- jsp+servlet+mysql 实现简单的银行登录转账功能
jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
- javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- MYSQL存储过程实现用户登录
MYSQL存储过程实现用户登录 CREATE DEFINER=`root`@`%` PROCEDURE `uc_session_login`( ), ) ) LANGUAGE SQL NOT DETE ...
随机推荐
- maven学习5 构建MyBatis项目
2. 修改pom.xml,添加MyBatis依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=& ...
- MFC调试的几个技巧
TCHAR pStr[] = _T("this is a test!"); void* p = (void*)pStr; TRACE(_T("pStr is %s\n&q ...
- 安全测试回顾(一)补充:burp 的基本操作
浏览器设置; 拦截请求: Spider 伪造请求: 对这个url 伪造请求 拦截一个页面后,进入攻击模块 sniper 两个参数值 保证一个不变 另一个 进行枚举 battering ram 两个 ...
- Centos7.2:搭建Ceph管理系统Inscope
0.引言 好几天没有更新博客了,这几天分配有任务:calamari与inscope管理系统调研.下面就管理系统的环境搭建做一个总结,总结一下搭建流程以及搭建过程中遇到的一些问题.calcamari的搭 ...
- Three.js创建运动立体几何体示例
效果图 安装 帧率统计工具 变量控制GUI demo 效果图 安装 npm install three 帧率统计工具 // 监听动画帧率 var Stats = function () { var m ...
- apache配置多个虚拟主机 localhost访问不了解决方案
在httpd-vhosts.conf,重定向localhost <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.exampl ...
- Eclipse使用hibernate插件反向生成实体类和映射文件
一般dao层的开发是这样的,先进行数据库的设计,什么E-R图之类的那些,然后选择一款数据库产品,建好表.最后反向生成Java实体和映射文件,这样可以保证一致性和便捷性. 如果用myeclipse,逆向 ...
- GBK/ UTF-8/ UNICODE(字符编码)
在python2中:如果执行程序,在编译器中,因为默认的编码是ASCII码(英文),所以如果输入中文就会出现乱码,因此为了避免这种乱码的情况发生,在输入中文字符串之后,必须进行手动转码,将GBK/ U ...
- MSSQL列记录合并
创建表及插入数据 If OBJECT_ID(N'Demo') Is Not Null Begin Drop Table Demo End Else Begin Create Table Demo( A ...
- ubuntu下源码方式安装php5.4
一.安装前准备 下载php-5.4.13.tar.gz最新版本放到/user/src目录下 二.安装 因为在安装php过程中,会依赖安装很多库,为了不让你反复安装,建议按步骤操作 安装autoconf ...