当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 零基础自学爬虫技术该从哪里开始入手?
  • 使用Elasticsearch Python SDK 查询Easysearch
  • 惊呆了!小白也能上手,Python打造微信自动小秘书(Python如何自动化控制微信:聊天,图片,文件等操作)
  • Flink Window 窗口【更新中】
  • cleanshot Mac 上的截图工具
  • Linux——删除账号,账户切换,控制用户对系统命令的使用权限,配置/etc/sudoers文件方式
  • 1.29、基于浅层神经网络的数据拟合(matlab)
  • Mysql表的三范式、事务和查询
  • 远程访问及控制(ssh)
  • 网关设备BL122实现Modbus RTU/TCP转Profinet协议
  • 深入Python网络编程:基础、工具和实践
  • Vue3渐变文字(GradientText)
  • 浅写:vs-select的传参方法,传递一整行参数,而不是单个
  • 《云原生安全攻防》-- 容器攻击案例:Docker容器逃逸
  • Git进阶(十四):Windows下 git 提示 Repository not found
  • 230. Kth Smallest Element in a BST
  • C++入门教程(10):for 语句
  • Facebook AccountKit 接入的坑点
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • iOS小技巧之UIImagePickerController实现头像选择
  • java中具有继承关系的类及其对象初始化顺序
  • js
  • Linux Process Manage
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • oschina
  • 百度小程序遇到的问题
  • 大数据与云计算学习:数据分析(二)
  • 对JS继承的一点思考
  • 构造函数(constructor)与原型链(prototype)关系
  • 关于字符编码你应该知道的事情
  • 区块链技术特点之去中心化特性
  • 使用SAX解析XML
  • 为视图添加丝滑的水波纹
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 数据可视化之下发图实践
  • ​TypeScript都不会用,也敢说会前端?
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • $.proxy和$.extend
  • (02)Hive SQL编译成MapReduce任务的过程
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (规划)24届春招和25届暑假实习路线准备规划
  • (生成器)yield与(迭代器)generator
  • (自用)网络编程
  • .aanva
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .bat批处理出现中文乱码的情况
  • .Net 8.0 新的变化
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 设计一套高性能的弱事件机制
  • .Net下的签名与混淆
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @component注解的分类
  • [ 数据结构 - C++]红黑树RBTree