Java Web实现简单登录、数据库增删改查(用户列表)

Java Web实现简单登录、数据库增删改查(用户列表)

Java Web 基础

此文章是笔者初学java web所写的一个小demo 没有经过系统的学习和实战 页面和功能都比较简陋 但作为java web入门还是值得参考一下的

目录结构

  1. controller层主要是增删查改以及登录等的servlet实现
  2. dao层主要涉及用户列表的查询(数据库)
  3. entity层主要是User实体类
  4. service层主要是处理登录逻辑
  5. web目录下是jsp文件等
    其实我现在看我这目录结构……一言难尽 反正当时就是这样做的 我也懒得改了 先这样吧哈哈哈
    目录结构

具体代码

  1. User实体类:
    简单的定义属性,然后生成getter/setter方法
public class User {
    private int id;
    private String name;
    private int age;

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    private String pwd;

    public User() {

    }

    public User(int id, String name, int age, String pwd) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

  1. 登录界面 index.jsp
    简单的登录界面 登录由ajax发起
<%--
  Created by IntelliJ IDEA.
  User: Rtwo
  Date: 2020/3/23
  Time: 20:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
        $(function () {
            $("#login").click(function () {
                var username = $("#username").val();//取值
                var password = $("#password").val();
                if (!username) {
                    alert("用户名必填!");
                    $("#username").focus();//获取焦点
                    return;
                }
                if (!password) {
                    alert("密码必填!");
                    $("#password").focus();//获取焦点
                    return;
                }
                $.ajax({
                    url: "login",
                    type: "post",
                    data: {
                        username: username,
                        password: password
                    },
                    dataType: "text",
                    success: function (data) {
                        if (data === '1') {
                            window.location.href = "userlist?name="+username+"&pwd="+password;
                        } else {
                            alert("用户名或密码错误!请重新输入!");
                        }
                    },
                    error: function () {
                        alert("错误");
                    }
                });
            });
        });
    </script>
    <title>登录</title>
</head>
<body>
<center>
    <h1>登录</h1>
    <table border="0">
        <tr>
            <td>账号:</td>
            <td><input type="text" class="loginform_input" id="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" class="loginform_input" id="password">
            </td>
        </tr>
    </table>
    <br>
    <input id="login" type="submit" class="loginform_submit" value="登录">
</center>
</body>
</html>
  1. UserListServlet.class
    登录成功后转到这里,从数据库查询用户表,再将查到的数据传给main.jsp
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

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 javax.servlet.http.HttpSession;

import com.bosssoft.hr.train.web.entity.User;
import com.bosssoft.hr.train.web.util.DbUtil;
import lombok.extern.slf4j.Slf4j;


/**
 * @author Rtwo
 */
@Slf4j
@WebServlet("/UserListServlet")
public class UserListServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");

        Connection conn = DbUtil.getConn();
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select * from t_user";
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        List<User> users = new ArrayList<>();
//        int index = -1;
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                User user = new User(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getString(4));
                users.add(user);
            }
//            for (int i = 0; i < users.size(); i++) {
//                if (name.equals(users.get(i).getName()) && pwd.equals(users.get(i).getPwd())) {
//                    index = i;
//                }
//            }
        } catch (Exception e) {
            log.info(e.getMessage());
        } finally {
            DbUtil.closeConn(conn, ps, rs);
        }
        HttpSession session = request.getSession();
        session.setAttribute("userList", users);
//        session.setAttribute("current", index);
        response.sendRedirect("main.jsp");
    }
}

  1. 主界面 main.jsp
    在此界面可以操作增删查改
<%@ page import="com.bosssoft.hr.train.web.entity.User" %>
<%@ page import="java.util.List" %>
<%--
  Created by IntelliJ IDEA.
  User: 13701
  Date: 2020/3/23
  Time: 19:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>操作用户</title>

</head>
<body>

<%
    //    int index = (int) session.getAttribute("current");
    List<User> users = (List) session.getAttribute("userList");
