ASP+SQL旅游管理系统部署避坑指南:从IIS配置到数据库还原

简介:这套ASP+SQL旅游管理系统设计资料面向计算机相关专业毕业生、Web开发初学者及需要完成课程设计的人群,覆盖用户管理、旅游线路展示、在线预订、后台管理、安全性与性能优化等核心模块,可帮助理解ASP动态页面与SQL Server数据库的协同开发方式。压缩包共148个文件,约27.87MB,以ASP程序文件、JPG图片、HTM页面为主,另含DOC论文、开题报告和答辩PPT,源码与文档配套,便于对照阅读和二次开发。已有170人学习下载,适合作为毕业设计参考或项目练手素材。资料中既包含完整的前台景点、酒店、地域、旅游线路等展示逻辑,也提供后台管理脚本与数据库文件,读者可以从中梳理订单流程、会话跟踪、SQL查询及基础安全防护等关键知识点,节省从零搭建系统的时间。

1. asp+sql旅游管理系统设计与下载前的三个判断

把「asp+sql旅游管理系统设计」这套资源包下载下来,第一步不是打开源代码,而是先回答三个问题:这套代码跑在什么环境、数据库放在哪个文件里、论文和答辩材料跟源码对不对得上。很多同学卡在第一步,其实是环境没还原——ASP 这门老技术必须跑在 IIS 里,数据库要先还原成 SQL Server 认得的库,顺序错了,后面全是 500 错误。

这套资源的好处是完整:源代码、论文、开题报告、答辩 PPT 都在一个包里,适合课程设计和毕业论文直接复现。但下载前要有预期:它不是双击就能跑的,需要手动配 IIS、附加数据库、改连接串。这篇笔记按「环境 → 数据库 → 源码 → 避坑 → 答辩材料」的顺序拆一遍,每一步都给出可抄的配置和参数。

2. 环境还原:IIS 与 SQL Server 的搭建顺序决定成败

2.1 先看懂目录结构:入口文件与 global.asa

ASP 项目不像现在框架那样把路由写死。老项目的入口一般挂在根目录的 default.asp 或 index.asp 上,具体看 IIS 的默认文档设置。我建议打开资源包后先做一次“目录体检”:看有没有 global.asa。这个文件是 ASP 应用的启动级配置,经常在里面初始化数据库连接对象。很多新手不知道它的存在,结果改完了 conn.asp 里的连接串,程序还是连旧库,原因就在 global.asa 里的 Application("conn") 被优先使用了。

下面是一份常见的 global.asa 片段(注意该文件没有扩展名,用记事本就能打开):

<script language="VBScript" runat="Server"> Sub Application_OnStart ' 应用启动时创建全局连接对象,后续页面共用 Set Application("conn") = Server.CreateObject("ADODB.Connection") End Sub </script>

这段代码说明了两个问题:第一,项目走的是“全局连接对象”模式,登录页、列表页直接用 Application("conn") 取连接;第二,如果只看单个页面里的连接串,容易越改越乱,因为全局对象在 Application_OnStart 里已经定死了。我一般会先把 global.asa 里的连接逻辑绕过去,改成各页面显式创建连接,调试时心智负担小很多,显式连接的写法在 2.3 节给出。

参数说明:Application_OnStart 是 ASP 应用的全局生命周期回调,只在第一个用户访问时触发,之后所有请求复用同一个连接。好处是响应快,坏处是数据库重启后连接失效,页面会间歇性报错。遇到这种情况,先在命令行执行iisreset再刷新页面,能解决大部分“刚才还好好的,现在全 500”的问题。

2.2 IIS 配置:父路径与脚本执行的开关

ASP 在 IIS 7 以上默认不开启。装完 IIS 后访问 .asp 文件,如果出现源码或被下载,说明 ASP 模块没勾选。正确路径是:控制面板 → 启用或关闭 Windows 功能 → Internet Information Services → 万维网服务 → 应用程序开发功能 → 勾选 ASP,同时把 ISAPI 扩展也勾上,否则某些老组件注册不上。

