学习使用J2EE Web应用的事件功能-Java基础-Java-编程开发

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5 H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享! 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

在Servlet2.3规范中,Web应用事件是新增加的部分。它让你能最大程度地控制你的Web应用。在本文中,我们将学习两个很重要的应用事件:

应用的启动和停止

Session的创建和失效如它们的名字那样,应用启动事件发生在你的应用第一次被servlet容器装载和启动的时候;停止事件发生在Web应用停止的时候。

Session创建事件发生在每次一个新的session创建的时候,类似地Session失效事件发生在每次一个Session失效的时候。为了使用这些Web应用事件为你做些有用的事情,我们必须创建和使用一些特殊的“监听”类。下面,我们将研究这些监听类到地是什么以及我们如何去使用它们。

监听类:

它们是实现了下边两个接口中任何一个接口的简单的java类:

javax.servlet.ServletContextListener
javax.servlet.http.HttpSessionListener

如果你想让你的类监听应用的启动和停止事件,你就得实现ServletContextListener接口;如果你想让你的类去监听Session的创建和失效事件,那你就得实现HttpSessionListener接口。 让我们看看在这些接口中你必须要实现的方法。

1.ServletContextListener :

接口包括如下两个方法:

public void contextInitialized
(ServletContextEvent sce);
public void contextDestroyed
(ServletContextEvent sce);

如果你实现了一个接口,那你就必须实现它所有的方法。因此,如果你想利用应用的启动和停止事件,你就需要创建一个Java类并实现ServletContextListener接口。下边是这样的一个类的例子:

/*File : ApplicationWatch.java*/
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
public class ApplicationWatch implements
ServletContextListener
{
public static long
applicationInitialized = 0L;
/* 应用启动事件 */
public void contextInitialized
(ServletContextEvent ce)
{
applicationInitialized =
System.currentTimeMillis();
}
/*应用停止事件 */
public void contextDestroyed
(ServletContextEvent ce) {}
}

在上边的代码中,ApplicationWatch类实现了ServletContextListener接口。它实现了接口中的两个方法,但只用了其中的一个方法,另一个方法中没有写任何代码。这个类把应用启动的时间记录在一个可以从其它应用类中存取应用启动时间的public static变量中。

我将很快解释如何告诉服务器我们有这个监听类,但首先让我们看看HttpSessionListener接口有什么不同的方法。

2.HttpSessionListener :

这个接口也只包含两个方法,分别对应于Session的创建和失效:

public void sessionCreated
(HttpSessionEvent se); public void sessionDestroyed
(HttpSessionEvent se);

如上边的ApplicationWatch例子那样,我们也创建了一个实现HttpSessionListener接口的类。如下:

/*File : SessionCounter.java*/
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
public class SessionCounter
implements HttpSessionListener
{
private static int activeSessions =0;
/* Session创建事件 */
public void sessionCreated
(HttpSessionEvent se)
{
activeSessions ;
}
/* Session失效事件 */
public void sessionDestroyed
(HttpSessionEvent se)
{
if(activeSessions>0)activeSessions--;
}
public static int getActiveSessions()
{
return activeSessions;
}
}

在上边的代码中,SessionCounter类实现了HttpSessionListener接口,其目的是计算活动会话的数量。

好了,我们已经学习了什么是Web应用事件,有什么接口可以用以及看到了一些实现这些接口的例子。让我们看看如何告诉应用服务器我们有这些监听类。

Web.xml :

我们通过把类路径加入/WEB-INF/web.xml文件的标签中来告诉服务器我们的监听类。下边是一个web.xml文件的例子:

<!-- Web.xml -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-appPUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3
//EN""http://java.sun.com
/j2ee/dtds/web-app_2.3.dtd">
<web-app>
<!-- Listeners -->
<listener>
<listener-class>
com.stardeveloper.web.listener.SessionCounter
</listener-class>
</listener>
<listener>
<listener-class>
com.stardeveloper.web.listener.
ApplicationWatch</listener-class>
</listener>
</web-app>

如上所示,在web.xml文件中声明监听类是非常简单的。现在,每次的服务器的启动和停止,会话的创建和失效,配置好的监听类的相应的方法就会被调用。就这么简单!

使用OpenCV进行3D重建:详细指南 3D重建是计算机视觉领域的一项关键技术,它能够从二维图像中恢复出场景的三维结构。这项技术在机器人视觉、增强现实和3D建模等多个领域都有广泛的应用。在本篇技术博客中,我们将详细介绍如何使用OpenCV这一流行的计算机视觉库来实现3D重建。我们将逐步探讨整个过程,包括相机标定、特征点提取与匹配、立体校正、深度图计算以及最终的三维重建。3D重建是一个复杂的过程,涉及多个步骤和多种算法。OpenCV提供了强大的工具来支持这一过程,从相机标定到特征点提取与匹配,再到立体校正和深度图计算,最后实现三维重建。 阅读详情

