各大框架,jsp笔记篇

jsp执行原理和顺序

  1. jsp全称为java server page
    当用户发起请求,由tomcat容器接住处理,先翻译jsp为java文件
    ,然后编译class(该翻译编译过程为第一次请求才做的)执行java代码.
  2. java代码执行完成后,把静态内容和java执行的结果一并响应给
    到客户端浏览器.
  3. 浏览器再从上往下执行静态内容(html,css,js)

. servlet的声明周期,是否安全

  1. 用户在第一次请求的时候,或容器启动的时候(需配置loadOnStartup为非负数,越小优先级越高),服务器或容器会创建servlet对象,并且只创建这一次,servlet是一个单例的.
  2. 执行init方法完成初始化
  3. 执行service方法,根据请求方式进入doget/dopost/doput/do…方法.
  4. 当服务器或容器关闭的时候,会执行destroy方法.完成 销毁工作.
    servlet既然是单例的,那么它是否是线程安全的?
    servlet本身不存在线程安全的问题. 但是要注意共享变量的定义范围,程序员的不当编写可能会 造成线程不安全.比如多个线程访问了servlet的同一个实例变量.

struts2运行原理

  1. 用户发送请求到容器,容器经过web.xml中的核心过滤器
    StrutsPrepareAndExecuteFilter,看是否符合过滤条件,
    ,然后去struts.xml中查找匹配的package和action.
    然后进入struts2的一系列的拦截器栈后进入我们的action的
    execute方法.执行完成后,返回字符串,匹配struts配置文件
    中的result,然后跳转到视图.
  2. struts获取数据方法
    属性驱动和模型驱动
  3. struts2是基于拦截器+反射实现的

7. hibernate

  1. hibernate运行流程
    1). 读取hibernate.cfg.xml核心配置
    2). 创建sessionFactory对象
    3). 创建session
    4). 创建Transaction
    5). 提交/回滚事务
    6). 关闭资源

  2. 什么是事务的ACID特性
    1). 原子性 一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
    2). 一致性 事务必须是使数据库从一个一致性状态变到另一个一致性状态。
    3). 隔离性 每个事务之间相互不影响
    4). 持久性 事务一旦完成,那么数据的存储是持久的

  3. 一级缓存和二级缓存
    1). 一级缓存又称为session级别缓存,默认已打开
    2). 二级缓存称为sessionFactory级别缓存,多个session共享.
    hibernate二级缓存需要手动开启.一般使用ehcache第三方缓存.
    经常修改的数据不适合放入二级缓存,因为可能造成脏读,
    或者频繁修改二级缓存. 不经常修改的数据,但是经常查询
    的数据,可以放入二级缓存…使用了二级缓存,那么修改数据
    最好也同步到二级缓存.

  4. hibernate三态
    1). 瞬时态 程序实例化的对象,session和DB中不存在
    2). 持久态 执行get,load,save,update等方法后,对象会缓存到
    session和持久化到数据库,此时对象为持久态.
    对持久态的对象进行修改,最终会影响到session缓存和数据库.
    3). 游离态 调用session的evict,clear,close等方法,对象进入
    游离态或脱管态. 此时对象不受session管理.但数据库中有对应
    的数据.

  5. 什么是延迟加载? load和get的区别?
    1). 延迟加载也称懒加载,指不直接访问数据库,
    而是待具体访问对象的属性的时候,才去查询数据库.
    做到提升或优化性能的作用.
    2). get 是即时加载, 即立即访问数据库查询(会先查12缓存).没有数据
    返回null
    3). load称为"支持延迟加载", 当启用了延迟加载的时候,
    就实现了延迟加载. 如果不启用,那么也会立即加载.
    并且load返回的是代理对象,查询不到数据会抛出异常.

  6. 什么是悲观锁和乐观锁
    1). 悲观锁使用数据库的锁机制(在sql后面加for update),影响性能.
    2). 乐观锁是逻辑层面的锁,应用通过版本号来控制并发操作.
    一般给数据添加版本号或时间戳的方式来实现.

  7. 什么是ORM
    1). Object Relational Mapping 对象关系映射
    2). 类名对应表名
    3). 字段名对应数据库列名
    4). 对象对应一行数据

本指南详细阐述基于Python编程语言结合OpenCV计算机视觉库构建实时眼部状态分析系统的技术流程。该系统能够准确识别眼部区域,并对眨眼动作与持续闭眼状态进行判别。OpenCV作为功能强的图像处理工具库,配合Python简洁的语法特性与丰富的第三方模块支持,为开发此类视觉应用提供了理想环境。 在环境配置阶段,除基础Python运行环境外,还需安装OpenCV核心模块与dlib机器学习库。dlib库内置的HOG(方向梯度直方图)特征检测算法在面部特征定位方面表现卓越。 技术实现包含以下关键环节: - 面部区域检测:采用预训练的Haar级联分类器或HOG特征检测器完成初始人脸定位,为后续眼部分析建立基础坐标系 - 眼部精确定位:基于已识别的人脸区域,运用dlib提供的面部特征点预测模型准确标定双眼位置坐标 - 眼睑轮廓分析:通过OpenCV的轮廓提取算法精确勾勒眼睑边缘形态,为状态判别提供几何特征依据 - 眨眼动作识别:通过连续帧序列分析眼睑开合度变化,建立动态阈值模型判断瞬时闭合动作 - 持续闭眼检测:设定更严格的状态持续时间与闭合程度双重标准,准确识别长时间闭眼行为 - 实时处理架构:构建视频流处理管线,通过帧捕获、特征分析、状态判断的循环流程实现实时监控 完整的技术文档应包含模块化代码实现、依赖库安装指引、参数调优指南及常见问题解决方案。示例代码需具备完整的错误处理机制与性能优化建议,涵盖图像预处理、光照补偿等实际应用中的关键技术点。 掌握该技术体系不仅有助于深入理解计算机视觉原理,更为疲劳驾驶预警、医疗监护等实际应用场景提供了可靠的技术基础。后续优化方向可包括多模态特征融合、深度学习模型集成等进阶研究领域。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值