IIS 里另一个严重影响老项目的是“启用父路径”。ASP 页面里用../这种相对路径读取文件时,父路径被禁用会直接报错,错误信息是“Active Server Pages 错误 'ASP 0131'”。修改位置:IIS 管理器 → 站点根目录 → ASP → 展开“行为”→ 启用父路径 = True。这里不做,后面会被卡很久。

还有一个特别容易忽略的配置是默认文档。IIS 默认文档列表里有 default.htm,但经常没有 default.asp。访问站点根地址时看到的是目录列表或 403,而不是登录页。我会手动把默认文档顺序调成:default.asp、index.asp、login.asp,这样访问根域名直接进系统入口。

验证配置是否生效的做法:把源码拷入站点目录后,访问 http://localhost/。如果看到 500.19 或 500.100,说明站点配置或编译有问题;如果显示目录列表,说明默认文档没配对。后续所有 ASP 报错,优先看 Windows 事件查看器 → 应用程序日志里的 ASP 错误记录,那里有具体行号,比浏览器里天书般的 HTTP 500 有用得多。

2.3 数据库连接串:一个文件切换本机与服务器

老 ASP 项目一般把连接串放在 conn.asp 或 DBConn.asp 里。打开后基本是 ADO 连接 SQL Server 的代码。常见做法是写死一个数据库名和账号密码,本机调试和服务器部署各改一次。下面这份代码是两种认证方式的对比:

<% ' conn.asp —— 全局数据库连接配置 Dim conn Set conn = Server.CreateObject("ADODB.Connection") ' 方式一:SQL Server 账户认证(本机调试常用,注意密码要带引号) conn.Open "Provider=SQLOLEDB.1;Data Source=.\SQLEXPRESS;Initial Catalog=TravelDB;User ID=sa;Password=123456" ' 方式二:Windows 集成认证(部署到服务器时用,不需要明文密码) ' conn.Open "Provider=SQLOLEDB.1;Data Source=.;Initial Catalog=TravelDB;Integrated Security=SSPI" %>

参数说明:Provider=SQLOLEDB.1 是老的 OLE DB 驱动,SQL Server 2000/2005/2008/2012 都认。Data Source 里.\SQLEXPRESS表示本机的 SQL Server Express 实例,如果装的是默认实例,直接写.或localhost。Initial Catalog 对应数据库名称,必须和附加进来的库名一致,否则连接时直接报“无法打开数据库”。User ID 和 Password 是 SQL Server 登录账号,本机调试用 sa 最省事,但服务器上线不要用 sa,单独建一个只读业务账号更安全。

如果这行代码在服务器上报“未找到提供程序”,说明服务器没装对应的 OLE DB 驱动。可以换成更新的写法Provider=SQLNCLI11(SQL Server 2012 Native Client),兼容性更好,但老代码默认都是 SQLOLEDB,没有特殊需求不要随便换。

3. 数据库建模:线路、会员、订单三张核心表的落地关系

3.1 表设计与字段清单

旅游管理系统的数据库不复杂,但表之间的外键关系要理清楚。常见做法是四张核心表:管理员表、会员表、旅游线路表、订单表。下面这个建表脚本是一份可以直接在新库上执行的版本:

CREATE TABLE TT_Admin ( ID INT IDENTITY(1,1) PRIMARY KEY, UserName NVARCHAR(50) NOT NULL, PassWord NVARCHAR(50) NOT NULL ); CREATE TABLE TT_Member ( ID INT IDENTITY(1,1) PRIMARY KEY, UserName NVARCHAR(50) NOT NULL, PassWord NVARCHAR(50) NOT NULL, RealName NVARCHAR(50), Mobile NVARCHAR(20), RegTime DATETIME DEFAULT(GETDATE()) ); CREATE TABLE TT_Route ( RouteID INT IDENTITY(1,1) PRIMARY KEY, RouteName NVARCHAR(100) NOT NULL, Days INT, Price DECIMAL(10,2), StartCity NVARCHAR(50), Traffic NVARCHAR(100), Content NTEXT, ImagePath NVARCHAR(200), Status INT DEFAULT 1, AddTime DATETIME DEFAULT(GETDATE()) ); CREATE TABLE TT_Order ( OrderID INT IDENTITY(1,1) PRIMARY KEY, OrderNo NVARCHAR(30) NOT NULL, MemberID INT, RouteID INT, PersonCount INT, TotalPrice DECIMAL(10,2), ContactName NVARCHAR(50), ContactMobile NVARCHAR(20), Status INT DEFAULT 0, OrderTime DATETIME DEFAULT(GETDATE()) );