相关推荐

大模型辅助意图识别,更懂你的客户洞察平台

通过大量的学习和训练,大模型不仅具备庞大的知识库,更掌握着丰富的语言模式和语义规则,能够精准地理解每一段对话的含义,为每一通对话进行全面、准确的标注。主要来自客户的行为信息,将客户与机构的重要时刻以时间轴的方式呈现出来,掌握客户生命周期的完整脉络,识别一些容易被忽略的重要营销MOT(Moment Of Truth,关键时刻研究)机会,提示理财经理跟进处理。将客户的历史交易数据和埋点系统采集的客户行为数据结合起来,辅以部分内容资讯的偏好探测,综合分析和预测客户在各个维度的喜好程度,实现千人千面的客户推送。

Dezhuzhineng的博客 2159

学习使用J2EE Web应用的事件功能

概述:   在Servlet2.3规范中,Web应用事件是新增加的部分。它让你能最大程度地控制你的Web应用。在本文中,我们将学习两个很重要的应用事件:应用的启动和停止Session的创建和失效如它们的名字那样,应用启动事件发生在你的应用第一次被servlet容器装载和启动的时候;停止事件发生在Web应用停止的时候。     Session创建事件发生在每次一个新的session创建的时候,类似地

enet_java的专栏 766

【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)

在当今科技飞速发展的时代,人工智能(AI)已经成为各行各业不可或缺的一部分。特别是在文档处理和数据分析领域,AI的应用更是无处不在。今天,我要向大家介绍一个开源的AI框架引擎——RAGflow。它能够在深度文档理解方面执行检索增强生成(Retrieval-Augmented Generation,简称RAG),并且被认为是目前最优秀的RAG框架之一。本文将详细探讨RAGflow的创新功能、技术特点以及如何在实际应用中发挥其最大潜力。

Yooao的博客 9618

【Java EE】JavaEE导读,探寻 JavaEE:解锁企业级开发的璀璨密码与进阶指南

本文聚焦 JavaEE,深入剖析其发展历程、应用场景、开发原理与学习路径。JavaEE 脱胎于 Java SE,历经从 J2EE 到 Java EE,再到 Jakarta EE 的演变。它主要用于企业级开发,尤其是 Web 开发,基于 B/S 架构实现前后端交互。在学习 JavaEE 时,需先筑牢 Java 基础,掌握 Web 开发技术,包括前端的 HTML、CSS、JavaScript,后端的 Servlet、JSP 等。还要深入理解核心技术概念,借助 Spring、MyBatis 等开源框架提升开发效率

Code哈哈笑的博客 1543

【Cadence】stb仿真和ac仿真——以一个简单的全差分反相放大器仿真为例

