项目案例模板之登录注册的实现

案例演示

案例代码

设计表

pom.xml

 <dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.0.5</version>
  </dependency>
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>RELEASE</version>
    <scope>compile</scope>
  </dependency>
 </dependencies>

jdbc

JDBCUtils.java
 package jdbc;
 ​
 import org.junit.jupiter.api.Test;
 ​
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 ​
 public class JDBCUtils {
    public static Connection connection;
    private static String url="jdbc:mysql://localhost:3306/aaa?useUnicode=true&characterEncoding=utf-8";
    private static String username="root";
    private static String password="root";
 ​
    static{
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(url,username,password);
 ​
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
 ​
    public static Connection getConnection(){
        return connection;
    }
 ​
    @Test
    public void test(){
        Connection connection = JDBCUtils.getConnection();
        System.out.println(connection);
    }
 }

entity

User.java
 package entity;
 ​
 public class User {
    private int id;
    private String username;
    private String password;
 ​
    public User() {
    }
 ​
    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }
 ​
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
 ​
    public int getId() {
        return id;
    }
 ​
    public void setId(int id) {
        this.id = id;
    }
 ​
    public String getUsername() {
        return username;
    }
 ​
    public void setUsername(String username) {
        this.username = username;
    }
 ​
    public String getPassword() {
        return password;
    }
 ​
    public void setPassword(String password) {
        this.password = password;
    }
 }

dao

UserDao.java
 package dao;
 ​
 import entity.User;
 import jdbc.JDBCUtils;
 ​
 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 connection = JDBCUtils.getConnection();
    private PreparedStatement ps;
 ​
    /*
    *添加用户
    * */
    public int add(User user) throws Exception{
        String sql = "insert into user(username,password) values(?,?)";
 ​
            ps=connection.prepareStatement(sql);
            ps.setObject(1,user.getUsername());
            ps.setObject(2,user.getPassword());
            int exe = ps.executeUpdate();
            return exe;
    }
    public int delete(int id) throws SQLException {
        String sql = "delete from user where id=?";
        ps = connection.prepareStatement(sql);
 ​
        /*
          * 删除用户
          * */
        ps.setObject(1,id);
        int exe = ps.executeUpdate();
        return exe;
    }
 ​
    /*
    * 修改用户
    * */
    public int update(User user) throws SQLException {
        String sql = "update user set username=? , password=? where id=?";
        ps = connection.prepareStatement(sql);
        ps.setObject(1,user.getUsername());
        ps.setObject(2,user.getPassword());
        ps.setObject(3,user.getId());
          return ps.executeUpdate();
 ​
    }
 ​
    /*
    * 查询所有用户
    * */
    public List<User> findAll() throws SQLException {
        String sql = "select * from user";
        ps=connection.prepareStatement(sql);
        ResultSet rs =ps.executeQuery();
        List<User> list = new ArrayList<User>();
        while(rs.next()){
            //以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。
            int id = rs.getInt("id");
            String username = rs.getString("username");
            String password = rs.getString("password");
            User u = new User(id,username,password);
            list.add(u);
 ​
        }
        return list;
    }
 ​
 /*
 * 通过id查询用户
 * */
    public User findById(int id) throws SQLException {
        String sql = "select * from user where id=?";
        ps=connection.prepareStatement(sql);
        ps.setInt(1,id);
        ResultSet rs = ps.executeQuery();
 ​
        User u = null;
        while (rs.next()){
            int uid = rs.getInt("id");
            String username = rs.getString("username");
            String password = rs.getString("password");
 ​
 ​
            u = new User(uid,username,password);
        }
 ​
        return u;
    }
 ​
 ​
    /*
    * 用户登录
    * */
    public User login(User user) throws SQLException {
        String sql = "select * from user where username=? and password=?";
        ps = connection.prepareStatement(sql);
        ps.setObject(1,user.getUsername());
        ps.setObject(2,user.getPassword());
 ​
        ResultSet rs = ps.executeQuery();
        User u = null;
 ​
        while (rs.next()){
            int uid = rs.getInt("id");
            String username = rs.getString("username");
            String password = rs.getString("password");
            u = new User(uid,username,password);
        }
 ​
        return u;
    }
 }

