利用servlet将数据库内容显示到网页上

目录结构

在这里插入图片描述

Student类

package com.wy.pojo;

public class Student {
    private Integer id;
    private String name;
    private Integer sex;
    private Integer gradeId;
    private Integer score;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public Integer getGradeId() {
        return gradeId;
    }

    public void setGradeId(Integer gradeId) {
        this.gradeId = gradeId;
    }

    public Integer getScore() {
        return score;
    }

    public void setScore(Integer score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex=" + sex +
                ", gradeId=" + gradeId +
                ", score=" + score +
                '}';
    }
}

封装JdbcUtil

package com.wy.util;

import java.lang.reflect.Field;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class JdbcUtil {
    static String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
    static final String USERNAME = "root";
    static final String PASSWORD = "123456";
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() {
        Connection con = null;
        try {
            con = DriverManager.getConnection(url,USERNAME,PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }
    public static void close(Connection con, PreparedStatement pstmt) {
        try {
            if(pstmt != null)
                pstmt.close();
            if(con != null) {
                con.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static void close(Connection con, PreparedStatement pstmt, ResultSet rs) {
        try {
            if(rs != null)
                rs.close();
            close(con, pstmt);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static <T> List<T> executeQuery(String sql,Class<T> clz,Object... params) {
        List<T> list = new ArrayList<>();
        Connection con = getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            pstmt = con.prepareStatement(sql);
            if(params != null) {
                for(int i = 0; i < params.length; i++) {
                    pstmt.setObject( i + 1, params[i]);
                }
            }
            rs = pstmt.executeQuery();
            while (rs.next()) {
                T t = clz.newInstance();
                Field[] fields = clz.getDeclaredFields();
                for(Field field : fields) {
                    field.setAccessible(true);
                    field.set(t,rs.getObject(field.getName()));
                }
                list.add(t);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } finally {
            close(con,pstmt,rs);
        }
        return list;
    }

}

StudentListServlet

将查询到的数据发送给jsp显示在页面上

package com.wy.web;

import com.wy.pojo.Student;
import com.wy.util.JdbcUtil;

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.util.List;

@WebServlet("/student/list")
public class StudentListServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Student> list = JdbcUtil.executeQuery("select id,name,sex,grade_id as gradeId,score from student",Student.class);
        request.setAttribute("students",list);
        request.getRequestDispatcher("/WEB-INF/pages/studentList.jsp").forward(request,response);
    }
}

studentList.jsp

页面上显示的内容

<%--
  Created by IntelliJ IDEA.
  User: Neuedu
  Date: 2021/2/24
  Time: 15:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
    <style>
        #tb{
            border-collapse: collapse;
        }
        #tb th,#tb td{
            border:1px solid #c8d1d3;
            padding: 5px 10px;
        }
    </style>
</head>
<body>
    <table id="tb">
        <thead>
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>班级编号</th>
                <th>成绩</th>
            </tr>
        </thead>
        <tbody>
            <c:forEach items="${students}" var="student">
                <tr>
                    <td>${student.id}</td>
                    <td>${student.name}</td>
                    <td>${student.sex}</td>
                    <td>${student.gradeId}</td>
                    <td>${student.score}</td>
                </tr>
            </c:forEach>

        </tbody>
    </table>

</body>
</html>

  • 9
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
想要通过 Maven 和 Servlet 实现查询数据库表并将结果显示网页上,可以按照以下步骤进行操作: 1. 首先,确保已经在项目中配置了 Maven 依赖管理工具。在 pom.xml 文件中添加相应的依赖,包括 Servlet API、数据库驱动程序和其他必要的库。 2. 在项目中创建一个 Servlet 类。在该类的 doGet() 方法中实现数据库查询的逻辑。可以使用 Java 的 JDBC API 来连接数据库,并编写 SQL 查询语句来获取所需的数据。执行查询后,将结果保存在适当的数据结构中。 3. 创建一个 JSP 文件,用于显示查询结果。在 JSP 文件中,可以使用 Java 代码片段和 JSP 标签来获取并显示查询结果。使用 JSTL(JSP 标准标签库)可以更方便地处理数据。根据需要,可以使用 HTML 和 CSS 来美化页面。 4. 在 Servlet 类中的 doGet() 方法中,使用 request.getRequestDispatcher() 方法获取 JSP 文件的请求分派器。然后,将查询结果作为属性(attribute)设置在请求中,并将请求分派到 JSP 页面。 5. 在 JSP 页面中,使用 JSTL 标签和 Java 代码片段来获取查询结果,并将其在网页显示出来。可以根据需要使用循环、条件和其他功能来处理和展示数据。 6. 运行项目并访问相应的 URL,即可看到从数据库中查询到的数据在网页上的显示。 总结来说,通过 Maven 管理依赖,使用 Servlet 连接数据库并编写SQL查询语句,然后将查询到的结果通过 JSP 页面展示出来,就可以实现在网页显示数据库表的功能。通过合理利用 Java、HTML、CSS 和 JSTL 等技术,可以实现更灵活、美观的数据展示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值