jsp页面显示模式

Docker(八):Docker Compose(容器编排) 管理多容器应用—实战案例演示 🟢 Docker(八):Docker Compose(容器编排) 管理多容器应用—实战案例演示 阅读详情
背景:
1.    需要将数据库查询结果在JSP中以列表方式显示
2.    在一个良好的J2EE模式中数据库查询一般用DAO实现(Data Access Object), JSP仅用于显示数据

问题:
    通过JDBC ResultSet可获取查询结果(存在于数据库缓冲区内),但在Statement、Connection关闭后ResultSet即不可用。因此需要一种方式取出所有查询结果并传递至JSP页面。

解决方法一:
    使用Value Object。将每条记录均封装成JavaBean对象,把这些对象装入Collection传送给JSP显示。这种方法的缺点是每一种查询都需要定义一个java class,并且将记录数据封装成java对象时也需要很多额外的代码。
示例代码:

  1. //查询数据代码
  2.   Connection conn = DBUtil.getConnection();
  3.   PreparedStatement pst = null;
  4.   ResultSet rs = null;
  5.   try{
  6.     String sql=“select emp_code, real_name from t_employee where organ_id=?”;
  7.     pst = conn.preparedStatement(sql);
  8.     pst.setString(1, “101”);
  9.     ResultSet rs = pst.executeQuery();
  10.     List list = new ArrayList();
  11.     Employee emp;
  12.     while (rs.next()){
  13.       emp = new Employee();
  14.       emp.setReakName(rs.getString(“real_name”));
  15.       emp.setEmpCode(rs.getString(“emp_code”));
  16.       …
  17.       list.add(emp);
  18.     }
  19.     return list;
  20.   }finally{
  21.     DBUtil.close(rs, pst ,conn);
  22.   }
  23. //jsp显示部分代码
  24. <%
  25.   List empList = (List)request.getAttribute(“empList”);
  26.   if (empList == null) empList = Collections.EMPTY_LIST;
  27. %>
  28. …
  29. <table  cellspacing="0" width=”90%”>
  30.     <tr>  <td>代码</td> <td>姓名</td>  </tr>
  31. <%
  32.   Employee emp;
  33.   for (int i=0; i< empList.size(); i++){
  34.     emp = (Employee) empList.get(i);
  35. %>
  36.     <tr>  
  37.       <td><%= emp.getEmpCode()%></td> 
  38.       <td><%= emp.getRealName()%></td>  
  39.     </tr>
  40. <%
  41.   }// end for
  42. %>
  43. </table>


解决方法二:
    遍历ResultSet取出所有数据封装进Collection。
具体做法:
1.    生成一个List对象(List list = new ArrayList() )。
2.    生成一个Map对象(Map map = new HashMap() )。使用Map封装一行数据,key为各字段名,value为对应的值。(map.put(“USER_NAME”), rs.getString(“USER_NAME”))
3.    将第2 步生成的Map对象装入第1步的list对象中(list.add(map) )。
4.    重复2、3步直到ResultSet遍历完毕
在DBUtil. resultSetToList(ResultSet rs)方法中实现了上述过程(所有列名均使用大写),可参考使用。

示例代码:

  1. //查询数据部分代码:
  2.   …
  3.   Connection conn = DBUtil.getConnection();
  4.   PreparedStatement pst = null;
  5.   ResultSet rs = null;
  6.   try{
  7.     String sql=“select emp_code, real_name from t_employee where organ_id=?”;
  8.     pst = conn.preparedStatement(sql);
  9.     pst.setString(1, “101”);
  10.     rs = pst.executeQuery();
  11.     List list = DBUtil. resultSetToList(ResultSet rs);
  12.     return list;
  13.   }finally{
  14.     DBUtil.close(rs, pst ,conn);
  15.   }
  16. //JSP显示部分代码
  17. <%
  18.   List empList = (List)request.getAttribute(“empList”);
  19.   if (empList == null) empList = Collections.EMPTY_LIST;
  20. %>
  21. …
  22. <table  cellspacing="0" width=”90%”>
  23.     <tr>  <td>代码</td> <td>姓名</td>  </tr>
  24. <%
  25.   Map colMap;
  26.   for (int i=0; i< empList.size(); i++){
  27.     colMap = (Map) empList.get(i);
  28. %>
  29.   <tr>  
  30.     <td><%=colMap.get(“EMP_CODE”)%></td> 
  31.     <td><%=colMap.get(“REAL_NAME”)%></td>  
  32.   </tr>
  33. <%
  34.   }// end for
  35. %>
  36. </table>


