欢迎访问wabc.cc — 源码交易 · 软件定制 · 建站服务一站式平台
全部分类
首页 - 首页 - 解决方案 - 推荐文章 - Java利用ServletContext制作简易网站计数器

Java利用ServletContext制作简易网站计数器

分类:推荐文章 · 发布:2025-12-20 · 浏览:1

貌似有段时间没分享干活了哈!

Java利用ServletContext制作简易网站计数器

今天我们就来分享

ServletContext

什么是 ServletContext

当我们启动 web 容器的后,会为每个 web 应用程序都创建一个对应的 ServletContext 对象,它代表当前 web 应用。

由于一个 web 应用中的所有 Servlet 共享同一个 servletcontext 对象,因此servlet 对象之间可以通过 servletcontext 对象来实现通讯。ServletContext 对象通常也被称之为 context 域对象。公共聊天室的项目就会用到它。

ServletContext、Cookie和Session的对比

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

我们把 ServletContext 想像成一个共用的空间,可以被所有的客户访问,也就是说 A客户端可以访问,B客户端可以访问,C客户端也可以访问。

ServletContext 应用

初始化参数

Javax.servlet.ServletConfig

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

我们来创建一个

ContextServlet

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

虽然现在有注解的方式而且很方便 但是我们还是要知道配置的方法毕竟现在还是有很多项目用的是配置的方法

配置我们的 web.xml

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

好的!

现在来启动服务器运行一下

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

嗯!看来程序没有什么问题了

注意:

如果我们的程序有很多的Servlet需要配置,你可以复制这一段!然后把名称修改一下就可以了!(使用的配置的方法,注解的方法就不与需要配置)

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

在 web 应用中,我们可以创建一些初始化的参数—Init-param。我们可以通过 servletConfig 对象获取当前 servlet 的初始化参数。

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

这个属性就是这样配置的

然后在来写我们的 Servlet

把 name 属性的值输出到页面

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

保存修改

重新发布一下

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

那么我们现在另外创建一个 Servlet 来测试一下。

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

看看可不可以读取到这个 name 属性

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

结果显示我们的 AnotherServlet 获取不到这个 name 的值

(Init-param只能给当前的Servlet使用)

上面使用 ServletConfig 来读取配置文件

下面我们使用 ServletContext

在 web.xml 中配置一下属性

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

那么怎样获得 ServletContext 呢?

ServletContext 对象可以通过ServletConfig.getServletContext 方法获得对ServletContext 对象的引用,也可以通过 this.getServletContext() 来获得其对象的引用。

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

我们来看一下

ContextServlet 能不能获取到属性

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

再来看看 AnotherServlet

能不能收到这个 pwd 值

Java利用ServletContext制作简易网站计数器

浏览器效果

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

这样对比就很强烈了!

总结:

ServletConfig 只能获取到当前对应的 servlet 的初始化参数。

ServletContext 可以获取到全局的初始化参数。

上下文属性

属性是一种对象,可以通过调用 servletContext 对象HttpServletRequest (或ServletRequest) 对象和HttpSession 对象的setAttribute() 方法设置到不同的范围中也叫绑定。

设置属性 setAttribute(String name, String value);

获取属性 getAtrribute(String name);

删除属性 removeAttribute(String name);

ServletContext

在web服务器启动时为每一个 web 应用程序创建相应的 ServletContext对象

在web服务器关闭时为每个web应用程序销毁相应的ServletContext对象

HttpSession

浏览器开始与服务器绘画时创建

调用HttpSession.invalidate();超过了Session的最大有效时间间隔;服务器进程背停止。

ServletRequest

每次请求开始时创建

每次访问结束后销毁

我们来验证一下

先创建一个 SetAttributeServlet

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

再来创建一个

GetAttributeServlet

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

启动服务器,先来设置一下

访问 SetAttributeServlet

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

再来获取属性的值

访问 GetAttributeServlet

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

现在我们换一个浏览器

打开 GetAttributeServlet

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

总结:

1.在访问URL的时候我们的每一个页面(请求)都是一个Request,重新打开一个新页面(请求)上一个页面的Rquest的值就获取不到了

2.每一个浏览器就是一个Session 再同一个浏览器内新建几个页面都可以获取到 Session 的内容,换一个浏览器就获取不到了

3.ServletContext 就是我们这个应用的范围!当服务器启动之后你用什么浏览器访问都可以获取到里面的信息

通过 ServletContext 实现数据共享

下面来做一个网站的计数器

相信伙伴们都有这样的经历

在访问网站的时候会有一条消息—欢迎!您是第x位访问本网站的人。这个就是网站的计数器,现在我们就来制作一个简易的网站计数器。

方案:

设置一个静态变量,当服务器启动时,可以通过文件或表初始化该变量,当服务器关闭时,再将变量的值写入到文件或是数据库中。

缺点:实现复杂,要求对文件操作。

优点:效率高,不会频繁的访问数据库或文件。

开动

创建一个 record.txt 文件储存浏览网站的次数

创建一个Servlet

把网页的浏览量从文件中读取出来设置到 nums 中

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

当请求销毁时把浏览量写入文件中

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

把获取到的数值输出到页面上

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

页面效果

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

监听器

在 Java Web 开发中,几乎所有的 Java EE 组件的生命周期都是由 Web 服务器进行管理的。开发人员负责诸如 JSP、Servlet 等组件的开发,然后将这些组件部署到服务器上,由容器来负责这些组件的创建、调用和销毁。

如果开发人员想在某个组件的创建或销毁,或其属性改变时,去执行一些特定的任务,就要使用监听器。

Java Web 监听器是 Servlet 规范中定义的一种特殊类,用于监听 Web 应用程序中的 ServletContext、HttpSession和 ServletRequest对象的创建与销毁事件(即生命周期),以及这些对象中的属性的变更、迁徙、绑定等事件。

这张图展示了 Servlet 3.1 版本可以使用的监听器,一共有十个监听器接口(Servlet 上下文事件有两个监听器,HTTP 会话事件有五个监听器,Servlet 请求事件有三个监听器。),开发人员可以实现这十个接口中的一个或多个,定制自己的监听器。

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

这里我们只介绍Servlet上下文事件的监听器。

创建一个监听器

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

选择监听ServletContext的生命周期

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

注解的方式:

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

把 numServlet 中的代码剪切过来

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

Web.xml 配置方式

使用之前记得把注解的方式删除掉

Java利用ServletContext制作简易网站计数器

Java学习交流群:495273252

com.ln.listener.numServletListener

运行效果同上就不给大家看演示效果了

伙伴们可以去试一下

好的今天就分享到这里了

再见!


上一篇:吃货不能错过!盘点日本那些脑洞超大画风清奇的小饮品
下一篇:连锁条件华莱士汉堡店加盟店费用多少钱

相关文章

源码分类

热门源码

最新资讯

联系我们