%>
<%--<center>--%>
<%--    <a>当前用户:</a>--%>
<%--    <a id="current"><%=users.get(index).getName()%>--%>
<%--    </a>--%>
<%--</center>--%>
<table border="1" cellspacing="0" align="center" width="1000dp"
       height="500dp">
    <thead>
    <tr>
        <td>
            编号
        </td>
        <td>
            姓名
        </td>
        <td>
            年龄
        </td>
        <td>
            操作
        </td>
    </tr>
    </thead>
    <tbody>
    <tr>

        <%
            for (User user : users) {
        %>
        <td><%=user.getId()%>
        </td>
        <td><%=user.getName()%>
        </td>
        <td><%=user.getAge()%>
        </td>
        <td>
            <a href="delete?id=<%=user.getId() %>">删除</a>
            <a href="updateshow?id=<%=user.getId() %>">更新</a>
        </td>
    </tr>
    <%
        }
    %>
    </tbody>
</table>
<center>
    <a href="insert.jsp">新增</a>
    <a href="search.jsp">查询</a>
</center>
</body>
</html>

  1. 删除用户 DeleteServlet.class
import com.bosssoft.hr.train.web.util.DbUtil;
import lombok.extern.slf4j.Slf4j;

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.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author Rtwo
 */
@Slf4j
@WebServlet("/DeleteServlet")
public class DeleteServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doPost(request, response);
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        //接受到将要删除的id
        String id = request.getParameter("id");

        Connection conn = DbUtil.getConn();
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "delete from t_user where id = ?";

        try {
            ps = conn.prepareStatement(sql);
            ps.setString(1, id);
            response.sendRedirect("UserListServlet");
        } catch (SQLException e) {
            log.info(e.getMessage());
        } finally {
            DbUtil.closeConn(conn, ps, rs);
        }
    }
}

  1. 更新用户界面逻辑 UpdateShowServlet.class
import com.bosssoft.hr.train.web.util.DbUtil;
import lombok.extern.slf4j.Slf4j;

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.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author Rtwo
 */
@Slf4j
@WebServlet("/UpdateShowServlet")
public class UpdateShowServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }


    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        String id = request.getParameter("id");
        //获取要删除数据的id
        Connection conn = DbUtil.getConn();
        //查询出该id的所有字段内容
        String sql = "select * from t_user where id=?";
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {
            ps = conn.prepareStatement(sql);
            ps.setString(1, id);
            rs = ps.executeQuery();
            if (rs.next()) {
                request.setAttribute("id", rs.getInt(1));
                request.setAttribute("name", rs.getString(2));
                request.setAttribute("age", rs.getInt(3));
                /*
                 *将数据发送到一个jsp页面,在该页面进行人工的数据的修改
                 */
                request.getRequestDispatcher("update.jsp").forward(request, response);
            }
        } catch (SQLException e) {
           log.info(e.getMessage());
        } finally {
            DbUtil.closeConn(conn, ps, rs);
        }

    }
}

  1. 更新用户界面 update.jsp
<%@ page import="com.bosssoft.hr.train.web.entity.User" %>
<%@ page import="java.util.List" %>
<%--
  Created by IntelliJ IDEA.
  User: 13701
  Date: 2020/3/23
  Time: 19:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>更新用户</title>

</head>
<style type="text/css">
    .input1 {
        border: 1px solid #CDC28D; /* 输入框表框颜色*/
        background-color: #F2F9FD; /* 输入框背景颜色*/
        height: 40px; /*输入框高度*/
        width: 200px; /*输入框宽度*/
        padding-top: 4px;
        /*输入框里的文字和输入框上边之间的距离
             font-family: Arial, Helvetica, sans-serif; /*输入框文字类型*/
        font-size: 12px; /*输入框内文字大小*/
        padding-left: 10px; /*输入框里的文字和输入框左边之间的距离*/
    }

    .input2 {
        border: 1px solid #1E1E1E; /* 输入框表框颜色*/
        background-color: #F2F9FD; /* 输入框背景颜色*/
        height: 30px; /*输入框高度*/
        width: 80px; /*输入框宽度*/
    }
