从数据库提取数据通过jstl显示在jsp页面上

1.ConnectDB.java连接数据库,把数据转换成list

public class ConnectDB {
 private final static String strDriver = "oracle.jdbc.driver.OracleDriver";
 private final static String strConnect = "jdbc:oracle:thin:@localhost:1521:ORCL";
 private final static String strDBUserName = "scott";
 private final static String strDBPWD = "tiger";
 private Connection conn = null;
 private Statement stat = null;
 private ResultSet rs = null;

//连接oracle数据库
 private void getConnectFromOracle() throws ClassNotFoundException,
   SQLException {
  Class.forName(strDriver);// 实例化oracle.jdbc.driver.OracleDriver
  conn = DriverManager.getConnection(strConnect, strDBUserName, strDBPWD);
  stat = conn.createStatement();
 }

//记录基每行数据存放到值对象,然后把值对象存放一个链表
 public List<EMPVO> getListWithVOFromRS() {
  String sql = "select * from emp";
  List<EMPVO> rowList = new LinkedList<EMPVO>();
  EMPVO emp = null;
  try {
   getConnectFromOracle();
   rs = stat.executeQuery(sql);
   while (rs.next()) {
    emp = new EMPVO();
    // 为了简单仅取2个值
    emp.setEname(rs.getString("ename"));
    emp.setHiredate(rs.getString("hiredate"));
    rowList.add(emp);
   }
   closeConnection();
  } catch (ClassNotFoundException e) {
  } catch (SQLException e) {
  }
  return rowList;
 }

//记录基每行数据存放到1个链表,然后把这个链表存放另一个链表
 public List<List<String>> getListWithListFromRS() {
  String sql = "select * from emp";
  List<List<String>> rowList = new LinkedList<List<String>>();
  List<String> colList = null;
  try {
   getConnectFromOracle();
   rs = stat.executeQuery(sql);
   int columnCount = rs.getMetaData().getColumnCount();
   while (rs.next()) {
    colList = new LinkedList<String>();
    for (int i = 1; i <= columnCount; i++) {
     colList.add(rs.getString(i));
    }
    rowList.add(colList);
   }
   closeConnection();
  } catch (ClassNotFoundException e) {
  } catch (SQLException e) {
  }
  return rowList;
 }

//关闭数据库
 public void closeConnection() throws SQLException {
  if (rs != null)
   rs.close();
  if (stat != null)
   stat.close();
  if (conn != null)
   conn.close();
 }
}
2.EMPVO.java emp表的值对象

public class EMPVO {
 private String empno;
 private String ename;
 private String job;
 private String mgr;
 private String hiredate;
 private String sal;
 private String comm;
 private String deptno;

public String getComm() {
  return comm;
 }

public void setComm(String comm) {
  this.comm = comm;
 }

public String getDeptno() {
  return deptno;
 }

public void setDeptno(String deptno) {
  this.deptno = deptno;
 }

public String getEmpno() {
  return empno;
 }

public void setEmpno(String empno) {
  this.empno = empno;
 }

public String getEname() {
  return ename;
 }

public void setEname(String ename) {
  this.ename = ename;
 }

public String getHiredate() {
  return hiredate;
 }

public void setHiredate(String hiredate) {
  this.hiredate = hiredate;
 }

public String getJob() {
  return job;
 }

public void setJob(String job) {
  this.job = job;
 }

public String getMgr() {
  return mgr;
 }

public void setMgr(String mgr) {
  this.mgr = mgr;
 }

public String getSal() {
  return sal;
 }

public void setSal(String sal) {
  this.sal = sal;
 }
}

3.JstlServlet 调用ConnectDB,把List放入request对象,跳转到jstl.jsp

public class JstlServlet extends HttpServlet {

private static final long serialVersionUID = 7129164252442979467L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  ConnectDB db = new ConnectDB();
  request.setAttribute("listinlist", db.getListWithListFromRS());
  request.setAttribute("voinlist", db.getListWithVOFromRS());
  request.getRequestDispatcher("jstl.jsp").forward(request, response);
 }

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }
}

4.jstl.jsp

<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>  
  <body>   
   <table>    
    <tr><h1>listinlist</h1></tr>
    <c:forEach items="${listinlist}" var="rowlist">
     <tr>
     <c:forEach items="${rowlist}" var="collist">
      <td>${collist}</td>
     </c:forEach>
     </tr>
    </c:forEach>
   </table>
   <table>
    <tr><h1>voinlist</h1></tr>
    <c:forEach items="${voinlist}" var="empvo">
     <tr>
      <td>${empvo.ename}</td><td>${empvo.hiredate}</td>
     </tr>
    </c:forEach>
   </table>
  </body>
</html>

从数据库提取数据通过jstl显示在jsp页面上的更多相关文章

  1. 个人总结-7- 实现图片在MySQL数据库中的存储,取出以及显示在jsp页面上

    昨天主要是进行对数据库的内容提取出来并进行动态显示,这个只需要设置一个servlet从数据库中获取数据即可,只是图片比较特殊,不能显示. 今天准备继续找方法来实现图片得录入和显示到jsp中,准备从网上 ...

  2. jquery 获取json文件数据,显示到jsp页面上, 或者html页面上

    [{"name":"中国工商银行","code":102},{"name":"中国农业银行",&qu ...

  3. spring从服务器磁盘读取图片,然后显示于前端页面上

    需求是,前台通过传参,确定唯一图片,然后后台在服务器磁盘中读取该图片,然后显示于前台页面上. 后台代码: @RequestMapping("unit/bill/showeinvoice&qu ...

  4. C#——数据库取数据,DataGridView显示数据

    使用未封装的方法连接数据库 步骤: 一.确定连接方式(以SqlServer为例): ①Windows身份验证. string ConnectionType = "server=.;datab ...

  5. 解决关于:Oracle数据库 插入数据中文乱码 显示问号???

    问题: oracle数据库,通过接口插入的中文数据乱码,中文变成了问号??? 解决方案: 计算机=>属性=>高级系统设置=>环境变量=>新建 变量名:NLS_LANG 值:SI ...

  6. .Net如何在后台设置日期格式,并显示在前台页面上

    其实方法比较老咯,有比这个简单的朋友请留言哈,我的思路是先将数据库中的日期格式读出来,在后台转化成DatetTime类型,然后在使用DateTime的内部方法设置日期格式,代码如下: DateTime ...

  7. 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息

    概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没 ...

  8. (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计

    转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ...

  9. 把Employees显示在页面上

    项目代码下载:https://files.cnblogs.com/files/xiandedanteng/gatling20200429-1.zip 需求:从后台DB取出雇员数据,显示在前台页面上: ...

随机推荐

  1. MapReduce 表连接

    题目描述: 根据给定的关系 child parent Tom Lucy Tom Jack Jone Lucy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack ...

  2. NSDate详解及获取当前时间等常用操作

    NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 ...

  3. js 设置url 参数值

    //设置url中参数值 function setParam(param,value){ var query = location.search.substring(1); var p = new Re ...

  4. Struts加入拦截器后取不到页面参数

    在Struts2的demo项目中添加了一个简单的拦截器,突然发现,Action中取不到页面的参数了 这也是很蛋疼的事情,还好这个比较简单,稍微一查就发现问题: Struts2中很多的功能是用拦截器实现 ...

  5. <!DOCTYPE> 声明 引发的错误

    <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. 在写模板的时候,因为最近开始给每个文件添加注释,无意中将注释写在文件的第一行.导致页面 ...

  6. onethink的插件扩展

    2014年7月25日 07:22:35 编写一个文章可以同步到微博的插件 思路:首先要进行微博的绑定,获得令牌.然后调用微博的api即可. 2014年7月25日 08:40:27 服务器与本地有区别. ...

  7. HttpListener 实现web服务端

    1. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste ...

  8. CentOS搭建jdk

    一.检查是否安装JDK 一般安装好的CentOS会自带jdk, java -version rpm -qa | grep java 显示如下信息: java-1.4.2-gcj-compat-1.4. ...

  9. dp中表示无限取的写法

    dp[i][j]=dp[i-a[i][j]+dp[i-a[i]][j-1]; 其中前一项j不变表示j这一项无限取

  10. JavaScript实用功能代码片段

    把平时网站上常用的一些实用功能代码片段通通收集起来,方面网友们学习使用,利用好的话可以加快网友们的开发速度,提高工作效率. 1.原生JavaScript实现字符串长度截取 function cutst ...