7/13 - 7/15

news2024/11/24 11:36:01

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对象??? 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Billu_b0x靶机

信息收集 使用arp-scan 生成网络接口地址来查看ip 输入命令&#xff1a; arp-scan -l 可以查看到我们的目标ip为192.168.187.153 nmap扫描端口开放 输入命令&#xff1a; nmap -min-rate 10000 -p- 192.168.187.153 可以看到开放2个端口 nmap扫描端口信息 输入命令&…

工作中项目git如何管理,冲突,push不上去如何解决

主要涉及的知识点 现在公司中一般的git仓库的管理方式是怎么样的代码为什么push不上线上仓库如何解决代码冲突 分支管理方式 git checkout -b 分支名字 是创建并切换到分支 git push origin 分支名字 推到远程仓库分支上 主流的git管理方式 共用一个仓库&#xff0c;不同…

Golang | Leetcode Golang题解之第237题删除链表中的节点

题目&#xff1a; 题解&#xff1a; func deleteNode(node *ListNode) {node.Val node.Next.Valnode.Next node.Next.Next }

解决宝塔Spring Boot项目获取不到环境变量的问题

问题描述 在使用宝塔面板管理Spring Boot项目时&#xff0c;可能会遇到代码无法获取 /etc/profile 文件中设置的Linux环境变量的问题。虽然在SSH终端中可以正常获取&#xff0c;但在通过宝塔面板启动的Spring Boot项目中&#xff0c;环境变量却无法被读取。 解决方案&#xf…

TS 入门(三):Typescript函数与对象类型

目录 前言回顾1. 函数类型a. 基本函数类型b. 可选参数和默认参数c. 剩余参数 2. 对象类型a. 基本对象类型b. 可选属性和只读属性 3. 类型别名和接口a. 类型别名b. 接口扩展 4. 类型推断和上下文类型a. 类型推断b. 上下文类型 扩展知识点&#xff1a;函数重载结语 前言 在前两章…

实验06 持续集成测试

知识点 集成测试定义 集成测试是将多个单元组合起来形成更大的单元&#xff0c;并测试它们是否能协同工作形成子系统。一种旨在暴露单元接口之间、组件/系统间交互或协同工作时所存在的缺陷的测试。 集成测试关注的问题 模块间数据传递是否正确。一个模块的功能是否影响另一…

[iOS]内存分区

[iOS]内存分区 文章目录 [iOS]内存分区五大分区栈区堆区全局区常量区代码区验证内存使用注意事项总结 函数栈堆栈溢出栈的作用 参考博客 在iOS中&#xff0c;内存主要分为栈区、堆区、全局区、常量区、代码区五大区域 还记得OC是C的超类 所以C的内存分区也是一样的 iOS系统中&a…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑频率不同响应阶段的惯量评估优化策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

嵌入式人工智能(6-树莓派4B按键输入控制LED)

1、按键 按键的原理都是一样&#xff0c;通过按键开关的按下导通&#xff0c;抬起断开的情况&#xff0c;GPIO引脚来检测其是否有电流流入。GPIO有input()方法&#xff0c;对于GPIO引脚检测电流&#xff0c;不能让其引脚悬空&#xff0c;否则引脚会受周边环境电磁干扰产生微弱…

《昇思25天学习打卡营第15天|计算机视觉-SSD目标检测》

FCN图像语义分割&ResNet50迁移学习&ResNet50图像分类&ShuffleNet图像分类&SSD目标检测 SSD目标检测 模型简介 SSD&#xff0c;全称Single Shot MultiBox Detector&#xff0c;是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测…

重塑水利未来:智慧水利解决方案的探索与实践,从物联网、大数据到人工智能,科技如何赋能水利行业,实现智慧化管理与决策

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

达梦数据库的系统视图v$systeminfo

达梦数据库的系统视图v$systeminfo 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$SYSTEMINFO 是一个系统视图&#xff0c;用于显示数据库实例的系统信息。这个视图提供了关于数据库实例的运行状态、配置参数、资源使用情况等重要信息&#xff0c;对于数据…

linux端口,进程管理,主机状态监控

linux端口&#xff0c;进程管理&#xff0c;主机状态监控 一、端口 1、什么是端口?2、端口的划分2、查看端口占用 二、进程 1、什么是进程2、查看进程信息2、关闭进程 三、主机状态监控 1、查看资源占用2、磁盘信息监控3、查看网络情况 四、命令总结 一、端口 1、什么是端口…

【089】基于SpringBoot+Vue+小程序实现的在线点餐小程序

系统介绍 基于SpringBootVue小程序实现的在线点餐小程序 基于SpringBootVue小程序实现的在线点餐小程序采用前后端分离的架构方式&#xff0c;系统分为管理员、员工、用户三种角色&#xff0c;实现了用户点餐、订单生成、模拟支付、菜单管理、账号管理、角色管理、分类管理、菜…

什么是边缘计算技术和边缘计算平台?

随着物联网、5G技术和人工智能的不断发展&#xff0c;数据的规模和种类也在快速增加。在这种背景下&#xff0c;传统的云计算模式面临着一些问题&#xff0c;例如延迟高、网络拥塞等&#xff0c;这些问题限制了数据的处理速度和效率&#xff0c;降低了用户的使用体验。为了解决…

GraphRAG→必然桥梁or过渡折中?

GraphRAG→是未来符号与连接主义的必然桥梁 or AGI深度推理的过渡折中&#xff1f; 随着微软前几天发布开源的GraphRAG&#xff0c;进而又带动了领域GenAI的热潮&#xff0c;借着这股热潮&#xff0c;结合之前自己对LLM复杂推理的思考说一下自己关于LLM与泛RAG的理解延展&#…

DDei在线设计器-数据格式说明

数据格式说明 DDei的所有设计数据都以文件为单位保存在一个JSON对象中。JSON对象包含了全量的页签、舞台、图层、控件的位置以及属性信息。开发人员可以存储这个JSON到服务端数据库中&#xff0c;从而轻易的实现保存功能&#xff1b;也解析这个JSON&#xff0c;将其转换成自己业…

莆田外贸建站公司推荐的商会wordpress主题

垂钓用品wordpress外贸模板 钓鱼佬们用的东西鱼饵、鱼竿、支架、钓箱、渔线轮、鱼竿等垂钓用品wordpress外贸模板。 https://www.jianzhanpress.com/?p3973 户外灯具wordpress外贸站模板 米泡、路灯、地脚地砖灯、草坪灯、太阳能灯、投光灯户外灯具wordpress外贸站模板。 …

GNSS技术干货(34):天灵灵 地灵灵 不如C/N0灵

在GPS接收机研发测试过程中&#xff0c;作为硬件射频工程师最关心的测试项目是传导载噪比C/N0&#xff08;carrier-to-noise ratio&#xff09;值&#xff0c;因为它是非常重要的参数指标&#xff0c;可以评估接收机端收到的卫星信号强度&#xff0c;反映硬件射频链路的质量&am…

C语言中的指针:掌握内存的钥匙

C语言中的指针&#xff1a;掌握内存的钥匙 引言 C语言是一种结构化编程语言&#xff0c;它提供了对硬件底层的直接访问&#xff0c;其中最强大的特性之一就是指针。指针允许程序员直接操作内存地址&#xff0c;这对于理解程序的内部工作原理以及优化代码性能至关重要。本文将深…