</style>

<body>
<form action="UpdateServlet" method="post">
    <table align="center">
        <tr height="150dp">
            <td></td>
        </tr>
        <tr>
            <td colspan="2"><h1>用户更新</h1></td>
        </tr>
        <tr>
            <td>ID:</td>
            <td><input class="input1" type="text" name="id" readonly="readonly"
                       value="<%=request.getAttribute("id") %>"/></td>
        </tr>
        <tr>
            <td>姓名:</td>
            <td><input class="input1" type="text" name="name" value="<%=request.getAttribute("name") %>"/></td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td><input class="input1" type="text" name="age" value="<%=request.getAttribute("age") %>"/></td>
        </tr>
        <tr align="center">
            <td colspan="2"><input class="input2" type="submit" value="更新"/></td>
        </tr>
    </table>
</form>
</body>
</html>

  1. 更新用户信息 UpdateServlet.class
    将更新后的数据写到数据库,然后返回主界面
import com.bosssoft.hr.train.web.util.DbUtil;
import lombok.extern.slf4j.Slf4j;

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.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author Rtwo
 */
@Slf4j
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doPost(request, response);
    }


    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");

        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        //获取到要更新的数据

        Connection conn = DbUtil.getConn();
        PreparedStatement ps = null;
        ResultSet rs = null;
        //更新语句
        String sql = "update t_user set name=?, age=? where id=?";

        try {
            ps = conn.prepareStatement(sql);
            ps.setString(1, name);
            ps.setInt(2, Integer.parseInt(age));
            ps.setInt(3, Integer.parseInt(id));
            response.sendRedirect("UserListServlet");

        } catch (SQLException e) {
            log.info(e.getMessage());
        } finally {
            DbUtil.closeConn(conn, ps, rs);
        }
    }
}

最后

其他代码我就不继续贴了 查询和新增的 以此类推 实现方法都差不多

项目地址和实现效果

