javaEE13(网站第8章两个课后题)
1、对“jsp+servlet+javabean实现分页查询”功能做如下补充:
(1)记录批量删除:每个记录前添加复选框,点击批量删除,删除选中记录。
- 增加跳转到任意页功能。
- 用户可改变每页记录条数。
页面:
<%@ page pageEncoding="UTF-8" import="java.util.List,dao.StudentDao,entity.Student"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html><html><head><title>模糊</title><script>function qingchu(){document.getElementById("sno").value='';document.getElementById("sname").value='';document.getElementById("sex").value='';}function jump1(pageNo){var queryForm=document.getElementById("queryForm");queryForm.pageNo.value=pageNo;queryForm.submit();}function jump2(pageNo){var pageNo1=document.getElementById("pageNo1").value;if(pageNo1!=""){jump1(pageNo1);}}function btSelectAllOnclick(obj) { var isCheck=obj.checked;var inputs=document.getElementsByTagName("input"); for(var i=0;i<inputs.length;i++){ if(inputs[i].type=="checkbox" && inputs[i].id!="selectAll") //刷选出所有复选框 { inputs[i].checked=obj.checked;if(isCheck==true){inputs[i].name="check";}else{inputs[i].name="user";}} } }function getCheckBox() { var inputs=document.getElementsByTagName("input"); var chkInputs=new Array(); var j=0; for(var i=0;i<inputs.length;i++) { if(inputs[i].type=="checkbox" && inputs[i].id!="selectAll") //刷选出所有复选框 { chkInputs[j]=inputs[i]; j++; } } return chkInputs; }function toChkSon(obj) { var isCheck=obj.checked;obj.name="check";if(isCheck==false) //单选复选框未选中 全选为未选 { document.getElementById("selectAll").checked=false;obj.name="user";return ; } var chkInputs=getCheckBox();var j=0; for(var i=0;i<chkInputs.length;i++) { if(chkInputs[i].checked==isCheck) j++; else break; } if(j==chkInputs.length) //当所有复选框为同一状态时 赋值全选同一状态 document.getElementById("selectAll").checked=isCheck; }function submitForm(){document.getElementById("queryForm").submit();}function pagesizee(){var pagesize=document.getElementById("pageSize").value;if(pagesize!=""&&pagesize!=null){document.getElementById("queryForm").submit();}}</script><style>th,td{border:2px solid gray;padding:3px;text-align:center;}table,form{border-collapse:collapse;margin:0 auto;text-align:center;}#pageSwitch{margin:5px;text-align:center;}</style></head><body><form method="post" action="${pageContext.request.contextPath}/student" id="queryForm">学号<input type="text" name="sno" id="sno" value="${param.sno}">姓名<input type="text" name="sname" id="sname" value="${param.sname}">性别<input type="text" name="sex" id="sex" value="${param.sex}"><input type="button" value="清除" onclick="qingchu()"/><input type="hidden" name="action" value="query3"/><input type="hidden" name="pageNo" value="1"/><input type="submit" value="查询"/><br><br><c:if test="${requestScope.recordCount==0}"><div style="text-align:center">无记录</div></c:if><c:if test="${requestScope.recordCount>0}"><table id="tab"><tr><th><input type="checkbox" id="selectAll" name="selectAll" onclick="btSelectAllOnclick(this)"/></th><th>序号</th><th>学号</th><th>姓名</th><th>性别</th><th>修改</th><th>删除</th></tr><c:forEach items="${studentList}" var="student" varStatus="status"><tr><td><input type="checkbox" onclick="toChkSon(this);" value="${student.id}" id="user" name="user"></td><td>${status.index+1}</td><td>${student.sno}</td><td>${student.sname}</td><td>${student.sex}</td><td><a href="${pageContext.request.contextPath}/student/edit.jsp?id=${student.id}&sno=${student.sno}&sname=${student.sname}&sex=${student.sex}">修改</a></td><td><a href="${pageContext.request.contextPath}/student?id=${student.id}&action=delete" onclick="return confirm('确实要删除该记录吗?')">删除</a></td></tr></c:forEach></table><input type="button" value="删除所选" onclick="submitForm()" /><div id="pageSwitch">共有记录${recordCount}条, 第${pageNo}/${pageCount}页,<c:if test="${pageNo>1}"><a href="javascript:jump1('1')">首页</a><a href="javascript:jump1('${pageNo-1}')">上页</a></c:if><c:if test="${pageNo==1}">首页 上页</c:if><c:if test="${pageNo<pageCount}"><a href="javascript:jump1('${pageNo+1}')">下页</a><a href="javascript:jump1('${pageCount}')">末页</a></c:if><c:if test="${pageNo==pageCount}">下页 末页</c:if>跳转到第<input type="text" name="pageNo1" id="pageNo1" value="" onclick="jump2('${pageNo}')">页,每页<input type="text" name="pageSize" id="pageSize" value="" onclick="pagesizee()">条</div></c:if></form><%String pagesize=request.getParameter("pageSize");if(pagesize!=null&&pagesize!=""){session.setAttribute("pageSize",pagesize);}%></body></html>
Servlet:
private void query3(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");String users[]=request.getParameterValues("check");StudentDao studentDao=new StudentDao();HttpSession session=request.getSession();if(users!=null){for(int i=0;i<users.length;i++){//循环删除被选中的数据try {studentDao.delete(Integer.parseInt(users[i]));} catch (Exception e) {e.printStackTrace();}}}try {String condition=" where 1=1 ";String sno=request.getParameter("sno");String sname=request.getParameter("sname");String sex=request.getParameter("sex");if(notEmpty(sno)) {condition+=" and sno like '%"+sno+"%' ";}if(notEmpty(sname)) {condition+=" and sname like '%"+sname+"%' ";}if(notEmpty(sex)) {condition+=" and sex like '%"+sex+"%' ";}int pageNo=1;int pageSize=10;try {pageNo=Integer.parseInt(request.getParameter("pageNo"));} catch (Exception e) {}String pagesize=request.getParameter("pageSize");String pagesize1=(String) session.getAttribute("pageSize");if(pagesize!= null && !pagesize.equals("")) {pageSize=Integer.parseInt(pagesize);}else if(pagesize1!= null && !pagesize1.equals("")) {pageSize=Integer.parseInt(pagesize1);}int recordCount=studentDao.getRecordCount(condition);if(recordCount>0){List<Student> studentList=studentDao.query(condition,"",pageNo,pageSize); int t1=recordCount%pageSize;;int t2=recordCount/pageSize;int pageCount=(t1==0?t2:t2+1);request.setAttribute("pageNo", pageNo);request.setAttribute("pageCount", pageCount);request.setAttribute("studentList", studentList);}request.setAttribute("recordCount", recordCount);request.getRequestDispatcher("/student/query3.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
Dao:
public void delete(int id) throws Exception{Connection conn = null;PreparedStatement ps = null;try {conn = JdbcUtil.getConnection();String sql = "delete from student where id=?";ps = conn.prepareStatement(sql);ps.setInt(1,id);ps.executeUpdate();}finally {JdbcUtil.free( null,ps, conn);}}
2、针对课程表数据库(数据库脚本下载)实现分页查询。同时按课程名、上课时间、上课地点、任课教师四列查询。
样例:http://47.93.11.179/test/courseServlet3
页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.util.List,dao.courseDao,entity.course"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html><html><head><style>body{text-align:center;}th,td{border:2px solid gray;text-align:center;padding:3px 10px;}table{border-collapse:collapse;margin:0 auto;}</style><script>function jump1(pageNo){document.getElementById("pageNo").value=pageNo;document.getElementById("form11").submit();}function qc(){document.getElementById("kcm").value="";document.getElementById("sksj").value="";document.getElementById("skdd").value="";document.getElementById("rkjs1").value="";}</script><style>.odd{background-color:#E0EEEE;}</style></head><body><h2>课程表分页查询</h2><form action="${pageContext.request.contextPath}/courseServlet3" method="post" id="form11" >课程名<input name="kcm" value="${param.kcm}" id="kcm">上课时间<input name="sksj" value="${param.sksj}" id="sksj">上课地点<input name="skdd" value="${param.skdd}" id="skdd">任课教师<input name="rkjs1" value="${param.rkjs1}" id="rkjs1"><input type="hidden" name="pageNo" id="pageNo" value="1"/><input type="submit" value="查询"/><input type="button" value="清除" onclick="qc()"/></form><br><c:if test="${requestScope.recordCount==0}"><div style="text-align:center">无记录</div></c:if><c:if test="${requestScope.recordCount>0}"><table><tr><th>学院</th><th>课序号</th><th>课程号</th><th>课程名</th><th>任课老师</th><th>上课时间</th><th>上课周次</th><th>上课地点</th><th>班级</th><th>年级</th><th>校区</th></tr><c:forEach items="${studentList}" var="student" varStatus="status"><tr><td>${status.index+1}</td><td>${student.kxh}</td><td>${student.kch}</td><td>${student.kcm}</td><td>${student.rkjs1}</td><td>${student.sksj}</td><td>${student.skzc}</td><td>${student.skdd}</td><td>${student.bj}</td><td>${student.rs}</td><td>${student.xq}</td></tr></c:forEach></table><div id="pageSwitch">共有记录${recordCount}条, 第${pageNo}/${pageCount}页,<c:if test="${pageNo>1}"><a href="javascript:jump1('1')">首页</a><a href="javascript:jump1('${pageNo-1}')">上页</a></c:if><c:if test="${pageNo==1}">首页 上页</c:if><c:if test="${pageNo<pageCount}"><a href="javascript:jump1('${pageNo+1}')">下页</a><a href="javascript:jump1('${pageCount}')">末页</a></c:if><c:if test="${pageNo==pageCount}">下页 末页</c:if></div></c:if><br></body></html>
Servlet:
package servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.courseDao;import entity.course;@WebServlet("/courseServlet3")public class CourseServlet extends HttpServlet{private static final long serialVersionUID = 1L;courseDao studentDao=new courseDao();public CourseServlet() {super();// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubthis.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();try {String condition=" where 1=1 ";String kcm=request.getParameter("kcm");String sksj=request.getParameter("sksj");String skdd=request.getParameter("skdd");String rkjs1=request.getParameter("rkjs1");if(notEmpty(kcm)) {condition+=" and kcm like '%"+kcm+"%' ";}if(notEmpty(sksj)) {condition+=" and sksj like '%"+sksj+"%' ";}if(notEmpty(skdd)) {condition+=" and skdd like '%"+skdd+"%' ";}if(notEmpty(rkjs1)) {condition+=" and rkjs1 like '%"+rkjs1+"%' ";}int pageNo=1;int pageSize=10;try {pageNo=Integer.parseInt(request.getParameter("pageNo"));} catch (Exception e) {}int recordCount=studentDao.getRecordCount(condition);if(recordCount>0){List<course> studentList=studentDao.query(condition,"",pageNo,pageSize); int t1=recordCount%pageSize;int t2=recordCount/pageSize;int pageCount=(t1==0?t2:t2+1);request.setAttribute("pageNo", pageNo);request.setAttribute("pageCount", pageCount);request.setAttribute("studentList", studentList);}request.setAttribute("recordCount", recordCount);request.getRequestDispatcher("courseServlet.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private boolean notEmpty(String s) {return s!=null&&!"".equals(s.trim());}}
Dao:
package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import entity.course;import util.JdbcUtil;public class courseDao {public List<course> query(String condition) throws Exception{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;List<course> studentList=new ArrayList<course>();try {conn = JdbcUtil.getConnection();String sql = "select * from course "+condition;ps=conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){course student=new course();student.setId(rs.getInt(1));student.setXy(rs.getString(2));student.setKxh(rs.getString(3));student.setKch(rs.getString(4));student.setKcm(rs.getString(5));student.setRkjs1(rs.getString(9));student.setSksj(rs.getString(11));student.setSkzc(rs.getString(12));student.setSkdd(rs.getString(13));student.setBj(rs.getString(14));student.setRs(rs.getString(16));student.setXq(rs.getString(17));studentList.add(student);}}finally {JdbcUtil.free(rs, ps, conn);}return studentList;}public int getRecordCount(String condition) throws Exception{Connection conn = null;PreparedStatement pst = null;ResultSet rs = null;int recordcount=0;try {conn = JdbcUtil.getConnection();String sql = "select count(*) from course "+condition;pst = conn.prepareStatement(sql);rs=pst.executeQuery();rs.next();recordcount=rs.getInt(1);}finally {JdbcUtil.free(rs, pst, conn);}return recordcount;}public List<course> query(String condition,String order,int pageNo,int pageSize) throws Exception{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;List<course> studentList=new ArrayList<course>();try {conn = JdbcUtil.getConnection();String sql = "select * from course "+condition+order+" limit ?,?";ps=conn.prepareStatement(sql);ps.setInt(1, (pageNo-1)*pageSize);ps.setInt(2, pageSize);rs=ps.executeQuery();while(rs.next()){course student=new course();student.setId(rs.getInt(1));student.setXy(rs.getString(2));student.setKxh(rs.getString(3));student.setKch(rs.getString(4));student.setKcm(rs.getString(5));student.setRkjs1(rs.getString(9));student.setSksj(rs.getString(11));student.setSkzc(rs.getString(12));student.setSkdd(rs.getString(13));student.setBj(rs.getString(14));student.setRs(rs.getString(16));student.setXq(rs.getString(17));studentList.add(student);}}finally {JdbcUtil.free(rs, ps, conn);}return studentList;}}
相关文章:

javaEE13(网站第8章两个课后题)
1、对“jspservletjavabean实现分页查询”功能做如下补充: (1)记录批量删除:每个记录前添加复选框,点击批量删除,删除选中记录。 增加跳转到任意页功能。用户可改变每页记录条数。 页面&am…...

【Leetcode每日一题】 递归 - 反转链表(难度⭐)(35)
1. 题目解析 题目链接:206. 反转链表 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针,并返回该链表逆序后的新头结点。递归…...

Unity基础学习
目录 基础知识点3D数学——基础Mathf三角函数坐标系 3D数学——向量向量模长和单位向量向量的加减乘除向量点乘向量叉乘向量插值运算 3D数学——四元数为何使用四元数四元数是什么四元数常用方法四元数计算 MonoBehavior中的重要内容延迟函数协同程序协同程序原理 Resources资源…...
Java并发编程学习笔记:AQS
Java并发编程学习笔记:AQS 一、底层原理核心功能同步状态管理CLH 队列和线程调度机制独占模式与共享模式模板方法设计模式自旋、阻塞与超时机制 运行流程 二、锁的公平性公平锁非公平锁 三、容器实现 JUC中的AQS(AbstractQueuedSynchronizer)…...

Github上哪些好用的工具
专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! Qexo-爱写博客的师傅强烈推荐 漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、…...
如何确保面试流程标准化操作,避免人为因素影响**
一、背景 在招聘过程中,面试作为关键环节,其标准化操作至关重要。标准化不仅有助于提高面试效率和质量,还能减少人为因素的影响,确保公平、公正和客观。本文将从以下八个方面探讨如何确保面试流程的标准化操作。 二、明确面试标准 制定明确的面试标准和要求,确保所有面试…...

YOLOv7改进 | 更换主干网络之PP-LCNet
前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对于计…...

MySQL基础-----多表查询之子查询
目录 前言 子查询概述 1.概念 2.分类 一、标量子查询 二、列子查询 三、行子查询 四、表子查询 前言 上一期我们讲了内外连接查询以及自连接查询,那么本期我们就学习多表查询的子查询。本期会详细讲解什么是子查询,以及子查询的相关功能…...
nginx应用场景(附配置)
场景1:web服务器 server {listen 80;server_name example.com; # 替换为您的域名location / {root /data/wwwroot;index index.html index.htm;} }server {listen 443 ssl;server_name example.com; # 替换为您的域名ssl_certificate /path/to/certificate.crt;ssl…...
tvm android_rpc_test.py执行报错解决
执行 python3 tests/android_rpc_test.py 报错: Run CPU test ... Traceback (most recent call last): File "tests/android_rpc_test.py", line 129, in <module> test_rpc_module() File "tests/android_rpc_test.py", line …...

十、项目沟通管理
十、项目沟通管理 从马斯洛需求的各个层级上,都需要沟通的介入。如果缺乏沟通,甚至可能严重损伤身心健康。 沟通渠道 1、 规划沟通管理 规划沟通管理是基于每个相关方或相关方群体的信息需求、可用的组织资产,以及具体项目的需求&#x…...

SQL设计时增加说明列
后关闭sql Studio,然后打开注册表,注册表地址: 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio\18.0_IsoShell\DataProject 如有版本不同,红色内容有所变化,修改内容如下: SSVPropViewColumnsSQL70,SSVPropViewColumnsSQL80 全修改为 1,2,6,7…...

前端提高性能——使用Intersection Observer API对图片视频进行懒加载
前言 最近做了一个项目是类似于商城的,需要放很多图片,在用户选择一页五十条时,页面加载速度会比较慢。为了提高性能,选择用Intersection Observer API 实现图片懒加载。 实现步骤 一、html代码: <img class&qu…...

杂七杂八111
MQ 用处 一、异步。可提高性能和吞吐量 二、解耦 三、削峰 四、可靠。常用消息队列可以保证消息不丢失、不重复消费、消息顺序、消息幂等 选型 一Kafak:吞吐量最大,性能最好,集群高可用。缺点:会丢数据,功能较单一。 二Ra…...

微信小程序(一)
WebView app.是全局配置,app.json是全局配置文件,在页面的.json配置文件中的配置会覆盖我们全局的配置 快捷键: .box 敲回车 ----- <view class"box"></view> .row*8 敲回车: .row{$}*8 敲回车 案例1&…...

【DL经典回顾】激活函数大汇总(十二)(GLU ReGLU附代码和详细公式)
激活函数大汇总(十二)(GLU & ReGLU附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不可或…...

【C++】string类初步介绍
个人主页 : zxctscl 如有转载请先通知 文章目录 1. 为什么学习string类1.1 C语言中的字符串1.2 推荐学习网站 2. 标准库中的string类2.1 string类2.2 string类的常用接口说明2.2.1 constructor2.2.2 遍历string2.2.2.1 下标加[]遍历2.2.2.2 迭代器(itera…...

HCIP --- BGP 综合实验
目录 实验拓扑图: 实验要求: 实验步骤: 1.划分IP地址 R1的配置 R2的配置 R3的配置 R4的配置 R5的配置 R6的配置 R7的配置 R8的配置 2.检测查询IP地址 3.OSPF 建邻 4.查询OSPF 建邻是否成功 5.AS 2 内部BGP 建邻 a. AS 2 内部 IBG…...

【优选算法】专题1 -- 双指针 -- 移动零
前言: 📚为了提高算法思维,我会时常更新这个优选算法的系列,这个专题是关于双指针的练习 🎯个人主页:Dream_Chaser~-CSDN博客 一.移动零(easy) 描述: 「数组分两块」是⾮…...

【计算机视觉】二、图像形成:2、几何基元和几何变换:2D变换
文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)1. 各种变换的关系2. 变换公式3. 2D变换的层次4. python实现 一、向量和矩阵的基本运算 【计算机视觉】二、图像形成:1、向量和矩阵…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...
无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技
无需布线的革命:电力载波技术赋能楼宇自控系统 在楼宇自动化领域,传统控制系统依赖复杂的专用通信线路,不仅施工成本高昂,后期维护和扩展也极为不便。电力载波技术(PLC)的突破性应用,彻底改变了…...

java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟
众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了,延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp ,边缘服务器拉流推送到云服务器 …...
MeanFlow:何凯明新作,单步去噪图像生成新SOTA
1.简介 这篇文章介绍了一种名为MeanFlow的新型生成模型框架,旨在通过单步生成过程高效地将先验分布转换为数据分布。文章的核心创新在于引入了平均速度的概念,这一概念的引入使得模型能够通过单次函数评估完成从先验分布到数据分布的转换,显…...