最近在补一些仿真方法学的问题,以及一些一直以来都有点模糊的概念,简单记录一下。搭建一个以两个CMOS反相器构成的全差分放大器(28nm工艺,PMOS和NMOS尺寸一致)激励的设置方便共模和差模仿真用同一个TB(这里有一个问题:这个放大器需要在开环下仿真还是闭环下?哪些放大器应用在开环,哪些闭环?这种应用场景不同会导致需要仿真得到开环还是闭环增益,或者环路增益?(我知道放大器在设计的时候肯定都是闭环应用的多,但是什么时候没必要闭环应用?光验证ac和stb仿真是否一样的话有必要有回路吗?

weixin_44951108的博客 5万+

RK3588嵌入式AI工业部署:YOLOv11 + OpenCV实时推理系统全栈实现

接下来,你可以尝试优化模型(如量化、剪枝)、扩展功能(如多摄像头推理、结果上传到云端),让你的AI应用更加完善。不需要担心技术门槛,我们会一步步带你完成环境搭建、模型转换、部署推理的全流程,最终让你在RK3588上体验AI目标检测的丝滑快感。首先,我们需要把YOLOv11的PyTorch模型(.pt格式)转换成ONNX格式,这是模型部署的第一步。此时,你应该能看到摄像头画面中出现了实时的目标检测框,标注着检测到的物体类别和置信度。文件,这就是RK3588可运行的模型文件。文件,这就是转换后的ONNX模型。

LXY_LOVE36的博客 246

Java基础能力文章合集150篇【JavaEE、Web容器、JSP......】

小编根据知识图谱整理了优快云技术大咖的优质文章200篇,帮助Java工程提升基础能力,实现系统化持续学习! Java工程师基础能力文章200篇大合集包含: 【JavaEE】30篇、【Lambda表达式】48篇、【函数式编程】45篇、【JVM】50篇、【JVM分析工具】22篇 面对几百篇文章,你是否苦于无从下手?一键收藏后再也不想打开?别担心,有学习小助手陪你共同进步,实现系统化持续学习。 扫描下方二维码添加小助手,周一周二【技术知识库】、周三【学习分享】、周四【大咖直播】、周五【温故知新.

优快云高校俱乐部官方博客 3318

【云原生系列】第一讲:什么是云计算

云计算(cloud computing):分布式:分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,合并&反馈:通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期:分布式计算:简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过分布式计算,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。现阶段:计算:分布式计算、效用计算、负载均衡、并行计算、存储。

颜淡慕潇 1万+

基于j2ee的web应用

本文已经在《微型机与应用》发表,并被万方等多个数据库录用。  基于j2ee技术的Web应用倪礼豪(*****************************,浙江**)摘要  J2EE和DotNet框架是实现Web应用的两个极具竞争力的开发平台,J2EE技术在大型应用系统的研发过程中有重要的意义、合理的分层、采用恰当的设计模式可起到解耦合降低系统复杂度的目的。struts、hi

nilihao的专栏 5578

使用 syncstart 实现同场景下多个音视频音轨自动化同步

如果需要在视频编辑中同步多个机位的音轨,使得相同的视频能够同时播放,手动操作可能会变得相当复杂。特别是当处理多个视频文件时,例如有10个视频需要互相匹配,实现一对多的同步关系,这就涉及到为每对视频生成匹配的音轨数据。手动完成这样的任务,如生成90套对应的音轨数据,不仅耗时而且容易出错。因此,使用脚本自动化这一过程是一个更为高效和准确的解决方案。通过编写脚本,您可以批量处理多个视频文件,自动同步它们的音轨,大大简化了音视频编辑的工作流程,并确保了同步的准确性。

Mr数据杨 1076

/home 挂载点无法访问 怎么解决 指令可以进入Home目录 du: 无法访问“*“: 输入/输出错误

本文介绍了Linux系统中XFS文件系统损坏的故障排查与修复方法。当/home挂载点出现I/O错误时,通过dmesg发现XFS日志错误和磁盘I/O报错,判断可能是文件系统逻辑损坏或硬件故障。解决方案包括:1)尝试卸载分区;2)使用xfs_repair工具进行预检查和正式修复;3)在极端情况下使用-L参数强制清空日志;4)若存在硬件故障,建议优先进行数据抢救并更换硬盘。最后强调重要数据应先备份,再考虑系统重建。

专注于计算机研发知识和资讯分享 155

剑指Offer——J2EE基础知识点储备

文章目录一、前言二、Java 基础2.1 jdk 1.8 新特性(核心是Lambda 表达式)2.2 java 存在内存泄露和内存溢出的应用场景2.3 匿名内部类是什么?如何访问在其外面定义的变量?三、J2EE 基础3.1 servlet 生命周期3.2 保存会话状态方式,有哪些区别?3.3 cookie 和 session 的区别3.4 web.xml中标签加载顺序3.4.1 各个标签的简单说明3.5 页面传值方法四、SSH三大框架4.1 Struts4.1.1 struts2 工作流程:4.1.2 s

IT全栈 华强工作室 4万+

SAP_FICO模块-资产减值功能对折旧和残值的影响

SAP_FICO模块-资产减值操作对资产历史折旧以及后续折旧的影响,包括减值操作的配置前提

风沙的博客 2805

Java中JavaSE与JavaEE的区别

JavaSE和JavaEE都是Java技术的重要组成部分,但它们在功能、用途和设计理念上都有所不同。JavaSE提供了基础的编程功能和API,适用于开发桌面和简单服务器端应用程序;而JavaEE则提供了企业级功能和API,适用于开发大型、分布式的企业级应用。在实际应用中,应根据项目需求选择合适的Java平台版本,并结合成熟的开发框架和工具来提高开发效率和代码质量。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章JavaSE与JavaEE的区别JAVAEE和项目开发——web实战案例。

ning的博客 3137

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JavaEE学习路线

JavaEE学习路线 Java编程学习 编程基础:计算机和Java基本知识,再学习运算符、流程控制、字符串、数组、方法等 面向对象:面向对象编程,通过小案例学习类的概念。 深入学习继承、多态、抽象类与接口以及Java内置基础类库的使用。 学习IDE 、Eclipse的使用 集合与IO:集合类以及自定义集合类的方法。 异常处理教你如何处理程序中的异常。 ...

PrettyBoy@的博客 2739

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

起源之路——JSR?J2EE?JavaEE?