表结构说明:TT_Admin 只管后台登录,字段最简单;TT_Member 是前台注册会员,RegTime 用 DEFAULT(GETDATE()) 自动填时间,省去页面手工插入。TT_Route 用 Status 控制线路是否在前台展示,下架的线路不改价格只改状态,这种软删除设计在后端管理里很方便。TT_Order 是业务核心,OrderNo 是给用户看的订单号,MemberID 和 RouteID 是外键。

这里有一个很容易被忽视的设计:订单表里存的是 MemberID 和 RouteID,而不是直接存会员名和线路名。好处是数据规范,坏处是查询订单列表时必须 JOIN 两张表,很多人第一次看订单页面的 SQL 会懵。标准的联表查询写法:

SELECT o.OrderNo, m.UserName, r.RouteName, o.PersonCount, o.TotalPrice, o.Status FROM TT_Order o INNER JOIN TT_Member m ON o.MemberID = m.ID INNER JOIN TT_Route r ON o.RouteID = r.RouteID WHERE o.OrderTime >= '2024-01-01' ORDER BY o.OrderTime DESC

这条 SQL 就是订单管理页面的主干:左边是订单编号、联系人、线路名、人数、总价、状态,右边是筛选条件。打开源码后如果看到类似的语句,说明订单模块的阅读路径应该从这条 SQL 开始。

3.2 建库脚本:mdf 附加与 SQL 脚本两条路径

拿到资源包后,数据库部分通常以两种形式存在:一种是现成的 .mdf 文件,另一种是 create.sql 或者 backup.sql 脚本。强烈建议优先用脚本重建库,因为 .mdf 附加对版本要求太苛刻。

如果用 .mdf 附加:把文件放到 SQL Server 的数据目录(默认是 C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA),在 SSMS 里右键“数据库”→“附加”,选择 .mdf。如果附加时报错,最常见原因是版本太低,见 3.3 节。

如果用脚本建库:在 SSMS 新建查询,先执行建库语句,再执行建表语句:

IF DB_ID('TravelDB') IS NULL CREATE DATABASE TravelDB; GO USE TravelDB; GO -- 接着执行 3.1 节里的 CREATE TABLE 语句

建库后再补几条测试数据。旅游系统如果数据库里一条线路都没有,前台列表空空荡荡,答辩演示时非常尴尬。我一般会往 TT_Route 里插入 10 条左右的线路,价格 500 到 8000 不等,订单也造几笔不同状态的,这样演示订单状态流转时不用现场生成数据。

3.3 排序规则与旧库迁移冲突

老资源最容易翻车的点在这:用 SQL Server 2016 或 2019 附加 2000/2005 时代生成的 .mdf,直接报“无法升级数据库,错误 946”。原因是旧文件的事务日志格式和新版本不兼容,新版数据库引擎拒绝直接挂载。

解决方案有两条。第一条,找一台装了 SQL Server 2008/2012 的机器,把旧库附加后生成脚本:右键数据库 → 任务 → 生成脚本,勾选“编写 CREATE TABLE 脚本”,再把数据用导入导出向导挪到新库。第二条,如果手上没有旧版本,直接在 SQL Server 2008 以后的版本里新建库、执行建表脚本、导入数据,完全不用碰原 .mdf。

还有排序规则问题。老项目多数字段是 varchar,新库默认是 Chinese_PRC_CI_AS,注意 CI 表示大小写不敏感,AS 表示区分重音。如果原库排序规则和你本机不一致,JOIN 时可能会报“无法解决 equal to 操作的排序规则冲突”。解决方式是在连接串里指定数据库排序规则,或者在对比字段上写COLLATE Chinese_PRC_CI_AS,我更推荐后者,只影响当前查询,不改全局设置。

4. 源码骨架:从登录到下单的模块阅读路径

4.1 登录模块与 Session 校验

