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查询出来的最终结果list
        pb.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对象??? 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/799006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习基础:Numpy 数组包

数组基础 在使用导入 Numpy 时&#xff0c;通常给其一个别名 “np”&#xff0c;即 import numpy as np 。 数据类型 整数类型数组与浮点类型数组 为了克服列表的缺点&#xff0c;一个 Numpy 数组只容纳一种数据类型&#xff0c;以节约内存。为方便起见&#xff0c;可将 Nu…

简洁实用的原创度检测工具AntiPlagiarism NET 4.132

AntiPlagiarism NET是一个适用于Windows的程序&#xff0c;它允许您检查文本的唯一性和从不同Internet来源借用的存在。使用AntiPlagiarism NET&#xff0c;您可以&#xff1a; 将程序用于不同的目的该程序适用于学生、教师、记者、文案作者和其他需要检查其文本或其他作者文本…

FPGA 项目菜单功能比较

为了帮助您更好地理解每个FPGA功能模块的实用场合、区别和特点&#xff0c;以下是详细的比较&#xff1a; 功能模块实用场合区别特点FPGA I/O自动控制系统、数据采集系统直接与FPGA板卡上的物理端口交互&#xff0c;配置和使用外部I/O设备灵活配置输入输出端口&#xff0c;支持…

开放式蓝牙耳机哪家强?五款值得入手的款式推荐!

当前&#xff0c;耳机技术迎来颠覆性飞跃&#xff0c;开放式蓝牙耳机横空出世&#xff0c;以其卓越的音质体验与无可比拟的听力保护优势&#xff0c;重塑了耳机行业的标准。其非入耳设计&#xff0c;既保证了音质的纯粹传达&#xff0c;又有效避免了长时间佩戴对耳朵的潜在伤害…

板级调试小助手(2)ZYNQ自定义IP核构建属于自己的DDS外设

一、前言 在上期文章中讲述了小助手的系统结构和原理。在PYNQ的框架开发中&#xff0c;我们一般可以将PL端当做PS端的一个外设&#xff0c;通过读写寄存器的方式来操作外设的功能&#xff0c;就类似于在开发ARM和DSP中操作外设一样&#xff0c;不同时的是&#xff0c;我们可以通…

AIGC率超标?掌握论文去AI痕迹的高效策略

随着 AI 技术迅猛发展&#xff0c;各种AI辅助论文写作的工具层出不穷&#xff01; 为了防止有人利用AI工具进行论文代写&#xff0c;在最新的学位法中已经明确规定“已经获得学位者&#xff0c;在获得该学位过程中如有人工智能代写等学术不端行为&#xff0c;经学位评定委员会…

智慧公厕系统实现人性化与节能化的完美结合

在当今社会&#xff0c;科技的飞速发展正不断改变着我们的生活方式&#xff0c;公厕也不例外。智慧公厕系统的出现&#xff0c;不仅提升了人们的使用体验&#xff0c;更实现了人性化与节能化的完美结合&#xff0c;为城市公共服务带来了全新的变革。 一、人性化&#xff0c;是智…

清朝嘉庆二十五年(1820年)地图数据

我们在《中国历史行政区划连续变化数据》一文中&#xff0c;为你分享了中国历史行政区划连续变化地图数据。 现在再为你分享清朝嘉庆二十五年&#xff08;1820年&#xff09;的地图数据&#xff0c;该数据对于研究历史的朋友应该比较有用&#xff0c;请在文末查看领取方式。 …

SpringBoot实战:多表联查

