7/13 - 7/15
vo.setId(rs.getLong("id"))什么意思?
vo.setId(rs.getLong("id"));
这行代码是在Java中使用ResultSet对象(通常用于从数据库中检索数据)获取一个名为"id"的列,并将其作为long类型设置为一个对象的ID属性。通常,这种代码出现在从数据库中提取数据并将其映射到Java对象的过程中。
servlet?
衔接前后端。
servlet是Java编程语言的一个规范,用于处理在Web服务器上运行的Java应用程序的请求和响应。Servlet通常用于创建动态Web页面,进行用户输入验证,处理表单数据,管理会话等操作。它可以与JavaServer Pages(JSP)一起使用,协同提供强大的Web应用程序开发能力。
request.getSession().setAttribute("no", no);啥意思?
这行代码是在Java servlet中将一个名为"no"的属性设置为"no"。在HTTP会话期间,该属性会与特定的值关联。这种做法通常用于在用户与应用程序的交互过程中保留数据。
重定向是什么意思?
重定向(Redirect)是指在Web开发中,服务器接收到客户端(浏览器)的请求后,返回一个特殊的响应码,告诉浏览器去请求另一个URL。这样浏览器会根据这个新的URL发起新的请求,并加载显示新的页面内容。重定向可以用来跳转到另一个页面、处理表单提交后的跳转、处理登录后的跳转等操作。在Java Servlet中,可以使用response.sendRedirect()方法来实现重定向。
序列化和反序列化
Java序列化就是指把Java对象转换为字节序列的过程
Java反序列化就是指把字节序列恢复为Java对象的过程。
对象状态的保存和重建。
只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。(序列化)
import java.io.Serializable;
Jsp使用<c:forEach>遍历List集合
<c:forEach items="${list}" var="no"><tr class="index-content-table-td"><td>${no.name}</td><td>${no.content}</td><td>${no.date}</td></tr></c:forEach>
<table class="table table-striped table-hover table-bordered"><thead><tr class="index-content-table-th"><th>寄信人</th><th>内容</th><th>日期</th></tr></thead><tbody><c:forEach items="${list}" var="no"><tr class="index-content-table-td"><td>${no.name}</td><td>${no.content}</td><td>${no.date}</td></tr></c:forEach></tbody>
</table>
items="${list}" //list集合:集合里有很多对象
var="no" //遍历到的那一个对象的别名
result.put("list", list)?
result.put("list", list);
<c:forEach items="${list}" var="vo">?
<c:forEach items="${list}" var="vo">
foreach标签遍历后端传来的数据。
总结之jstl标签:c:foreach嵌套循环的实现——(items值处理)_jsp 把<foreach>标签拼接在字符串中-CSDN博客
${list}
通常是一个从后端Servlet传递到前端页面的属性值。
后端Servlet会将数据准备好并存储在请求(request)属性中,然后将请求转发给JSP页面。在JSP页面中,您可以通过EL表达式${list}
来访问这个名为list
的属性。
检查后端Servlet的代码,看一下它是如何设置list
属性的。通常会使用类似于request.setAttribute("list", dataList);
这样的语句将数据存储到请求属性中。然后在JSP页面中,通过${list}
来获取这些数据并在页面上展示。
response.sendRedirect("dinggou_" + to + ".jsp");?
response.sendRedirect("dinggou_" + to + ".jsp");
response.sendRedirect("dinggou_list.jsp");
JSP页面通过response.sendRedirect()方法跳转。
request.setAttribute(String name, Object value)
和 request.getSession().setAttribute(String name, Object value)
都是在Java Web开发中用于设置属性的方法。
如果数据只需要在当前请求中传递,使用 request.setAttribute()
;如果需要跨多个请求或页面保持数据,使用 request.getSession().setAttribute()
。
代码
private void redirectList(HttpServletRequest request, HttpServletResponse response) throws IOException {//查询列和关键字String searchColumn = request.getParameter("searchColumn");String keyword = request.getParameter("keyword");Map<String, Object> params = new HashMap();//用来保存控制层传进来的参数(查询条件)params.put("searchColumn", searchColumn);//要查询的列params.put("keyword", keyword/*keyword != null ? new String(keyword.getBytes("ISO-8859-1"), "UTF-8") : null*/);//查询的关键字NoticeService noticeService = new NoticeServiceImpl();Map<String, Object> map = noticeService.list(params);request.getSession().setAttribute("list", map.get("list"));Integer totalRecord = (Integer) map.get("totalCount");//根据查询条件取出对应的总记录数,用于分页String pageNum = request.getParameter("pageNum");//封装分页参数com.demo.util.PageBean<Object> pb = new com.demo.util.PageBean(Integer.valueOf(pageNum != null ? pageNum : "1"), totalRecord);params.put("startIndex", pb.getStartIndex());params.put("pageSize", pb.getPageSize());List list = (List) noticeService.list(params).get("list");//根据分页参数startIndex、pageSize查询出来的最终结果listpb.setServlet("NoticeServlet");pb.setSearchColumn(searchColumn);pb.setKeyword(keyword);pb.setList(list);request.getSession().setAttribute("pageBean", pb);request.getSession().setAttribute("list", pb.getList());response.sendRedirect("notice_list.jsp");}
这段代码是一个方法,其目的是处理请求并重定向到一个名为`notice_list.jsp`的页面。解释代码的主要部分:
1. **获取请求参数:**
- 通过`request.getParameter("searchColumn")`和`request.getParameter("keyword")`获取请求中的参数`searchColumn`和`keyword`。
2. **设置查询条件:**
- 将请求中的搜索列和关键字保存在一个`Map<String, Object>`对象`params`中。
3. **调用服务层方法:**
- 创建一个`NoticeService`服务类的实例,并调用其中的`list(params)`方法获取数据,返回一个包含查询结果的`Map<String, Object>`对象`map`。
4. **处理分页数据:**
- 从`map`中获取总记录数`totalRecord`,并根据页面参数`pageNum`来设定分页参数。然后再次调用`list(params)`方法获取分页后的数据列表`list`。
5. **设置分页Bean和列表数据:**
- 创建一个分页Bean对象`pb`,设置相关属性并将根据分页参数查询得到的数据列表`list`存入其中。
6. **保存数据到会话:**
- 将整个分页Bean对象`pb`和数据列表`list`分别保存在当前会话的属性中,以便在重定向后的页面中使用。
7. **重定向到页面:**
- 最后通过`response.sendRedirect("notice_list.jsp")`将请求重定向到名为`notice_list.jsp`的页面。
综上所述,这段代码的功能是根据用户提交的查询条件进行数据查询,并在列表页面进行分页展示。
增加数据库的代码
public void addNote(Note note) {try {Connection c = JdbcBase.getConnection();String sql = "INSERT INTO t_notice (name, content, date) VALUES (?, ?, ?)";PreparedStatement ps = c.prepareStatement(sql);ps.setString(1, note.getName());ps.setString(2, note.getContent());ps.setDate(3, new Date(note.getDate().getTime()));int rowsAffected = ps.executeUpdate();if (rowsAffected > 0) {System.out.println("Note added successfully");} else {System.out.println("Failed to add note");}ps.close();c.close();} catch (SQLException e) {e.printStackTrace();}
}
展示数据库的代码
public void displayAllNotes() {try {Connection c = JdbcBase.getConnection();Statement stmt = c.createStatement();String sql = "SELECT * FROM t_notice";ResultSet rs = stmt.executeQuery(sql);System.out.println("----- All Notes -----");while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");String content = rs.getString("content");Date date = rs.getDate("date");System.out.println("ID: " + id);System.out.println("Name: " + name);System.out.println("Content: " + content);System.out.println("Date: " + date);System.out.println("---------------------");}rs.close();stmt.close();c.close();} catch (SQLException e) {e.printStackTrace();}
}
进度条
加了段代码突然500
刚刚发现去掉这个就没500了
进度条到这里,记录一下。
list里没有接到note对象???
相关文章:

7/13 - 7/15
vo.setId(rs.getLong("id"))什么意思? vo.setId(rs.getLong("id")); 这行代码是在Java中使用ResultSet对象(通常用于从数据库中检索数据)获取一个名为"id"的列,并将其作为long类型设置为一个对象…...

烟雾监测与太阳能源:实验装置在其中的作用
太阳光在烟雾中的散射效应研究实验装置是一款模拟阳光透过烟雾环境的设备。此装置能帮助探究阳光在烟雾中的传播特性、散射特性及其对阳光的影响。 该装置主要包括光源单元、烟雾发生装置、光学组件、以及系统。光源单元负责产生类似于太阳光的光线,通常选用高亮度的…...

QT下,如何获取控制台输入
最近工作中为了测试某个模块,需要把原先输入模块部分,改成控制台输入来方便测试。在QT中,我们可以使用 QTextStream 类来读取用户的输入来达到目的。下面是一个简单的例子: #include <QCoreApplication> #include <QTex…...

mybatis动态传入参数 pgsql 日期 Interval ,day,minute
mybatis动态传入参数 pgsql 日期 Interval 在navicat中,标准写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL 5 day)在mybatis中,错误写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL#{numbers,jdbcTypeINTEGER} day)报错内…...

常见CSS属性
常见CSS属性。 1. display: 定义:display 属性控制元素如何渲染在文档流中,影响了元素是否占用空间、位置及盒子模型的行为。 使用说明:它可以设置为如block, inline, inline-block, flex, grid, none等值,用于决定元素显示模式…...

WSL-Ubuntu20.04训练环境配置
1.YOLOv8训练环境配置 训练环境配置的话就仍然以YOLOv8为例,来说明如何配置深度学习训练环境。这部分内容比较简单,主要是安装miniAnaconda以及安装torch和torchvision. 首先是miniAnaconda的安装(参考官网的教程Miniconda — Anaconda ),执行…...

运维检查:mysql表自增id是否快要用完
数据库表中最大自增ID用完会报错。判断是否接近或达到自增ID类型的最大值: 对于MySQL中的自增ID,如果使用的是int类型,其无符号(unsigned)的最大值可以达到2^32 - 1,即4294967295。如果使用的…...

深入理解FFmpeg--libavformat接口使用(一)
libavformat(lavf)是一个用于处理各种媒体容器格式的库。它的主要两个目的是去复用(即将媒体文件拆分为组件流)和复用的反向过程(以指定的容器格式写入提供的数据)。它还有一个I/O模块,支持多种…...

坚持日更的意义何在?
概述 日更,就是每天更新一次或一篇文章。 坚持日更,就是坚持每天更新一次或一篇文章。 这里用了坚持,实际上不是恰当的表述,正确的感觉应该是让日更当作习惯,然后,让自己习惯每天去更新一篇文章。 日更…...

内容长度不同的div如何自动对齐展示
平时我们经常会遇到页面内容div结构相同页,这时为了美观我们会希望div会对齐展示,但当div里的文字长度不一时又不想写固定高度,就会出现div长度长长短短,此时实现样式可以这样写: .e-commerce-Wrap {display: flex;fle…...

Qt中https的使用,报错TLS initialization failed和不能打开ssl.lib问题解决
前言 在现代应用程序中,安全地传输数据变得越来越重要。Qt提供了一套完整的网络API来支持HTTP和HTTPS通信。然而,在实际开发过程中,开发者可能会遇到SSL相关的错误,例如“TLS initialization failed”,cantt open ssl…...

P2p网络性能测度及监测系统模型
P2p网络性能测度及监测系统模型 网络IP性能参数 IP包传输时延时延变化误差率丢失率虚假率吞吐量可用性连接性测度单向延迟测度单向分组丢失测度往返延迟测度 OSI中的位置-> 网络层 用途 面相业务的网络分布式计算网络游戏IP软件电话流媒体分发多媒体通信 业务质量 通过…...

zookeeper相关总结
1. ZooKeeper 的架构 ZooKeeper 采用主从架构(Leader-Follower 模型),包括以下组件: Leader:负责处理所有写请求和协调事务一致性。Follower:处理读请求并转发写请求给 Leader。参与 Leader 选举和事务提…...

【openwrt】Openwrt系统新增普通用户指南
文章目录 1 如何新增普通用户2 如何以普通用户权限运行服务3 普通用户如何访问root账户的ubus服务4 其他权限控制5 参考 Openwrt系统在默认情况下只提供一个 root账户,所有的服务都是以 root权限运行的,包括 WebUI也是通过root账户访问的,…...

【GD32】从零开始学GD32单片机 | WDGT看门狗定时器+独立看门狗和窗口看门狗例程(GD32F470ZGT6)
1. 简介 看门狗从本质上来说也是一个定时器,它是用来监测硬件或软件的故障的;它的工作原理大概就是开启后内部定时器会按照设置的频率更新,在程序运行过程中我们需不断地重装载看门狗,以使它不溢出;如果硬件或软件发生…...

详解曼达拉升级:如何用网络拓扑结构扩容BSV区块链
发表时间:2024年5月24日 BSV曼达拉升级是对BSV基础设施的战略性重塑,意在显著增强其性能,运行效率和可扩容。该概念于2018年提出,其战略落地将使BSV区块链顺利过渡,从现有的基于单一集成功能组件的网络拓扑结构&am…...

编译打包自己的云手机(redroid)镜像
前言 香橙派上跑云手机可以看之前的文章: 香橙派5plus上跑云手机方案一 redroid(带硬件加速)香橙派5plus上跑云手机方案二 waydroid 还有一个cuttlefish方案没说,后面再研究,cuttlefish的优势在于可以自定义内核且selinux是开启的…...

自动驾驶的规划控制简介
自动驾驶的规划控制是自动驾驶系统中的核心组成部分,它负责生成安全、合理且高效的行驶轨迹,并控制车辆按照这个轨迹行驶。规划控制分为几个层次,通常包括行为决策(Behavior Planning)、轨迹规划(Trajector…...

java配置nginx网络安全,防止国外ip访问,自动添加黑名单,需手动重新加载nginx
通过访问日志自动添加国外ip黑名单 创建一个类,自己添加一个main启动类即可测试 import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.json.JSONArray; import org.json.JSONObject; import org.sp…...

ARP协议
计算机网络资料下载:CSDN ARP协议 APR(address resolution protocol):地址解析协议,用于实现从IP地址到MAC地址的映射,即访问目标ip地址的mac地址。 网络层及以上采用的ip地址来标记网络接口,但是以太数据帧的传输,…...

Qt程序图标更改以及程序打包
Qt程序图标更改以及程序打包 1 windows1.1 cmake1.1.1 修改.exe程序图标1.1.2 修改显示页面左上角图标 1.2 qmake1.2.1 修改.exe程序图标1.2.2 修改显示页面左上角图标 2 程序打包2.1 MinGW2.2 Visual Studio 3 参考链接 QT6 6.7.2 1 windows 1.1 cmake 1.1.1 修改.exe程序图…...

普通人还有必要学习 Python 之类的编程语言吗?
在开始前分享一些编程的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的对于编程的重要性,这里就不详谈了。 未来,我们和机器的交流会越来越多,编程可以简单看作是和机器对话并分发给机器任务。机器不仅越来越强大࿰…...

「Python」基于Gunicorn、Flask和Docker的高并发部署
目标预期 使用Gunicorn作为WSGI HTTP服务器,提供高效的Python应用服务。使用Flask作为轻量级Web应用框架,快速开发Web应用。利用Docker容器化技术,确保应用的可移植性和一致性。实现高并发处理,提高应用的响应速度和稳定性。过程 环境准备:安装Docker和Docker Compose。编…...

在攻防演练中遇到的一个“有马蜂的蜜罐”
在攻防演练中遇到的一个“有马蜂的蜜罐” 有趣的结论,请一路看到文章结尾 在前几天的攻防演练中,我跟队友的气氛氛围都很好,有说有笑,恐怕也是全场话最多、笑最多的队伍了。 也是因为我们遇到了许多相当有趣的事情,其…...

一文了解MySQL的表级锁
文章目录 ☃️概述☃️表级锁❄️❄️介绍❄️❄️表锁❄️❄️元数据锁❄️❄️意向锁⛷️⛷️⛷️ 介绍 ☃️概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外࿰…...

LVS+Keepalive高可用
1、keepalive 调度器的高可用 vip地址主备之间的切换,主在工作时,vip地址只在主上,vip漂移到备服务器。 在主备的优先级不变的情况下,主恢复工作,vip会飘回到住服务器 1、配优先级 2、配置vip和真实服务器 3、主…...

网络安全防御【防火墙安全策略用户认证综合实验】
目录 一、实验拓扑图 二、实验要求 三、实验思路 四、实验步骤 1、打开ensp防火墙的web服务(带内管理的工作模式) 2、在FW1的web网页中网络相关配置 3、交换机LSW6(总公司)的相关配置: 4、路由器相关接口配置&a…...

IOS上微信小程序密码框光标离开提示存储密码解决方案
问题: ios密码框输入密码光标离开之后会提示存储密码的弹窗 解决方案 1、在苹果手机上面把 “自动填充密码”关闭,但是苹果这个默认开启,而且大部分客户也不会去自己关闭。 2、欺骗苹果手机,代码实现。 先说解决思路…...

AWS CDN新增用户ip 地区 城市 响应头
1.需要自定义cdn缓存策略 这里的策略也是先复制之前的cdn策略哈 最后复制完了 全部新增这两条标头key CloudFront-Viewer-Country CloudFront-Viewer-City 2.然后新增cdn函数,应用你写的这个函数 function handler(event) {var request event.request;var respon…...

Elasticsearch基础概念
Elasticsearch 是一款开源的,ESTful风格的 分布式搜索、存储、分析引擎; 常见的使用场景 网站搜索,代码搜索等日志管理与分析,应用系统性能分析,安全指标监控等数据库同步,将数据库某个表的数据同步到elasticsearch上然后提供搜索服务 ES基本概念 文档 我们向elasticsearch存…...