service

UserService.java
 package service;
 ​
 import dao.UserDao;
 import entity.User;
 ​
 import java.sql.SQLException;
 import java.util.List;
 ​
 public class UserService {
    private UserDao userDao = new UserDao();
 ​
    public int add(User user) throws Exception {
        return userDao.add(user);
    }
 ​
    public int delete(int id) throws SQLException {
        return userDao.delete(id);
    }
 ​
    public int update(User user) throws SQLException {
        return userDao.update(user);
    }
 ​
    public List<User> findAll() throws SQLException {
        return userDao.findAll();
 ​
    }
 ​
    public User findByID(int id) throws SQLException {
        return userDao.findById(id);
    }
 ​
    public User login(User user) throws SQLException {
        return userDao.login(user);
    }
 }

servlet

LoginServlet.java
 package servlet;
 ​
 import entity.User;
 import service.UserService;
 ​
 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;
 import java.sql.SQLException;
 ​
 @WebServlet("/login")
 public class LoginServlet extends HttpServlet {
 ​
    @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 {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
 ​
        //接受请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
 ​
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
 ​
        //查询数据
        UserService us = new UserService();
        User u = null;
 ​
        try {
            u=us.login(user);
            //跳转
            if (u==null){
                req.setAttribute("mess","账号或密码错误");
                req.getRequestDispatcher("login.jsp").forward(req,resp);
            }else {
                req.getSession().setAttribute("user",u);
                resp.sendRedirect("main.jsp");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
 ​
 ​
 ​
 ​
    }
 }
RegServlet.java
 package servlet;
 ​
 import dao.UserDao;
 import entity.User;
 ​
 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("/reg")
 public class RegServlet extends HttpServlet {
    @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 {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
 ​
        //接受请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
 ​
        User u = new User();
        u.setUsername(username);
        u.setPassword(password);
 ​
        UserDao dao = new UserDao();
        int i = 0;
 ​
        try {
            i=dao.add(u);
        } catch (Exception e) {
            e.printStackTrace();
        }
 ​
 ​
        //跳转
        if(i>0){
            req.setAttribute("mess","注册成功");
            resp.sendRedirect("login.jsp");
        }else{
            req.setAttribute("mess","注册失败");
            req.getRequestDispatcher("regist.jsp").forward(req,resp);
        }
 ​
 ​
    }
 }

jsp

web.xml
 <!DOCTYPE web-app PUBLIC
  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd" >
 ​
 <web-app>
  <display-name>Archetype Created Web Application</display-name>
 ​
  <welcome-file-list>
    <welcome-file>regist.jsp</welcome-file>
  </welcome-file-list>
 </web-app>
regist.jsp
 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
 <html>
 <head>
    <title>注册</title>
 </head>
 <body>
 <h1>用户注册</h1>
 <hr>
 <form action="reg" method="post">
    <p>
        用户名:<input type="text" name="username">
    </p>
    <p>
        密码:<input type="text" name="password">
    </p>
    <p>
        <input type="submit" value="注册">
    </p>
 ​
 </form>
 ​
 ${mess}
 ​
 </body>
 </html>
login.jsp
 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
 <html>
 <head>
    <title>登录</title>
 </head>
 <body>
 <h1>用户登录</h1>
 <hr>
 <form action="login" method="post">
    <p>
        用户名:<input type="text" name="username">
    </p>
    <p>
        密码:<input type="text" name="password">
    </p>
    <p>
        <input type="submit" value="登录">
    </p>
 ​
 </form>
 ​
 ${mess}
 ​
 </body>
 </html>
main.jsp
 <%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2019/4/25
  Time: 9:11
  To change this template use File | Settings | File Templates.
 --%>
 ​
 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
 <html>
 <head>
    <title>主页</title>
 </head>
 <body>
 <h1>欢迎使用本系统</h1>
 当前用户:${sessionScope.user.username}
 </body>
 </html>

*****************************************************************************************************

我的博客园地址:https://www.cnblogs.com/zyx110/

登录注册案例(Servlet+JSP+Maven)的更多相关文章

  1. Java基础知识强化之集合框架笔记37:用户登录注册案例

    1. 登录注册案例分析图解: 2. 用户登录案例 详细分析 和 分包实现: (1)用户登录案例详细分析(面向对象思想) 按照如下的操作,可以让我们更符合面向对象思想: • 有哪些类呢?         ...

  2. vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)

    前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...

  3. Servlet jsp maven 依赖包

    servlet<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servl ...

  4. 以登录实现理解Servlet+jsp+JavaBean开发

    写在前面:菜鸟拙见,望请纠正 学过servlet的都知道,书本上一直说servlet一直作为控制器使用,它不实现view层,也不做具体的事务处理,那servlet到底是干什么的哪?怎么合理的用它呐?? ...

  5. Java Web实现登录验证码(Servlet+jsp)

    1.生成验证码图片(Servlet) import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import j ...

  6. 会话跟踪技术 - Cookie 和 Session 快速上手 + 登陆注册案例

    目录 1. 会话跟踪技术概述 2. Cookie 2.1 Cookie的概念和工作流程 2.2 Cookie的基本使用 2.3 Cookie的原理分析 2.4 Cookie的使用细节 2.4.1 Co ...

  7. Java Web项目案例之---登录注册和增删改查(jsp+servlet)

    登录注册和增删改查(jsp+servlet) (一)功能介绍 1.用户输入正确的密码进行登录 2.新用户可以进行注册 3.登录后显示学生的信息表 4.可以添加学生 5.可以修改学生已有信息 6.可以删 ...

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

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

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

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

随机推荐

  1. 对于文本生成类4种评价指标的的计算BLEU METEOR ROUGE CIDEr

    github下载链接:https://github.com/Maluuba/nlg-eval 将下载的文件放到工程目录,而后使用如下代码计算结果 具体的写作格式如下: from nlgeval imp ...

  2. python连接sqlite3

    一.了解sqlite sqlite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是用C写的,而且体积很小,所以经常被集成到各种应用程序中,甚至在IOS和Android的APP中都可以 ...

  3. C++之封装继承和多态

    C++中非常重要的概念,尤其是相对于C语言而言,也是其具有如此高的工程使用性的重要原因. 封装 所谓封装是将某些东西隐藏起来,让外界无法直接使用,而必须通过某些特定的方式才能访问.也即是,将抽象得到的 ...

  4. python图片爬虫 - 批量下载unsplash图片

    前言 unslpash绝对是找图的绝佳场所, 但是进网站等待图片加载真的令人捉急, 仿佛是一场拼RP的战争 然后就开始思考用爬虫帮我批量下载, 等下载完再挑选, 操作了一下不算很麻烦, 顺便也给大家提 ...

  5. java自学-数组

    1.数组是什么 前边说过java的基本数据类型,数组,就是装这些基本类型的容器.每个基本类型的变量都是单个的,数组就是这些单个元素的组合. 2.创建数组 方式一 格式: 数组存储的数据类型[] 数组名 ...

  6. 【linux命令 】文件特殊权限(SUID、SGID、SBIT)

    chmod 2770 /home/admins,刚看到这个命令,有点不解,后边770分别表示用户,组,其他人,前面的2不知道代表的是什么意思.百度之后发现2是代表八进制数,也是一种权限,它的三个bit ...

  7. 朝花夕拾《精通CSS》二、选择器 & 层叠

    一.背景 翻出我4年前看的<精通CSS>一书,可惜当初没有整理读书笔记的习惯,最近又很少写前端,遂很多东西.知识点遗忘了,恰且现在 css 也有些变化和进步,遂一起打包整理,输出成几篇 b ...

  8. 你可能会忽略的 Git 提交规范

    一.为什么需要规范? 无规矩不成方圆,编程也一样. 如果你有一个项目,从始至终都是自己写,那么你想怎么写都可以,没有人可以干预你.可是如果在团队协作中,大家都张扬个性,那么代码将会是一团糟,好好的项目 ...

  9. PAT 1005 Spell It Right 字符串处理

    Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output e ...

  10. ASP.NET MVC Action向视图传值之匿名类型

    在使用ASP.NET MVC过程中想必大家都有遇到过一个问题就是我们的Action如何向视图传递匿名类型的值呢,如果不做特殊处理则无法实现. 接下来我们来看一个示例: 在我们的控制中: using S ...