1. 保存和更新公寓信息 请求数据的结构 Schema(description "公寓信息") Data public class ApartmentSubmitVo extends ApartmentInfo {Schema(description"公寓配套id")private List<Long> facilityInfoIds;Schema(description"公寓标签i…

深度学习概览

引言 深度学习的定义与背景 深度学习是机器学习的一个子领域&#xff0c;涉及使用多层神经网络分析和学习复杂的数据模式。深度学习的基础可以追溯到20世纪80年代&#xff0c;但真正的发展和广泛应用是在21世纪初。计算能力的提升和大数据的可用性使得深度学习在许多领域取得…

platformIO STM32 upload-“Failed to init device.”问题解决

因为发现自己的32板子有带自动下载功能&#xff0c;platformIO也支持串口下载&#xff0c;但一直提示这个问题 问题情况 问题解决 把BOOT0接3.3V&#xff0c;BOOT1接GND&#xff0c;再点击下载(之后接回去复位也可以显示) 这是我从一个有相同问题的人从他尝试过的解决方案中…

SadTalker数字人服务器部署

一、单独SadTalker部署 git clone https://github.com/OpenTalker/SadTalker.gitcd SadTalker conda create -n sadtalker python3.8conda activate sadtalkerpip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pyto…

S7-200smart与C#通信

https://www.cnblogs.com/heizao/p/15797382.html C#与PLC通信开发之西门子s7-200 smart_c# s7-200smart通讯库-CSDN博客https://blog.csdn.net/weixin_44455060/article/details/109713121 C#上位机读写西门子S7-200SMART PLC变量 教程_哔哩哔哩_bilibilihttps://www.bilibili…

Windows中安装python/cmd中执行python命令无效

1、问题阐述? 本文章提供非常详细的安装教程。 本文章适合于不会安装python或者安装了python后,在cmd中执行python命令无效的情况。 2、下载python python下载官网地址:Download Python | Python.org 在下面的框子中选择你需要的版本 如果是windows选择如下包 如下版本…

机器人前沿--PalmE:An Embodied Multimodal Language Model 具身多模态大(语言)模型

首先解释这篇工作名称Palm-E&#xff0c;发表时间为2023.03&#xff0c;其中的Palm是谷歌内部在2022.04开发的大语言模型&#xff0c;功能类似ChatGPT&#xff0c;只是由于各种原因没有那样火起来&#xff0c;E是Embodied的首字母&#xff0c;翻译过来就是具身多模态大语言模型…

计算机网络生成树协议介绍与实践

生成树协议 1.环路 二层环路&#xff1a;数据链路层&#xff0c;交换机&#xff08;二层设备&#xff09;通过线路连接环状。即物理成环并且没有开启防环协议。 危害&#xff1a;广播风暴&#xff1a;交换机将未知帧广播&#xff0c;收到后的交换机继续广播&#xff0c;不断…

国产替代正当时,智汇云舟视频孪生加速信创国产化替代

数据安全是国家安全的核心&#xff0c;我国正积极推进计算机软硬件的国产化&#xff0c;以减少对外部技术的依赖&#xff0c;提升国内信息技术产业的竞争力。国产化软硬件的适配不仅能够维护企业机密和客户信任&#xff0c;还能有效防止数据泄露和网络攻击&#xff0c;同时帮助…

vscode编译环境配置-golang

1. 支持跳转 如果单测函数上方不显示run test | debug test&#xff0c;需要安装Code Debugger&#xff08;因为以前的go Test Explorer不再被维护了&#xff09; 2. 单测 指定单个用例测试 go test -v run TestXXXdlv 调试 需要安装匹配的go版本和delve版本&#xff08;如…

OrangePi AIpro在安防领域的深思和实战(旷视科技CNN模型ShuffleNetV1开发案例测试)

一、前言 公司最近有个项目是安防领域的&#xff0c;主要用在边缘结点&#xff0c;虽然已做成形&#xff0c;但是还是存在一些缺陷&#xff0c;例如&#xff1a;算力问题&#xff0c;开发板的成熟问题&#xff0c;已经各种技术的解决方案落地问题。目前我们集成了很多功能&…

MyBatis where标签内嵌foreach标签查询报错‘缺失右括号‘或‘命令未正确结束‘

MyBatis <where>标签内嵌<foreach>标签查询报错’缺失右括号’或’命令未正确结束’ <where>标签内嵌<foreach>标签 截取一段脱敏xml&#xff0c;写明大概意思 <select id"queryLogByIds" resultMap"BaseResultMap">SELE…