解决方法三:
    使用RowSet。
RowSet是JDBC2.0中提供的接口,Oracle对该接口有相应实现,其中很有用的是oracle.jdbc.rowset.OracleCachedRowSet。 OracleCachedRowSet实现了ResultSet中的所有方法,但与ResultSet不同的是,OracleCachedRowSet中的数据在Connection关闭后仍然有效。

oracle的rowset实现在http://otn.oracle.com/software/content.html的jdbc下载里有,名称是ocrs12.zip

示例代码:

  1. //查询数据部分代码:
  2.   import javax.sql.RowSet;
  3.   import oracle.jdbc.rowset.OracleCachedRowSet;
  4.   …
  5.   Connection conn = DBUtil.getConnection();
  6.   PreparedStatement pst = null;
  7.   ResultSet rs = null;
  8.   try{……
  9.     String sql=“select emp_code, real_name from t_employee where organ_id=?”;
  10.     pst = conn.preparedStatement(sql);
  11.     pst.setString(1, “101”);
  12.     rs = pst.executeQuery();
  13.     OracleCachedRowSet ors = newOracleCachedRowSet();
  14.     //将ResultSet中的数据封装到RowSet中
  15.     ors.populate(rs);
  16.     return ors;
  17.   }finally{
  18.     DBUtil.close(rs, pst, conn);
  19.   }
  20. //JSP显示部分代码
  21. <%
  22.   javax.sql.RowSet empRS = (javax.sql.RowSet) request.getAttribute(“empRS”);
  23. %>
  24. …
  25. <table  cellspacing="0" width=”90%”>
  26.     <tr>  <td>代码</td> <td>姓名</td>  </tr>
  27. <%
  28.   if (empRS != null) while (empRS.next() ) {
  29. %>
  30.   <tr>  
  31.     <td><%= empRS.get(“EMP_CODE”)%></td> 
  32.     <td><%= empRS.get(“REAL_NAME”)%></td>  
  33.   </tr>
  34. <%
  35.   }// end while
  36. %>
  37. </table>


适用场合:
  方法一使用于定制的查询操作
  方法二适用于多条查询语句或需要对查询结果进行处理的情况。
  方法三适合于单条查询语句,适用于快速开发。
ABAP 7.40 FOR 表达式与 REDUCE 构造运算符深度解析:从语法新特性到真实项目实践 ABAP 7.40引入了FOR和REDUCE表达式语法,使代码更简洁和函数式。FOR支持内表迭代和条件迭代,可配合VALUE构造新内表,替代传统LOOP。REDUCE用于归约运算,将多值折叠为单一结果,如求和、拼接等。这些新特性让ABAP更现代化,与SAP新架构协同更好,提升了开发效率和代码可读性。 阅读详情

相关推荐

surfer10与Arcgis10.3 完美生成等值线和等值面方法

surfer10 与Arcgis10.3生成等值线和等值面的步骤如下: 1.准备surfer用的Book1.dat文件,格式如下: "x" "y" "z" 116.471992 40.809975 232 116.335556 40.700542 1235 116.541626 40.713333 214 116.73349 40.798607 566 2.在surfer中,选择Gr

哈里·雪利博客 1万+

JSTL标签 参考手册

  前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多标签中性能最好的。把常用的内容,放在这里备份一份,随用随查。尽量做到不用查,就可以随手就可以写出来。这算是Java程序员的基本功吧,一定要扎实。   JSTL全名为JavaServe...

SiC B2B2C Shop大型B2B2C商城软件产品,使用Java语言开发,高性能高扩展性高安全性分布式。可帮助你快速的建立大型B2B2C电商系统 2315