起源之路——JSR?J2EE?JavaEE? 前言 鉴于自己工作了一段时间对各种框架中间件处于知其然不知其所以然的状态中,所以萌生了追寻起源的想法,于是便开始准备编写该系列文章,系统的整理自己对J2EE的理解。若有发现理解不到位,或有不同见解的地方,欢迎各位大神拍砖。 什么是J2EE? J2EE的全称是Java 2 Platform Enterprise Edition,它是由多家公司共同参与并制...

LuoGuoHua_Xin的博客 882

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JavaEE学习导读

随着技术的发展,⽆论是后端开发还是前端开发,开发的时候都很少使⽤原⽣的代码,⽐如:JDBC、JS等,取⽽代之的是各种开发框架,如:后端框架(Spring、SpringBoot、Mybatis 等)、前端框架( Vue、Node 等)。这些框架都有⼀个共同的特点,就是简单、⾼效,这极⼤的提⾼了我们的开发效率。那什么是框架呢?框架(Framework),意思是框架、机制、准则。最早是源于建筑⾏业,是⼀个框⼦——指其约束性,也是⼀个架⼦——指其⽀撑性,是⼀个基本概念上的结构,⽤于去解决或者处理复杂的问题。

weixin_45698983的博客 871

j2ee的学习顺序

ZH592677127的专栏 1115

【JavaEE】JavaEE、web 开发、框架(Spring) 、Maven

Java EE 的概念,什么是 web 开发,框架的概念和优点,Maven 如何使用。

2301_79765510的博客 1996

Java及J2EE Web核心开发技术

本课程单元精选J2EE Web应用系统开发中所涉及的主要核心应用技术,如面向对象程序设计、Java语言的基本语法、J2EE Web核心开发技术、JDBC数据库访问技术及应用等方面的课程内容,这些核心技术相互组合将为从事基于J2EE平台的软件开发人员构建出良好的企业级应用系统开发中所需要的技术和相关的知识。 一、培训对象 对于软件企业或非软件企业的专业开发部门从事项目开发的一线程序员;初步具备C

中科院计算所培训中心 1355

J2EE

J2EE是什么,主要包括哪些技术 一、J2EE是什么? 从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物。 适用于企业级应用的 J2EE,提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的 开发、管理和部署。J2EE 是一个标准,而不是一个现成的产品。(来自百度) 二、J2EE主要包括哪些技术 servlet Servlet是java平台上的CGI技术。Servlet在服务器端运行,动态地生成

qq_42918433的博客 8209

JAVA之J2EE学习路线

历经2,3个月,终于学完了J2EE的方方面面,虽然还是一知半解,好歹也算是整条路都走通了,总结一下学习过的技术,红色字体是本人未知领域,重点学习了解的对象。感觉自己老了,岁月不饶人啊,想当年爷混迹江湖的时候,学C++也就2,3个月搞定了,现在一把的技术基础加无数的项目经验,学个破烂J2EE还花了辣么长时间。   ★第一阶段:Java基础,包括java语法,面向对象特征,常见API,集合

hsc456的专栏 1万+

框架——JavaEE(J2EE)相关

1、什么是JavaEE? Java EE,Java 平台企业版(Java Platform Enterprise Edition),之前称为Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名为 Jakarta EE(这个名称应该还没有得到群众认可)。 狭义的 Java EE 是 Sun 公司为企业级应用推出的标准平台,用来开发B/S架构软件,可以说是一个框架,也可以说是一种规范。 广义的 Java EE 包含各种框架,其中最重要的就是 Spring 全家

weixin_42924812的博客 1107

JAVAEE搭建WEB开发环境

1. 下载和安装1.1 下载JDK在Java官方网站下载最新版本的 Java SE:  http://www.oracle.com/technetwork/java/javase/downloads/index.html1.2 下载 Java EE 最新版本:      http://www.oracle.com/technetwork/java/javaee/downloads/index.ht...

路途遥远,初心难忘,道阻且长,愿君走出半生,归来仍是少年 1万+

后端开发基础——Web应用基础

本文为大家介绍了后端开发基础——Web应用基础,希望对你有帮助~~

weixin_53919192的博客 2678

Java 和 J2EE 有什么不同?

是 Java 的一个平台规范,它专注于企业级应用程序的开发。J2EE 提供了一整套用于构建复杂、分布式、多层架构应用的 API 和工具。J2EE 在 Java 的基础上加入了许多企业级应用的功能,如数据库连接、Web 开发、消息服务等。J2EE 目前已经被更名为,并且在后续版本中进行了一些重要更新。Java EE 最后由Oracle维护,之后成为了的一部分,并重命名为Jakarta EE。J2EE 的特点分布式应用支持。

智的博客 1365
上一篇: Java IDE-NetBeans IDE 4.1 入门指南-Java基础-Java-编程开发
下一篇: Java十大经典中文图书-Java基础-Java-编程开发
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值