|
昨天闲着无聊,2点左右开始犯困,想起来得有个把星期没写程序了,写点程序提提神吧^_^。
随便想想,就写个图像跟踪吧,把一个貌似图形的url复制到论坛上或者别的网页上,如果被自动加上<img src="一个定制的url" />,那么浏览器就会自动请求这个url,然后,我的服务器就会记住这个访问者。相当与是跟踪了哈。和“一统天下”的统计原理网站访问量的原理是一样的。
核心代码:把请求内容定义为图片,并且从默认流传输出去。核心代码很少,加上注释,不过100行+。使用java实现的话,就是写一个servlet,然后把这个servlet的url-partrern定义为*.jpg,呵呵,这就实现了移花接木的功能了,每次对jpg文件的请求,都会被转移到那个servlet里,然后在doGet或者doPost方法里面,就能够得到HttpServletRequest对象,然后你愿意记录什么就随意了,当然,最后别忘了把图像给人家传过去^_^。
方案一:最简单的方案,不使用数据库,使用文件保存访问记录,把所有的处理都放在doGet或者doPost里面。最简单,最不灵活。半个小时就能搞定。调试部署也就是一个小时-。
方案二:使用数据库记录访问记录。这样就要安装mysql,把数据库驱动jar放到正确的位置,还要建立数据表,在应用中建立连接操作数据库,写sql语句,释放资源等等。这些东西还是都写在doGet或者doPost里面,这时候已经比较乱了……。大概要多用半个小时。数据存储的还行,但是不具有扩展性。
我是从下面这个方案开始做的。
方案三:配置并使用数据连接池,建个表保存数据,同时:
建立类DBConnectionManager,用来连接数据源,getConnection方法。
建立类DBUtil,用来封装数据库操作,executeUpdate,executeQuery等。
建立类DataUtil,用来处理判断数据合法性。
建立类TrackData,将访问记录保存为一个类,包含三个字段,并且利用DataUtil,将数据类写成一个DAO。
然后,在doGet或者doPost里面加上:
TrackData ip = new TrackData(request, response);
ip.saveTrackData();
就ok了。
写完,测试,成功!因为已经进行了多次数据源配置,并且DBConnectionManager,DBUtil等类已经在别的地方写过,直接拖过来用的,大概时间用了一个半小时+。
改进:添加过滤ip列表(不用保存自己访问的记录),定义图像文件缓存(应对大访问量,呵呵)。
添加messages.properties
passedIP=127.0.0.1 211.87.227.95 211.87.209.99
imageRoot=C://Tomcat5x//webapps//TrackYou//images imageNames=clover.jpg 添加类Messages,封装对messages.properties的操作。
保存访问记录的那段代码就成了:
TrackData ip = new TrackData(request, response);
if(DataUtil.isPassedIP(ip.getIP())){ return; } ip.saveTrackData(); 改起来很繁琐,但是还是ok了,用了半个多小时。
方案四:然后觉得不爽,这样限制的太死了,于是想到了模仿事件驱动。
添加接口:VisitEvent,里面只有一个方法:onVisit,在在doGet或者doPost的时候触发此事件。
添加类VisitListen,实现接口VisitEvent。在onVisit方法里保存访问记录。
在Servlet里添加List VisitEventList,保存事件接口。
最大的麻烦就是添加事件监听,因为是Web Application,控制权在Tomcat手里,我无法决定怎么时候加载一个类,也就没办法控制什么时候执行static{}块。又不想把初始化的static{}块乱放。
于是添加Servlet:InitApplicationServlet,然后规定<load-on-startup>0</load-on-startup>,唯一作用就是执行static{}块,初始化应用程序。
static{
InitApplication(); } 到这里,算是比较完美了。
写完,发现核心的东西其实并不是最重要的,重要的是周边的。核心的东西,就好像OpenGL库,要想做出点东西,周边的东西是很重要的。
|
相关推荐
FastAPI核心原理:契约驱动的现代Web架构设计
在微服务与前端SPA深度普及的今天,Web API开发已从‘功能可用’迈入‘契约可信’阶段。API不再只是逻辑容器,而是类型安全、可验证、自同步的机器可读契约。FastAPI通过Pydantic类型系统与ASGI异步内核,将OpenAPI规范从文档生成器升级为运行时校验引擎,实现接口定义、参数校验、错误响应与文档生成的统一。其依赖注入、上下文感知和生命周期管理机制,天然适配云原生环境下的可观测性、熔断治理与跨服务审计需求。本文深入FastAPI 500行核心代码,解析其如何以极简语法支撑高可靠、可演进的企业
Web追踪技术全解析:从Cookie到指纹识别的攻防实战
在当今互联网生态中,用户行为追踪是支撑个性化推荐与精准广告投放的核心技术。其基本原理是通过在客户端存储唯一标识符或采集设备特征来识别用户身份,从而实现跨会话、跨页面的行为关联。从技术价值看,追踪技术不仅优化了用户体验,也为数据分析、产品优化和商业变现提供了关键支撑,广泛应用于电商、内容平台、广告营销等场景。然而,随着隐私意识的提升,以Canvas指纹和跨设备关联为代表的**高级追踪技术**不断演进,对用户隐私构成了新的挑战。本文聚焦于**浏览器指纹**等无状态追踪手段的实现原理与防御策略,通过技术拆解和实战
豆包桌面端:重构信息入口的主动式AI终端
AI原生终端正从被动响应走向主动服务,其核心在于本地化上下文感知与跨应用意图理解。这类技术不再依赖云端大模型和关键词搜索,而是通过轻量级本地推理、进程级行为监听和多模态语义融合,在操作系统层实现‘未言先应’的信息交付。它解决了传统浏览器‘用户去找信息’的范式局限,带来隐私可控、低延迟、高相关性的新交互体验。典型应用场景包括办公文档智能辅助、代码调试伴随支持、PDF财报风险自动识别等。豆包桌面端正是这一趋势的工程化落地代表,凸显了桌面AI在上下文锚定与主动服务上的技术突破。
详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割...
译者 | 王柯凝出品 | AI科技大本营(公众号ID:rgznai100)【 AI 科技大本营导读】目前,计算机视觉是深度学习领域最热门的研究领域之一。计算机视觉实际上是...
AI编排实战:企业级大模型落地的分层架构与安全治理
AI编排(AI Orchestration)是一种面向企业生产环境的系统化方法,其核心在于将大模型能力嵌入已有IT治理体系,而非替代传统集成。它基于数据主权、流程可审计、故障隔离三大刚性约束,通过分层解耦实现LLM与MuleSoft、LangChain等组件的职责分离。技术价值体现在保障合规前提下的AI可控生成、问题可追溯、服务可持续;典型应用场景包括智能风控、销售助手、营销简报等需跨系统协同与强权限控制的业务。本文聚焦真实金融与零售案例,详解如何用工程化手段构建安全、可审计、可演进的企业AI中枢。
2026年OpenAI Plus/Pro升级避坑指南:账户权限、模型访问与API配置全解析
OpenAI Plus/Pro已从简单订阅演变为动态权限系统,其核心涉及账户认证体系、模型路由策略与API配额管理三大技术维度。理解邮箱可信分级、设备指纹绑定、EIA教育通道权限光谱及API密钥活性机制,是保障GPT-4.5调用稳定性和文件解析成功率的基础前提。这类服务重构直接影响跨境电商自动化、高校科研知识提取、SaaS产品集成等典型场景的工程落地效果——尤其当GPT-4.5不可见或PDF解析频繁失败时,问题往往不在模型本身,而在账户区域策略、PDF元数据合规性或密钥心跳失效等底层配置。本文聚焦2026年
图像目标检测与跟踪学习笔记(五)
专题:Object Tracking1. tracking work flow 个人理解:输入图像作用在模型上,得到响应值,根据响应值在图片中画出边界框,然后边界框中的图像与输入图像一同作用对模型进行更新。2.相关滤波跟踪(MOSSE) 相关滤波原理:相关性(correlation),用来描述两个因素之间的联系。而相关性又分为cross-correlation(互相关,两个信号之间的联...
Python自动化实战:从环境搭建到办公文档、网页爬虫与邮件发送全流程
自动化技术旨在通过脚本或程序替代人工执行重复性任务,其核心原理是模拟用户操作或调用应用程序接口(API)。这项技术的核心价值在于显著提升工作效率、减少人为错误,并释放人力以专注于更高价值的创造性工作。在工程实践中,自动化广泛应用于数据处理、系统监控、软件测试以及日常办公等场景。Python因其简洁的语法和丰富的生态库,成为实现自动化的热门选择。通过使用如Selenium、Playwright等库进行网页UI自动化,或利用requests、BeautifulSoup进行网络爬虫,开发者可以高效地抓取和处理网络
Flask+Heroku零成本部署算法模型实战指南
Web部署是机器学习落地的关键一环,其本质是将本地运行的Python算法封装为可通过HTTP访问的服务。核心原理在于利用WSGI服务器(如Gunicorn)桥接Web框架与云平台,实现请求响应闭环。技术价值体现在降低使用门槛、加速验证闭环、支撑轻量级业务场景。典型应用场景包括算法岗作品集展示、教学演示系统、业务部门自助分析工具及产线边缘AI应用。本文聚焦Flask与Heroku免费层的极简组合,深入解析模型加载策略、文件上传安全处理、内存优化技巧及冷启动应对方案,帮助开发者绕过Docker、Nginx等复杂
AWS Lambda无服务器架构实战:从事件驱动到生产级落地
无服务器架构(Serverless)是一种以函数为单位、按需执行的现代云原生范式,其核心原理在于将基础设施管理抽象为事件驱动模型与按执行付费机制。相比传统服务器模型,它通过自动扩缩、内置高可用和细粒度计费,显著降低运维复杂度与资源闲置成本,技术价值体现在开发效率提升、弹性响应能力增强及IT预算可量化。典型应用场景包括API后端、实时数据处理、IoT事件响应与MVP快速验证。本文聚焦AWS Lambda这一主流函数即服务(FaaS)平台,深入解析事件驱动设计、冷启动优化、状态管理策略与生产级可观测性实践,结合
AI团队六大核心角色与端到端协同方法论
AI团队不是算法、工程、产品的简单叠加,而是围绕‘问题定义→价值交付’全链路构建的有机系统。其本质是将不确定性管理、数据资产治理、模型工程化、业务系统集成、合规风险控制等能力,解耦为可协作、可追责的角色单元。在MLOps实践深化与大模型应用普及的双重驱动下,AI产品负责人、数据策略师、算法科学家等角色正从职能标签转向动态能力载体,强调端到端责任意识与跨栈理解能力。本文聚焦AI团队角色设计原理,解析如何通过角色定义、契约机制、橄榄球协同与联合验收,实现从‘模型上线’到‘业务生效’的价值闭环,尤其适用于金融风控
把 MineContext 变成你的记忆外挂:智能上下文管理入门三课,30 分钟从零跑通
下午五点半,合上电脑前你想复盘今天:上午调过的那个接口参数叫什么来着?下午开会敲定的截止日期是几号?上周写的方案文档里,客户叫什么名字?……脑子一片空白,只能翻浏览器历史、扒聊天记录、硬着头皮拼凑记忆。别急着怪自己记性差——你每天产生的"上下文"实在太多了:屏幕上的窗口、打开的文档、敲下的代码、聊过的对话,它们散落在各个角落,没有谁替你记住它们。 **MineContext** 想解决的就是这件
UE5初学者避坑指南:从核心概念到实战技巧的完整备忘录
在游戏开发与实时3D内容创作领域,虚幻引擎5(UE5)作为行业领先的工具,其强大的蓝图系统、材质编辑器和动画状态机是构建交互体验的核心。理解这些基础组件的运作原理,对于实现高效开发至关重要。蓝图通信机制如事件分发器与委托,是实现模块化设计的关键技术,能显著提升代码可维护性。在实际工程中,资产导入管理、性能优化策略以及如何避免材质参数与动画更新的常见陷阱,直接决定了项目的稳定性和表现力。本文聚焦于UE5开发中的高频痛点,系统梳理了从项目设置、蓝图实战到材质动画的避坑经验,旨在帮助开发者,特别是初学者,规避常见
MindsDB:用SQL驱动机器学习的数据库原生AI平台
机器学习正从训练密集型范式转向推理与集成优先的新阶段,核心诉求是降低AI应用门槛、缩短业务价值交付周期。SQL作为数据领域最通用、最普及的接口语言,天然具备描述性、声明式和跨团队协作优势;将其与机器学习深度耦合,实质是重构ML工作流的数据层、模型层和服务层抽象——消除ETL割裂、封装模型生命周期、实现预测即查询。这种数据库原生AI架构显著提升结构化数据场景下的实时预测效率与运维可控性,广泛适用于销售预测、风控评分、客户流失预警等BI可集成业务。MindsDB正是这一技术路径的典型代表。
腾讯会议视频过期了怎么办?亲测可用:用这个免费插件抢救你的会议录制与回放
本文提供了三种亲测有效的腾讯会议视频过期恢复方案,包括浏览器缓存提取、专业工具组合及预防性措施。特别推荐使用免费插件抢救过期会议录制与回放,帮助职场人解决重要视频资料丢失的难题。
Unity UGUI高斯模糊背景效果 简易解决方案
UnityUI背景模糊效果简易解决方案1.功能描述简易界面框架搭建合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 1.功能描述 在我们玩游戏的时候,经常会看到一些游戏会对UI做这样的处理: 可以看到,新开的上层UI界面会以下层UI界面的模糊
Grok 4技术解析:场景闭环驱动的大模型工程实践
大语言模型正从通用能力竞赛转向垂直场景深度优化。Grok 4并非单纯参数升级,而是以X平台真实业务为锚点,重构了上下文管理、多模态融合与实时知识更新三大核心机制——其128K上下文采用热/温/冷三级缓存协同,多模态输入融合文本、结构化元数据与轻量视觉特征,‘实时知识注入’实为动态事件图谱的毫秒级查询。这种‘工程优先’范式凸显了大模型落地的关键矛盾:不是能否回答问题,而是在特定延迟、精度与数据新鲜度约束下,是否能稳定驱动商业结果。对开发者而言,Grok 4的价值不在榜单排名,而在它揭示了一条可复用的技术路径:
手把手教你用STM32+LAN8720搭建以太网通信模块(含原理图)
本文详细介绍了如何使用STM32微控制器与LAN8720物理层芯片搭建以太网通信模块,涵盖硬件设计、软件配置及常见问题排查。重点讲解了LAN8720的低功耗设计、RMII接口简化布线等特性,以及STM32CubeMX配置和LwIP协议栈移植技巧,助力开发者快速实现稳定可靠的嵌入式网络通信。
Google Deep Research智能体:MCP协议与原生图表技术解析
AI研究智能体是面向专业场景的多阶段可信推理系统,其核心在于打破大模型单点幻觉瓶颈,通过分阶段任务解耦与模型间协议化协同提升结果可审计性。Model Context Protocol(MCP)作为轻量级上下文契约规范,定义了查询分解、信源检索、证据合成与结构化输出四大阶段的标准化交互接口;而‘原生图表’并非前端渲染升级,实为嵌入信源元数据与置信度标签的Plotly/Chart.js兼容JSON Schema,实现数据—图表—溯源三位一体。该技术已落地于行业分析、学术文献综述与企业知识中枢等强事实依赖场景,显
EEGnet模型论文讲解(画图详解三种卷积层操作)
我录了一个讲解视频:https://www.bilibili.com/video/BV1si4y1s7g7/ 目录 一、整体介绍 二、梳理激活函数 三、图解三种卷积层 (核心内容) 四、总结 一、整体介绍 EEGnet是为专门一般的脑电图识别任务而设计的通用且紧凑的卷积神经网络。(设计思路借鉴了MobileNet) 下图是EEGnet的整体结构图,只有三个卷积模块,重点是depthwise conv 和separable conv这两个卷积模块。 表格表明了EEGnet的...
如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”
当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时,如何解决?控制面板-系统和安全-Windows Defender防火墙-自定义设置,将专用网络及公用网络关闭。点击后,选择“病毒和威胁防护”-管理配置。进入安全中心后,选择“病毒和威胁防护”将需要排斥的选项输入后,保存配置即可。2:打开windows安全中心。
314



被折叠的 条评论
为什么被折叠?