openEuler 22.03 安装及配置Gitlab容器

在 openEuler 22.03 上安装及配置Gitlab容器

轻步玉阶 3314

JSP——显示数据

JSP——显示数据

dsbss的博客 951

JFET放大电路实例设计仿真

参照《晶体管电路设计》中的例子 JFET 2SK184 JFET 2SK184 数据手册如下 电路设计 共源放大 步骤:1、静态工作点 2N4416 1ma 2、RD和RS A=5 5:1 RS 2V /1m=2k RD 5k 3、偏压VG 根据传输特性 VGS-ID vgs=-0.7 vg=2-0.7=1.3 400k^2/50k...

f的博客 7441

学会JSP指令的基本使用

JSP全名是Java Server Pages,即Java服务器页面。它是Servlet更高级别的扩展。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。最终,JSP文件会通过Web服务器的Web容器编译成一个Servlet,用来处理各种请求。

RainBow_xiy的博客 985

SQL Server 内存占用高分析及解决办法(超详细)

如果想让 Sql Server 主动释放 占用并空闲的内存空间,可以设置Sql Server占用内存的上限,就会让Sql server在。如执行存储过程,自定函数时,SQL Server 需要先二进制编译再运行,编译后的结果也会缓存起来,再次调用时就无需再次编译。才会释放一点占用的内存,所以很多时候,我们会发现运行SQL Server的系统内存往往居高不下这些内存一般都。缓存,以便于再次请求此页的数据的时候,直接从内存返回,就无需读取磁盘了,大大提高了速度。最后文章有啥不对,欢迎大佬在评论区指点!

2301_79080944的博客 3952

如何在JSP页面显示mysql数据库内容 (二)

       用Eclipse tomcat新建一个JSP页面(一)介绍了如何创建一个web程序和第一个jsp页面,以及Eclipse需要的一些必要配置。今天,我们重点说一下如何从数据库中查询数据,并且在JSP页面显示。        首先需要注意这样一个问题:创建的如果是java项目,只需要引入mysql-connector-java-5.1.10-bin.jar就可以运行java项目。创建的...

黄玮鹏的专栏 10万+

【实战解析】SAP EWM与PP深度集成:从后台配置到前台物料流转的全链路设计

本文深入解析SAP EWM与PP深度集成的全链路设计,涵盖后台配置与前台物料流转的实战应用。通过两种集成模式(DPI与API)的选择策略、十二个关键后台配置步骤详解,以及PMR生成、PSA补货等前台演示,帮助企业实现生产计划与物料供应的高效协同,显著提升生产效率和库存周转率。

weixin_30723433的博客 421

【点云概述】什么是点云、来源、种类、特点、处理?

【点云概述】什么是点云、来源、种类、特点、处理?点云(point cloud)是空间中点的数据集,可以表示三维形状或对象,通常由三维扫描仪获取。点云中每个点的位置都由一组笛卡尔坐标 ( X , Y , Z ) (X, Y, Z) (X,Y,Z)描述,有些可能含有色彩信息 ( R , G , B ) (R, G, B) (R,G,B)或物体反射面强度(Intensity)信。

智慧空间实验室 9819

jsp页面显示效果

1输入框提示信息

天翔空水木的专栏 1714

【AI Agent】Hermes Agent解析

Hermes Agent:一个具备持久化学习能力的开源AI Agent框架 核心特点: 突破传统Agent的"无状态困境",通过记忆系统(SQLite+FTS5全文检索)实现跨会话经验积累 支持200+模型自由切换,11种模型家族和15+平台接入 五层架构设计(入口层、编排层、推理层、工具执行层、存储层)实现平台无关性 47+内置工具和动态技能沉淀机制,支持从任务执行中自动提炼可复用Skill 独特的四层记忆体系(会话/每日/长期/向量索引)和辩证式用户建模 与传统Agent对比: 具备自我进化能力,通过A

sysu_lluozh 945

jsp乱码解决方案(复制装载,以备忘)

jsp乱码问题的解决2009-07-15 10:321、JSP页面乱码  这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,2、数据库乱码  这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下:  在数据库连接字符串中加入编码字符集(数据源连接同样适用)  String Ur

Bleibo的专栏 1005

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

javascript jsp页面动态显示系统时间 测试可用 多浏览器通过测试 (2)

javascript jsp页面动态显示系统时间 测试可用 多浏览器通过测试

responsecool的专栏 1440

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jsp tomcat 中文乱码

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。   一、Java中文问题的由来   Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。

u013100773的专栏 606

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

点击文本框显示模式框,在模式框选中单选值,显示在文本框中

如:jsp:       function open_Dialog(obj) {  var win = window.showModalDialog("country.jsp",window,"dialogWidth=425px;dialogHeight=300px;center=yes;status=no");   if(win != null)   {     //docume

gdn_wolf的专栏 2630

jsp/servlet中 中文乱码的解决方案

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。 一、Java中文问题的由来 Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。...

298

jsp中文乱码

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。  一、Java中文问题的由来  Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。

hx_uestc的专栏 1700

如何使用jsPDF页面过渡效果创建专业的PDF翻页体验

想要为你的PDF文档添加专业的翻页效果吗?jsPDF库提供了强大的页面过渡功能,让你能够创建令人印象深刻的PDF查看体验。本文将为你详细介绍如何利用jsPDF的viewerpreferences模块来优化PDF的展示效果。 ## 🎯 什么是PDF页面过渡效果? PDF页面过渡效果指的是当用户在PDF阅读器中翻页时,页面之间切换的动画效果。jsPDF通过`viewerPreferences`方

gitblog_00644的博客 368

jsPDF终极打印控制指南:7个高级自定义设置技巧

jsPDF作为最流行的JavaScript PDF生成库,提供了强大的打印控制功能,让开发者能够完全自定义PDF文档的打印行为和显示效果。无论你是需要自动打印、设置页面缩放,还是控制工具栏显示,jsPDF都能满足你的需求。😊 ## 自动打印功能配置 jsPDF的自动打印模块让PDF文档在打开时自动触发打印对话框,这在需要用户立即打印收据、票据等场景中特别有用。通过简单的API调用,你可以实现

gitblog_00328的博客 424

MyEclipse的html页面 design视图中 关闭可视化界面

问题描述: 在新装MyEclispe中,打开.html .htm .jsp 等页面,在默认Design模式下,展示方式很不友好,会分为上下两部分,如下图: 那么如何合并可视化界面,仅显示文本编辑器呢? 解决方案: 方案一: 在上面工具栏找到 类似 {= 的图标选中,切换展示方式就OK了。如图 方案二:当然网上还有另一种方案:个人感觉,用起来不方...

weixin_30307267的博客 796

div图层显示:如何让div显示在最上层

  自己:将&lt;param name="wmode" value="Opaque"&gt;这一句放在flash中即可实现DIV在外层(即FLASH不是最外层了);   &lt;object  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/s...

注重长远 天天积累 cqujsjcyj 4071

Tomcat部署jsp,出现乱码问题

一、Java中文问题的由来  Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。  首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编

shanzhizi的专栏 1万+

NW支持的几种高级的显示模式

一、流式布局模式   表体除了使用分栏模式展示外,还可以使用流式布局展示,这种方式还包括2种:A、表体的所有表格使用流式布局,自适应方式展示;B、表体作为一个整体使用流式布局。如下图展示: 要切换这两种模式也比较简单,只要在功能注册的url中使用_waterfallScene=true和_bodyWaterfallScene=true即可。 二、辅助工具栏的位置   编辑...

bangbaolu6944的博客 242

《王总大气-Java web项目通用分页标签》

《王总大气-Java web项目通用分页标签》  前言:          很久很久很久以前,山里有座庙,庙里有个老和尚.....?~!靠,sorry走神了。          其实我想说的是,在很久很久很久以前,森林里有一位白雪公主....和....七个小...混蛋~!?!又走神了?~!!(这下走得有点远,到国外去了...),sorry,sorry,sorry。         

wangzonghuan的专栏 449
上一篇: 在Oracle中实现数据库的复制
下一篇: Tomcat使用SSL的连接
samlover
博客等级 码龄25年 0粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值