将Servlet中的ResultSet显示到Jsp页面

2023-10-27

Servlet从数据库中拿到结果以后,

对用户来说,

他们并不关心你怎么拿的,

恰恰最重要的是,

他们要看到信息展示在网页上。

那这个该怎么实现?

。。。。。。

言归正传:

拿到数据以后,想要把数据展示到Jsp页面上,这样办:

跳转 (转发和重定看大佬文章,清晰又明白 转发和重定向的区别和使用

关键点:

 

重定向的特点

  1. 地址栏:显示新的地址
  2. 请求次数:2次
  3. 根目录:http://localhost:8080/ 没有项目的名字
  4. 请求域中的数据会丢失,因为是2次请求

重定向使用哪个方法?[服务器回应给浏览器的信息,所以是response.]

response.sendRedirect("/pages/loginsuccess.jsp");

转发的特点

  1. 地址栏不发生变化,显示的是上一个页面的地址
  2. 请求次数:只有1次请求
  3. 根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
  4. 请求域中数据不会丢失

转发使用哪个方法?[转发是由Servlet直接”原封不动“的交给其他Servlet来处理,所以请求request.]

request.getRequestDispatcher("/地址").forward(request, response);

 

由于我们需要把查询到的数据发送到Jsp,所以我们要在这个跳转的过程中,保证数据不会丢失,所以我们用转发的方式(重定向因为是二次请求,所以会丢失获取到的数据)。

现在我们确定了第一个跳转问题:那就是转发方式。

第二个问题是,我们怎么把ResultSet传送到Jsp并进行"遍历"呢?

。。。

这里省略掉思考的时间。

。。。

我们采用集合,处理这个问题。

List<User> users = new ArrayList<>();
while (resultSet.next()){
   User user = new User(resultSet.getString("username"),resultSet.getString("password"),resultSet.getString("sex"));//每次都新建一个对象
   users.add(user);
 }
request.setAttribute("users",users); //将需要送到jsp的数据放到request请求域中,让request帮忙带到jsp
request.getRequestDispatcher("/pages/loginsuccess.jsp").forward(req,resp);

我们知道,ResultSet无法使用循环直接遍历,而是需要使用While处理(原因待补充,我先给自己留个坑)。

Jsp部分,需要做些什么呢?直接使用,需要引入taglib,具体可以看这篇文章

引入taglib的步骤

<table border="1">
    <tr>
        <td>姓名</td>
        <td>密码</td>
        <td>性别</td>
    </tr>

    <c:forEach items="${requestScope.users}" var="user">
    <tr>
        <td>${user.username}</td>
        <td>${user.password}</td>
        <td>${user.sex}</td>
    </tr>
    </c:forEach>
</table>

后来,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将Servlet中的ResultSet显示到Jsp页面 的相关文章

随机推荐

  • js深拷贝与浅拷贝

    区别 浅拷贝只是增加了一个指针指向已存在的内存地址 仅仅是指向被复制的内存地址 如果原地址发生改变 那么浅拷贝复制出来的对象也会相应的改变 深拷贝是增加了一个指针并且申请了一个新的内存 使这个增加的指针指向这个新的内存 浅拷贝 一 Java
  • C++ 如何从string中删除一个字符

    使用编程软件 dev5 4 0 方法一 使用iterator和erase 删除与 it 所指字符第一个相同的 注 经反应将第一个代码改了下并在VS2017里运行通过了 代码如下 include
  • Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 【持续集成与交付快速入门必备】

    我在B站学运维之Jenkins持续集成和交付快速入门介绍与安装 1 https www bilibili com read cv13512558 我在B站学运维之Jenkins持续集成和交付入门基础使用与集成部署实践 2 https www
  • Reason: No converter found capable of converting from type [java.lang.String] to type [java.util.Map

    Reason No converter found capable of converting from type java lang String to type java util Map
  • mmdetection源码笔记(五):测试之test.py的解读

    引言 在test阶段有以下几个方法 single gpu test 顾名思义 就是单GPU测试 该方法在main 中调用 当不分布式测试的时候 则运行次测试方法 该方法的实现中 其实是调用了检测器测试过程的forward 前向计算过程 以c
  • redis如何配置哨兵集群?

    前言 前面我们介绍了主从复制集群模式 但是存在一个问题 redis在主从集群中好像没有共识算法 比如raft 那么在master挂掉的情况下 就无法从几个slave节点中自主选举出一个新的 master 节点 redis提供了新的方案 哨兵
  • 外部中断和内部中断 硬中断 软中断 中断下半部

    重要声明 以下代码有粘贴 截取他人劳动成果的成分 如有雷同 不胜荣幸 如您不能容忍 请不要独自忍受 weChat iisssssssssii 联系小民 主动删除 中断含义 中断是CPU处理外部突发事件的一个重要技术 它能使CPU在运行过程中
  • QT不允许使用不完整的类型出现原因

    目前遇到的情况如下 1 没有引用头文件 2 没有设置头文件所在路径 或设置路径错误 3 头文件定义出错 此种情况比较常见于新建一个头文件时为了方便直接拷贝已有的头文件来修改 但是图中绿色框框部分没有修改 如下两张图所示 b h由a h复制而
  • 下载pip、安装pip

    下载pip 安装pip 码农家园 Installation pip documentation v23 2 1 如何在 Mac 上安装 PIP https m php cn faq 517564 html pip3 install pyot
  • 一.LLVM基础库初探

    LLVM和Clang被精心组织成如下库 1 libLLVMCore 它包含了与LLVM IR相关的逻辑 IR构造 数据布局 指令 基础块和函数 和IR验证器 它还提供了pass管理器 2 libLLVMAnalysis 将多个IR分析步骤进
  • Maven安装教程详解

    一 准备工作 1 确定电脑上已经成功安装jdk7 0以上版本 2 win10操作系统 3 maven安装包 下载地址 http maven apache org download cgi 二 解压Maven安装包 在上述地址中下载最新的Ma
  • DNS与CDN——前端重点

    DNS的基础知识 1 统一资源定位符 URL 也被称作 网址 用于定位互联网上的资源 2 DNS Domain Name System DNS具体Query过程 3 DNS记录 资源记录 Resource Record DNS的数据库条目
  • 2018-9-11-vue的日期输入 from 表单类型

    注意这个格式
  • mapper时间条件查询

    select
  • Logback configuration error detected: 怎么解决?(亲测有效)

    发生这个错误时首先确认你的xml文件内容是没有问题的 然后检查一下你的properties文件的classpath的配置有没有错 可能的错误如下 错误报没有找到那么就是classpath写错了 或者找到了报IlllegalException
  • C++ 内置类型和类类型的默认初始化和值初始化

    如果定义变量时候没有指定初值 则变量被默认初始化 但是默认初始化还有另外一个含义 在定义内置类型时由于定义变量的位置不同 有可能会不发生初始化操作 这种情况下称为默认初始化 也有可能会给定一个初值 称为值初始化 由上 个人琢磨其实默认初始化
  • 下载文件获取的contentLength 的值是-1的问题

    项目中加了个下载方法 获取的响应中的contentlength值总是 1 查看源码可以看到 用这个int类型的获取的当length大于Int的最大值 2147483647 就返回 1 我需要下载的文件确实大于这个值了 查看源码还有别的获取l
  • 数据库系统-第二章关系数据库 复习

    关系操作 关系数据库基础 关系代数 这个 的写法是错的 因为不存在一个元组的cno既等于c2又等于c4
  • UE4 性能优化方法(工具篇)

    官方文档链接 https docs unrealengine com latest CHN Engine Performance index html 本文依据UE4官方文档以及官方博客等总结而来 可能不全面 后面会陆续添加 内置工具的详细
  • 将Servlet中的ResultSet显示到Jsp页面

    Servlet从数据库中拿到结果以后 对用户来说 他们并不关心你怎么拿的 恰恰最重要的是 他们要看到信息展示在网页上 那这个该怎么实现 言归正传 拿到数据以后 想要把数据展示到Jsp页面上 这样办 跳转 转发和重定看大佬文章 清晰又明白 转