从数据库提取数据通过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. 服务器性能分析工具gprof的使用及没有生成gmon.out文件的原因

            早上从网上查看资料时无意中看到了gprof这个工具,随便把他用在项目里试了一下.结果发现调用次数的数据比较全,但调用时间基本上都是0.网上查了一下发现gprof只记录执行时间超过0.0 ...

  2. Zabbix日志错误总结(持续更新)

    no active checks on server [*.*.*.*:10051]: host [*] not found failed to accept an incoming connecti ...

  3. LPC2478的硬件IIC使用

    LPC2478的IIC使用 LPC2478带有三个IIC接口,每个IIC都可以工作在主机或者从机模式下,LPC的IIC的架构是一种状态机的形式,在不同的的时间做不同的工作之后有不同的状态来表示, 简单 ...

  4. 网络请求工具--AFNetworking 分类: ios技术 2015-02-03 08:17 76人阅读 评论(0) 收藏

    在我们开发过程中,网络请求是必不可少的,对于网络框架,现在主流的大概只有三类:ASI框架: HTTP终结者(已经停止更新了),MKNetworkKit ,AFN.今天我就来浅谈一下这个AFN AFNe ...

  5. Memcached源码分析之内存管理

    先再说明一下,我本次分析的memcached版本是1.4.20,有些旧的版本关于内存管理的机制和数据结构与1.4.20有一定的差异(本文中会提到). 一)模型分析在开始解剖memcached关于内存管 ...

  6. JQuery中 json 和字符串直接相互转换

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj);   IE中可能对unicode使用“ ...

  7. My first essay

    今天是我开通博客第一天,从此开始了我的博客之路.为了实现成为程序猿的我,现在开始努力啦~今年大三,就读杭州电子科技大学,通信工程专业.现在在自学web前端,虽然与我就读专业并无多大相关,但是这是根据自 ...

  8. UVa 231 - Testing the CATCHER

    题目大意:一种拦截导弹能拦截多枚导弹,但是它在每次拦截后高度不会再升高,给出导弹的序列,问最多能拦截多少枚导弹? 最长递减子序列问题. #include <cstdio> #include ...

  9. Python科学计算之Pandas

    Reference: http://mp.weixin.qq.com/s?src=3&timestamp=1474979163&ver=1&signature=wnZn1UtW ...

  10. EclipseEE导入项目出现的那些问题

    1.显示.project文件丢失, 解决方法:在eclipse中删除和该项目相同的文件名,重新import即可 2.导入没有.classpath和.project文件的项目 解决方法:目前没遇到 3. ...