整套系统的第一行逻辑通常在 login.asp 里。前端是一个表单,提交到后台验证。老式 ASP 写法很直白:取表单字段、拼 SQL、执行、判空、写 Session。下面是一份典型的后台管理员登录代码:

<% Dim username, password, rs, sql username = Trim(Request.Form("username")) password = Trim(Request.Form("password")) If username <> "" And password <> "" Then ' 注意:字符串拼接存在注入风险,课程设计可接受,正式环境必须参数化 sql = "SELECT * FROM TT_Admin WHERE UserName='" & username & "' AND PassWord='" & password & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then Session("admin") = username Response.Redirect "manage.asp" Else Response.Write "<script>alert('用户名或密码错误');history.back();</script>" End If rs.Close() End If %>

这段代码有三个要点。第一,用户名和密码用 Trim 去首尾空格,避免用户输入空格导致查询不命中。第二,conn.Execute(sql)直接执行拼出来的 SQL,性能没问题,但安全有隐患;网上那些说“ASP 系统全是漏洞”的批评,主要指的就是这种写法。第三,验证通过后写入 Session("admin"),这一句是后面所有后台页面的命门。

你在源码里可能会看到 Session("admin")、Session("username") 等不同命名,先搜一下赋值的地方,确认哪个 Session 是登录凭据。我拿到不熟悉的 ASP 源码,第一件事就是全局搜索 Session(,把登录态变量的名字找出来,后面看每个后台页面的权限判断就快了。

4.2 列表分页与详情页的 ADO 标准写法

前台线路列表页的核心是分页。ASP 分页有手写 SQL 和 Recordset 自带的两种方案,老源码里最常见的是 Recordset 分页,代码量少,数据量几千条也没问题。下面是经典写法:

<% Dim rs, pageSize, pageNow, totalCount, totalPage pageSize = 10 If IsNumeric(Request("page")) Then pageNow = CInt(Request("page")) Else pageNow = 1 End If Set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM TT_Route WHERE Status=1 ORDER BY AddTime DESC", conn, 1, 1 rs.PageSize = pageSize totalCount = rs.RecordCount totalPage = rs.PageCount If pageNow > totalPage Then pageNow = totalPage If pageNow < 1 Then pageNow = 1 rs.AbsolutePage = pageNow %>

分页里最容易出错的地方是Request("page")这个参数。用户恶意构造?page=abc时,IsNumeric 判断能拦下直接赋值为 1;但构造?page=999999时,CInt 能转过来,后面的代码虽然会把 pageNow 拉回 totalPage,不过数值过大会让 Recordset 计算 AbsolutePage 变慢,所以务必要加pageNow > totalPage的判断。这两行判断在老代码里经常缺失,实际上线时是性能隐患。

Recordset 的第三个参数 1 表示游标类型是只读,第四个参数 1 表示锁类型是只读。列表查询用只读游标足够,能减少数据库连接占用;如果后台要修改记录,再把第四个参数改成 3 才能兼容 Update。

还有一个入口参数校验:详情页 route_detail.asp?id=5 里的 id。如果不做任何判断直接拼 SQL,攻击者传入?id=1 OR 1=1能拖出整张表。安全的做法是先把 id 转成整数再拼 SQL:

<% Dim id, rs2 If IsNumeric(Request("id")) Then id = CInt(Request("id")) Else Response.Redirect "default.asp" End If Set rs2 = conn.Execute("SELECT * FROM TT_Route WHERE RouteID=" & id) %>

这两行代码把非数字的 id 全部挡在门外,是老系统改造里性价比最高的一步。

4.3 后台权限控制与订单状态流转

后台页面 manage.asp、route_add.asp、order_list.asp 这类文件,每个页面开头都要有 Session 校验。典型写法:

<% If Session("admin") = "" Then Response.Redirect "login.asp" End If %>

这段代码的意思是:Session("admin") 为空,说明没登录,直接跳回登录页。注意 Response.Redirect 之后要加 End,或者直接放在同一行判断里,否则后续代码可能继续执行。真正要防的是绕过方式:直接输入 manage.asp 的完整路径。没有上面这个校验块,后台就裸奔了。

订单模块的核心操作是状态更新。订单状态用数字表示,源码里的约定一般是 0 待确认、1 已确认、2 已完成,也可能反着写。看订单列表页的下拉筛选就能确认。更新状态的 SQL 很简单:

UPDATE TT_Order SET Status=1 WHERE OrderID=123

但在这里,真正要关注的是参数来源。老项目里这条 SQL 是直接拼接Request("id")的,攻击者可以通过修改状态把别人的订单改成已完成。建议统一加上 IsNumeric 校验,和 4.2 节同样的套路。后台管理查询订单时,加上会员名和线路名的条件过滤是常见需求:

SELECT o.OrderNo, m.UserName, r.RouteName, o.Status FROM TT_Order o JOIN TT_Member m ON o.MemberID = m.ID JOIN TT_Route r ON o.RouteID = r.RouteID WHERE r.RouteName LIKE '%' + @kw + '%'

注意 LIKE 的模糊查询,老代码里直接写'%" & kw & "%'没问题,但关键字里如果有单引号会直接报错。处理方式:把'替换成'',一句话就能防住大部分查询报错。

5. 避坑指南:从解压到答辩演示的五个翻车点

5.1 数据库附加失败:版本不匹配是头号杀手

现象:SSMS 附加 .mdf 时报错 946,提示“无法升级数据库”,或者附加成功后访问表时报“文件不是有效数据库文件”。

原因:资源包里的 .mdf 是用 SQL Server 2000/2005 生成的,文件内部结构和新版 SQL Server 不兼容。微软从 SQL Server 2012 开始不再支持直接挂载老格式文件。

解决:放弃直接附加,改用“脚本建库 + 数据导入”的两步走。具体做法:在低版本 SQL Server 或 SQL Server 2008 上附加成功,右键生成完整脚本,再到新库执行脚本,最后用导入导出向导把数据搬过去。没有低版本机器的话,直接执行 3.2 节的建表脚本手动建库,再把数据逐表插入,工期最多半天。

5.2 ASP 页面报 500 或直接显示源码

现象:浏览器访问 .asp 文件,有的直接显示源代码,有的报“HTTP 错误 500.19 - Internal Server Error”。

原因:直接显示源码说明 IIS 的 ASP 模块没有启用; 500.19 多半是 web.config 权限或父路径问题。

解决:先回到 2.2 节勾选 ASP 模块,然后再到 IIS 管理器的 ASP 项里把“启用父路径”设为 True。如果还是 500,打开事件查看器 → Windows 日志 → 应用程序,找到对应的 ASP 错误,里面会明确写到“无法包括文件”还是“未启用父路径”。这里最容易忽略的是:修改 IIS 配置后要重启站点,有些设置不会热更新。

5.3 页面中文全部变成问号

现象:登录页、列表页所有汉字变成 ??,或者标题乱码,英文正常。

原因:老 ASP 页面用的是 GB2312 编码,而新装系统的默认代码页是 UTF-8,两者不一致时浏览器按错误编码解码。

解决:在每页顶部加上<%@ Language="VBScript" CodePage=936 %>,936 就是 GB2312 的代码页编号。如果源码已经写着 CodePage=65001 但还是乱码,说明页面文件本身的保存编码不是 UTF-8,用记事本把文件另存为 UTF-8 即可。更省事的方案是统一用 936,因为资源包里大多数 ASP 源文件本身就是 GB2312 保存的,改保存编码的工作量比改代码页大得多。

5.4 登录报错,但 SQL 语句明显是注入拼法

现象:登录名输入admin' or '1'='1,居然能进后台,或者随便输一个用户名直接爆出 SQL 报错信息。

原因:4.1 节看到的那种字符串拼接 SQL,是 ASP 时代的标准写法,安全和体验都不行。更严重的是页面把数据库错误信息直接吐给用户,等于把表结构泄露出去。

解决:接入到这个资源后,第一件事把错误处理包装一层。在 conn.Open 和 conn.Execute 下面的常用位置加一行:

If Err.Number <> 0 Then Response.Write "系统繁忙,请稍后再试" Err.Clear() End If

更彻底的做法是把登录查询改成参数化命令:

Set cmd = Server.CreateObject("ADODB.Command") cmd.ActiveConnection = conn cmd.CommandText = "SELECT * FROM TT_Admin WHERE UserName=? AND PassWord=?" cmd.Parameters.Append cmd.CreateParameter("u", 200, 1, 50, username) cmd.Parameters.Append cmd.CreateParameter("p", 200, 1, 50, password) Set rs = cmd.Execute

这里的 200 是 adVarChar 的数据类型编号,1 是输入参数方向,50 是长度。改完这部分,至少登录注入是堵住了。这个改动在答辩时讲出来,能明显提升评分——大部分同学的源码都没做这一步。

5.5 本机跑得好好的,部署到服务器上就 500

现象:本地 IIS 都验证通过,传到服务器访问首页就报“页面无法显示”,事件查看器提示“应用程序池已停止”。

原因:服务器没启用 ASP 模块,或者数据库连接串里写的是.\SQLEXPRESS,而服务器上是默认实例,导致连接失败后应用池反复崩溃。

解决:部署清单按顺序走一遍——服务器 IIS 安装 ASP 模块、启用父路径、把站点目录设为本机账户可写入、修改 conn.asp 里的 Data Source 指向服务器数据库实例、然后在服务器上测试数据库连接。千万不要把本机的 web.config 原样拷贝上去,IIS 版本不同配置格式有差异,我见过最离谱的问题就是本地 IIS 10 的配置传到 IIS 7 上直接拒绝启动站点。

6. 论文与答辩 PPT 组织:把源码讲成评委听得懂的故事

6.1 论文章节与源码模块对齐

论文最容易翻车的地方不是写得不好,而是论文写了一套、源码是另一套。拿到这个资源包后,先花半小时画一张模块图:登录、线路管理、订单管理、会员管理,四个模块各自对应哪些页面文件,然后对照论文的目录结构逐一核实。

建议的对应关系:

论文章节对应源码位置讲解要点
需求分析default.asp(前台展示)游客能看到哪些内容
功能设计manage.asp + 各 add/edit 页管理员操作流程
数据库设计建表脚本 + 订单表 JOIN外键关系与主键设计
系统实现conn.asp + 分页代码连接方式与分页逻辑
测试结果页面截图边界输入怎么处理

答辩时评委最常见的连环问是“你数据库为什么这样设计”和“分页怎么实现的”。分页就照着 4.2 节的 Recordset 代码讲,数据库设计就讲 3.1 节的外键关系,只要把这俩讲透,基本不会为难你。

6.2 答辩 PPT 的演示顺序

答辩 PPT 建议按“背景 → 技术栈 → 核心表结构 → 功能演示截图 → 亮点与不足”来排,其中“核心表结构”和“功能演示”各占两页。核心表那页放 TT_Order 和 TT_Route 两表的截图就够了,字段多了评委看不过来。功能演示页一定放带实际线路数据的截图,不要放空表截图,空数据在投影仪上显得什么都没有。

最后一页不要写“谢谢聆听”,直接把系统运行环境列在上面:操作系统、IIS 版本、SQL Server 版本、浏览器。这页是给评委看部署能力的,比客套话有用。

答辩问答环节值得提前准备三个题:为什么选 ASP 不选 ASP.NET、SQL 注入怎么防、订单状态怎么流转。前两个答案就是 2.2 节和 5.4 节的内容。从那以后,我每次拿到这类资源包,都先走一遍“环境是什么、数据库在哪、入口文件是谁”的三连问,确认半小时内能跑起来,再决定要不要深入看代码。希望帮到你。

本文还有配套的精品资源,点击获取

相关新闻

从零构建artcraft:代码生成视觉内容的架构设计与实战

从零构建artcraft:代码生成视觉内容的架构设计与实战

1. 从“artcraft”这个名字说起&#xff1a;它到底想解决什么问题第一次看到“artcraft”这个标题&#xff0c;我脑子里蹦出来的第一反应是“艺术”加“手艺”&#xff0c;一个把创意和动手能力揉在一起的东西。后来跟几个做独立开发的朋友聊&#xff0c;发现大家对这个词的理解…

2026/10/20 5:52:19 阅读更多 →
ENSP中FTP、Telnet与SSH配置原理与安全实践

ENSP中FTP、Telnet与SSH配置原理与安全实践

1. 项目概述&#xff1a;为什么一个看似简单的“ENSP ftp-telnet-ssh”标题值得深挖在某高校网络工程实训室带学生做实验时&#xff0c;我常被问到&#xff1a;“老师&#xff0c;ENSP里配ftp、telnet、ssh到底有啥区别&#xff1f;为什么教材总把这三个放一起讲&#xff0c;可…

2026/10/20 5:52:19 阅读更多 →
从自动化设备到智能体:机器人技术十年演进与落地实践

从自动化设备到智能体:机器人技术十年演进与落地实践

机器人这个圈子有个很有意思的现象&#xff1a;同样是“机器人”三个字&#xff0c;2015年的人和2025年的人说的是完全不同的东西。我在这个行业摸爬滚打了十来年&#xff0c;见过产线上吭哧吭哧干活的六轴机械臂&#xff0c;也见过实验室里学着打滚的四足机器人&#xff0c;最…

2026/10/20 5:52:19 阅读更多 →

最新新闻

STM32 bxCAN实战:从物理层到过滤器配置与调试排障

STM32 bxCAN实战:从物理层到过滤器配置与调试排障

做嵌入式这几年&#xff0c;UART、I2C、SPI都是老朋友&#xff0c;但真正让我觉得“像个通信工程师”的&#xff0c;是开始啃STM32的CAN外设之后。原因很简单&#xff1a;在汽车、机器人和工业现场&#xff0c;CAN总线是默认的“老大哥”&#xff0c;而它在微控制器上的硬件实现…

2026/10/20 6:26:33 阅读更多 →
ReST-MCTS精读:用蒙特卡洛树搜索与过程奖励实现LLM自我训练

ReST-MCTS精读:用蒙特卡洛树搜索与过程奖励实现LLM自我训练

这篇是论文精读系列的第九期。选题的时候我特意挑了一个既讲方法、又讲工程的文章&#xff1a;ReST-MCTS&#xff0c;标题直译过来就是“基于过程奖励引导的树搜索做LLM自我训练”。一句话概括它的核心思想&#xff1a;让大模型不要只想着“快答”&#xff0c;而是像下棋一样&a…

2026/10/20 6:26:33 阅读更多 →
实测,ToClaw为什么是最优秀的OpenClaw龙虾:从 ToDesk 远程到 TaoToken 统一 Key 的配置复盘

实测,ToClaw为什么是最优秀的OpenClaw龙虾:从 ToDesk 远程到 TaoToken 统一 Key 的配置复盘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 6:26:33 阅读更多 →
diagram-design:从图形类型到布局配色的技术图设计指南

diagram-design:从图形类型到布局配色的技术图设计指南

1. 从"diagram-design"这个标题说起&#xff1a;它到底在解决什么问题第一次看到"diagram-design"这个标题&#xff0c;我脑子里冒出来的第一个念头是&#xff1a;这大概率不是一个单纯的"画图工具"&#xff0c;而是一套关于"如何把复杂信息…

2026/10/20 6:26:33 阅读更多 →
CTF Misc入门:DOCX隐写与ZIP伪加密的底层原理及010 Editor实操

CTF Misc入门:DOCX隐写与ZIP伪加密的底层原理及010 Editor实操

CTF新手村常客——Misc题型里的DOCX隐写和伪加密&#xff0c;对很多刚入坑的朋友来说&#xff0c;看WriteUp觉得挺简单&#xff0c;真上手时又容易卡壳。我最初玩PolarCTF这类靶场时也是这样&#xff0c;面对一个打不开的docx文件&#xff0c;第一反应是直接改后缀名丢进解压工…

2026/10/20 6:26:33 阅读更多 →
HTTP POST表单提交全解析:Content-Type、编码格式与实战避坑指南

HTTP POST表单提交全解析:Content-Type、编码格式与实战避坑指南

1. 从一个被忽略的细节说起&#xff1a;为什么表单提交远不止填个action很多人第一次接触Web开发&#xff0c;接触到的第一个"能跑起来"的功能&#xff0c;大概率就是一个HTML表单。写一个<form>标签&#xff0c;配上action和method"post"&#xff0…

2026/10/20 6:25:32 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →