javaweb利用javabean将数据库中内容遍历在页面输出
效果如下图
它所实现的就是把数据库中一个表中所有的数据一条一条以表格的形式输出在网页上,
实现方法如下
首先我们要从数据库读取数据,这里要借助javabean来方便我们传递数据
以上面的为例,我要输出课程信息,就要设置好一个课程类,把相应的属性设置好,接下来就要在serverlet中把数据读取进来了
下面是代码:
- package serverlet;
- import java.io.IOException;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
- 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 Bean.clas;
- import Bean.reportbean;
- import DBUtil.DBUtil;
- /**
- * Servlet implementation class showclasslet
- */
- @WebServlet("/showclasslet")
- public class showclasslet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- /**
- * @see HttpServlet#HttpServlet()
- */
- public showclasslet() {
- super();
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- response.getWriter().append("Served at: ").append(request.getContextPath());
- HttpSession session = request.getSession();
- request.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
- Connection con = null;
- //这里是获取数据库连接
- con=DBUtil.getConnection();
- //ArryList为一个动态数组,现在这里它就是一个clas类的数组
- ArrayList<clas> list = new ArrayList<clas>();
- clas x=new clas();
- Statement stmt;
- ResultSet rsst = null ;
- try {
- stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
- rsst = stmt.executeQuery("select * from class where stand='0'");
- } catch (SQLException e) {
- // TODO 自动生成的 catch 块
- e.printStackTrace();
- }
- try {
- while(rsst.next())
- {
- x=new clas();
- //将读取到的数据存入该对象中
- x.setName(rsst.getString(2));
- x.setPerson(rsst.getString(4));
- x.setTeacher(rsst.getString(3));
- x.setChose(rsst.getString(5));
- x.setHao(rsst.getString(6));
- x.setTname(rsst.getString(8));
- //将赋好值的对象添加入动态数组中
- list.add(x);
- }
- } catch (SQLException e) {
- // TODO 自动生成的 catch 块
- e.printStackTrace();
- }
- //将动态数组存入session中,方便之后在jsp调用
- session.setAttribute("list", list);
- response.sendRedirect("showclass.jsp");
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- doGet(request, response);
- }
- }
通过上面的操作,已经将数据库中的数据存入了动态数组中,并存储在了session对象"list"中,接下来只要在jsp中将其遍历输出就可以了
这里将其全部输出使用到了<c:forEach>标签,具体代码如下:
- <%@ page language="java" contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Insert title here</title>
- </head>
- <style type="text/css">
- /*这里是一些css代码,用来美化表格的,不重要*/
- table {
- width: 90%;
- background: #ccc;
- margin: 10px auto;
- border-collapse: collapse;
- }
- th,td {
- height: 25px;
- line-height: 25px;
- text-align: center;
- border: 1px solid #ccc;
- }
- th {
- background: #eee;
- font-weight: normal;
- }
- tr {
- background: #fff;
- }
- tr:hover {
- background: #66FFFF ;
- }
- td a {
- color: #06f;
- text-decoration: none;
- }
- td a:hover {
- color: #06f;
- text-decoration: underline;
- }
- </style>
- <body><% int i=0;
- %>
- <table class="table table-striped">
- <thead>
- <tr>
- <th>#</th>
- <th>名称</th>
- <th>编号</th>
- <th>教师</th>
- <th>总人数</th>
- <th>已选人数</th>
- </tr>
- </thead> <tbody>
- <!--这里开始循环输出list对象中的信息-->
- <c:forEach items="${list}" var="clas">
- <tr>
- <th scope="row"><%=++i %></th>
- <td><a href='classinforlet?hao=${clas.hao} ' >${clas.name}</a>
- <td>${clas.hao}</td>
- <td>${clas.tname}</td>
- <td>${clas.person}</td>
- <td>${clas.chose}</td>
- </tr>
- </c:forEach>
- </tbody>
- </table>
- </body>
- </html>
注意一下,要使用<c:forEach>标签,jsp开头的“<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>”是必须要有的,这是为了导入相应的标签库。
以上就是全部内容了,感谢阅读。
javaweb利用javabean将数据库中内容遍历在页面输出的更多相关文章
- flask再学习-思考之怎么从数据库中查询数据在页面展示!
看别人视频觉得很简单,要自己做蒙蔽了!这样子.NO! 1. 流程: 首先要有和数据库连接的驱动!一般有PYMySQL mysqlclient 等 使用扩展Flask-SQLAlchemy 获得orm对 ...
- 利用工具将数据库中的表导出到word中
1.动软代码生成器 效果图: 数据库设计说明书中的一项,刚好我负责写这个文档, 18张表,前两张表是自己画表格自己填充内容,写到第三张表的时候就已经崩溃了(我觉得我耐力还是够的,怎么说也画完了两张表呢 ...
- JAVA实现File类中的遍历操作并输出内容
package shb.java.testIo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...
- 利用rowid删除数据库中无主键的相同记录
数据库中表没有添加主键,误插入了两条数据,现在需要删除其中一条记录. 利用rowid号,因为表中的每一行数据都有一个rowid,这个rowid 号是不同的,用select可以查询出来. select ...
- 利用JAVA想数据库中提交数据
1.用户信息提交界面 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- javaweb利用ajax使登录窗口不跳转页面实现对账号密码的判断
和上一篇判断用户名是否被占用不跳转页面类似!利用ajax实现跳转,要导入jquery文件库!具体代码我会贴出来,注释在里面!!可以观摩一手!(代码我也留下链接,如果失效,评论补发,代码可能导入也无法使 ...
- 如何利用panel在一个窗口中实现诸多页面的显示
Book_register form11 = new Book_register();//new一个对象 form11.TopLevel = false;//去除子窗体的顶级窗体设置 form11.P ...
- 数据库中的html在页面上显示
在ASP页面中,动态显示html格式的数据的方法如下: .aspx文件: <div id="divBox" runat="server"></ ...
- php中使用mysql_fetch_object向页面输出结果,总结!
public function selectResultByThird() { if ((!empty ($_REQUEST["bigname"])) && (!e ...
随机推荐
- Elasticsearch与中文分词配置
一. elasticsearch on windows 1.下载地址: https://www.elastic.co/cn/downloads/elasticsearch 如果浏览器下载文件慢,建议使 ...
- Java线程核心基础(上)
Java线程核心基础(上) 一.实现多线程 根据Oracle官方文档,目前推荐的创建线程方法主要有两种,分别是继承Thread类和实现Runnable接口.通过阅读Thread类源码,可以发现二者不同 ...
- SpringBoot2.x操作缓存的新姿势
一.介绍 spring cache 是spring3版本之后引入的一项技术,可以简化对于缓存层的操作,spring cache与springcloud stream类似,都是基于抽象层,可以任意切换其 ...
- javascript原生ajax请求
class Ajax{ constructor(url, method, data, callback_suc, callback_err, callback_run){ this.RT = true ...
- shell脚本 inotify + rsync 同步脚本
1.这是很简单的一个 文件监控+触发同步脚本 监控一台服务器下的一个文件夹,发生改变则向另一个个文件夹进行同步. 具体的inotify命令 rsync命令 可以看linux分类下的介绍 inoti ...
- 基于HttpURLConnection的接口调用,支持GET&POST
单位要做一个多级部署平台,大概意思就是一级系统可以监控下属地域的数据也可管理本地的数据.之前做短信猫用过httpClient请求,与此大同小异.封装了一个两种请求方式的工具类. package com ...
- Leetcode:面试题 04.03. 特定深度节点链表
Leetcode:面试题 04.03. 特定深度节点链表 Leetcode:面试题 04.03. 特定深度节点链表 先贴一下自己写过一个模板,按层数遍历: https://www.cnblogs.co ...
- MySQL 数据库的提速器-写缓存(Change Buffer)
写缓存(Change Buffer) 是一种特殊的数据结构,用于在对数据变更时,如果数据所在的数据页没有在 buffer pool 中的话,在不影响数据一致性的前提下,InnoDB 引擎会将对数据的操 ...
- 多线程共享变量和 AsyncLocal
>>返回<C# 并发编程> 1. 简介 2. 异步下的共享变量 3. 解析 AsyncLocal 3.1. IAsyncLocalValueMap 的实现 3.2. 结论 1. ...
- python笔记23(面向对象课程五)
今日内容 上节作业 单例模式 class Foo: pass obj1 = Foo() # 实例,对象 obj2 = Foo() # 实例,对象 日志模块(logging) 程序的目录结构 内容回顾 ...