项目地址(码云):https://gitee.com/Rtwo/demo-java-2.git
效果截图:(我的截屏工具不知道去哪了)
登录
主界面
新增用户
查询用户
查询结果
更新用户

  • 31
    点赞
  • 297
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
### 回答1: Java Web连接数据库增删改查相关操作需要使用JDBC和ORM框架。JDBC是Java中访问关系型数据库的API接口,通过JDBC我们可以用Java代码连接关系型数据库服务器,执行SQL语句、获取查询结果等。ORM(Object-Relational Mapping)则是对象关系映射,通过ORM框架中的映射绑定方式直接使用Java对象操作数据库,方便快捷。在使用的过程中需要注意数据库事务控制和连接池等问题,避免数据库连接过度占用资源。 ### 回答2: Java Web IDE是一个强大的开发工具,它能够在Web平台上创建和管理Java应用程序。登录连接数据库增删改查Java Web应用程序中最常用的一种功能,它使用户能够在应用程序中操作数据库中的数据。 Java Web应用程序可以使用多种技术来连接数据库,如Java Database Connectivity(JDBC)和Object-relational Mapping(ORM)框架。其中JDBC是最基础的技术,ORM框架则提供更高层次的抽象和便利。 下面将从JDBC和ORM框架两个方面介绍如何在Java Web IDE中实现登录连接数据库增删改查。 一、使用JDBC连接数据库实现增删改查 1. 导入JDBC驱动程序 在Java Web项目中使用JDBC连接数据库需要导入对应的JDBC驱动程序,比如MySQL驱动、Oracle驱动等。导入驱动包后,需要将驱动注册到程序中。 2. DatabaseUtils类 创建DatabaseUtils类来操作数据库,并定义静态方法getConnection()获取数据库连接。在getConnection()中使用驱动程序的DriverManager类获取数据库连接。 3. 增删改查操作 在DatabaseUtils类中定义各种增删改查操作的方法,比如insert()、delete()、update()和select()方法。在这些方法中通过Connection对象创建PreparedStatement对象,设置SQL语句并执行,然后返回结果集。 二、使用ORM框架连接数据库实现增删改查 1. 导入ORM框架 在Java Web项目中使用ORM框架连接数据库需要导入对应的ORM框架,比如Hibernate、MyBatis等。导入框架后,需要配置Hibernate.cfg.xml文件或MyBatis.xml文件。 2. 与数据库交互 在Java Web项目中,可以通过Hibernate的Session对象或MyBatis的SqlSession对象来与数据库交互。在实现增删改查操作时,需要创建对应的POJO类和映射文件,比如User类和User.hbm.xml或User.xml文件。这些文件中定义了Java对象与数据库表之间的映射关系。 3. 增删改查操作 在Java Web项目中,通过操作Session对象或SqlSession对象来实现各种增删改查操作。比如通过Hibernate的Session对象的save()方法来实现插入操作;通过MyBatis的SqlSession对象的insert()方法来实现插入操作。 总之,无论是使用JDBC还是ORM框架,都需要对Java Web应用程序进行详细的设计和开发。增删改查功能只是应用程序的一部分,需要在整个应用程序中进行适当的集成和开发。 ### 回答3: Java Web IDEA 是一款基于 Java Web 技术的集成开发环境,开发者可以利用该工具快速实现 Web 应用程序的开发和部署。在 Web 应用程序开发过程中,数据库是非常重要的一环,因为应用程序需要通过数据库存储和管理数据。因此,在 Java Web IDEA 中,如何登录连接数据库、进行增删改查是非常重要的技能。 Java Web IDEA 的登录连接数据库有多种方式,其中最常用的方式是使用 JDBC API 来连接数据库。 JDBC(Java DataBase Connectivity) 是 Java 数据库连接 API 的标准规范,开发者可以通过 JDBC API 来连接不同的数据库,并进行数据操作。使用 JDBC API 连接数据库的过程如下: 1. 加载数据库驱动程序 在 Java Web 项目中使用 JDBC API 前,需要先加载数据库驱动程序,常见的 JDBC 驱动程序有 MySQL、Oracle、MSSQL 等。加载驱动程序的方法如下: Class.forName("com.mysql.jdbc.Driver"); 2. 创建数据库连接 使用 DriverManager 类的 getConnection() 方法来创建数据库连接对象,并指定连接参数,例如 URL、用户名和密码等。示例代码如下: Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); 其中,test 为数据库名称,root 为用户名,password 为密码。 3. 创建 SQL 语句 在 Java Web IDEA 中,可以使用 SQL 语句来对数据库进行增删改查操作。例如,下面是一个查询用户信息的 SQL 语句: SELECT * FROM user WHERE username='admin'; 4. 执行 SQL 语句 使用 JDBC API 中的 Statement 或 PreparedStatement 类可以执行 SQL 语句。例如,使用 Statement 类执行 SQL 查询语句的代码如下: Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM user WHERE username='admin'"); 5. 处理查询结果 执行 SQL 查询语句后,可以使用 ResultSet 对象来处理查询结果。例如,使用 ResultSet 对象输出查询结果的代码如下: while(rs.next()){ System.out.println("username:" + rs.getString("username")); System.out.println("password:" + rs.getString("password")); } 除了查询操作,还可以使用 SQL 语句进行插入、更新和删除等操作。例如,下面是一个插入用户信息的 SQL 语句: INSERT INTO user(username,password) VALUES('admin','admin123'); 使用 JDBC API 执行插入操作的代码如下: Statement stmt = conn.createStatement(); int result = stmt.executeUpdate("INSERT INTO user(username,password) VALUES('admin','admin123')"); 总之,在 Java Web IDEA 中启动数据库服务并进行增删改查操作需要以下几个步骤:加载数据库驱动程序、创建数据库连接、创建 SQL 语句、执行 SQL 语句并处理查询结果。这些步骤需要融合 Java Web 和关系型数据库的知识,开发者需要具备扎实的 Java 和 SQL 技术功底,才能够掌握 Java Web IDEA 的数据库操作。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值