ServletContext生命周期

一、什么是servletContext:   

  servletContext可以理解为服务器端的一个共享空间,它可以被所有的客户端访问。基于这种特性,我们就可以利用servletContext做计数器等应用。
我们用个图来描述cookie、session、servletContext的区别.

  区别在于session是局部的,servletContext是共享的.当换了另一个窗口开始访问又从0开始计数,而servletContext则是接下去计数.




 

 

 

 

 

 

  上图中,下面的A、B、C是代表客户端的cookie,服务器端的A、B、C代表session,D代表servletContext。


二、怎样使用ServletContext

   1、首先得到ServletContext

      this.getServletContext();

    2、ServletContext也是和session一样像一张表,分为属性、值

      添加属性:setAttribute(String name,Object obj);
      得到值:getAttribute(String name);
      删除属性:removeAttribute(String name); 

  3、生命周期

      ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束

三、Servlet实现访问次数的例子!

ShowTimesServlet.java 
复制代码
//ShowTimesServlet.java /*Servlet实现访问次数的例子!*/
import java.io.*;
import java.util.zip.*;
import javax.servlet.*;
import javax.servlet.http.*;
/*
这个类实现访问次数。显示访问次数!看是第几次访问!
*/
public class ShowTimesServlet extends HttpServlet {
   
public void doGet(HttpServletRequest request,HttpServletResponse response)
                             throws ServletException, java.io.IOException {
                        response.setContentType(" text/html");
      HttpSession session = request.getSession();
      String heading;
      Integer accessCount =(Integer)session.getAttribute(" accessCount");
     if(accessCount == null) {
        accessCount = new Integer(0);
      heading = " Welcom,You are first time to visit!";
      }
     else {
        heading = " Welcome Backer";
        accessCount = new Integer(accessCount.intValue()+1);
      }
            session.setAttribute(" accessCount",accessCount);
      PrintWriter out = response.getWriter();
      out.println(" The title:"+heading);
      out.println(" Access count: "+accessCount);
}
   
public void doPost(HttpServletRequest request,HttpServletResponse response)
                             throws ServletException, java.io.IOException {
    doGet(request,response);
}    
}
复制代码
下面是通过servleContext来做访问次数
Java代码:
复制代码
package org.linweihan.test;
   
import java.io.IOException;
import java.io.PrintWriter;
   
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
   
public class TestServletContext extends HttpServlet {
   
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ServletContext servletContext = this.getServletContext();
    Integer accessCount =(Integer)servletContext.getAttribute(" accessCount");
  if(accessCount == null){
      accessCount = 0;
}else{
      accessCount = accessCount + 1;
         
    }
    servletContext.setAttribute(" accessCount", accessCount);
    PrintWriter out = response.getWriter();
    out.println(" < html> < body> < h2> "+accessCount+" < /body> < /html> ");
}       
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         
}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
### 回答1: servletcontext生命周期指的是servletcontext对象从创建到销毁的整个过程。servletcontext对象是在web应用程序启动时创建的,当web应用程序关闭时销毁。在servletcontext生命周期中,可以通过servletcontext对象来获取web应用程序的初始化参数、共享数据、servlet上下文属性等信息。在servletcontext销毁之前,可以通过servletcontext对象来清除web应用程序中的资源、关闭数据库连接等操作。因此,了解servletcontext生命周期对于开发web应用程序非常重要。 ### 回答2: ServletContext是Java Web中的一个对象,它代表了Web应用程序。在Web应用程序初始化时,ServletContext会被创建,而在Web应用程序被关闭时,ServletContext会被销毁。这就是ServletContext生命周期。 具体来说,ServletContext生命周期包括以下三个阶段: 1. 初始化阶段 在Web应用程序启动时,容器会创建一个ServletContext对象,并调用其init()方法,以初始化ServletContext对象。在这个阶段,ServletContext对象会被设置一些初始化参数和上下文路径等信息。 2. 运行时阶段 在Web应用程序运行时,ServletContext对象会一直存在并对外提供服务。在这个阶段,ServletContext对象的属性和方法都可以被访问和使用。 3. 销毁阶段 在Web应用程序关闭时,ServletContext对象会被销毁。销毁时,容器会调用ServletContext的destroy()方法,以释放ServletContext对象所占用的资源。 需要注意的是,如果在ServletContext对象中存储了一些资源,在Web应用程序关闭时要确保这些资源被正确释放,以避免内存泄漏等问题。因此,建议在ServletContext对象的destroy()方法中,显式地对这些资源进行释放。 总之,ServletContext对象的生命周期是非常重要的,开发人员需要理解它的创建、初始化、运行和销毁过程,以正确地使用和管理ServletContext对象。 ### 回答3: ServletContext生命周期是指在一个Web应用程序中,ServletContext对象从创建到销毁的整个过程。 在Web应用程序启动时,容器创建了一个ServletContext对象。在创建过程中,容器会读取Web应用程序的部署描述符(web.xml),并根据描述符的配置信息初始化ServletContext对象。 ServletContext对象的生命周期大致可以分为以下几个阶段: 1. 初始化阶段 在Web应用程序启动阶段,容器会创建ServletContext对象并初始化。此时,容器会读取Web应用程序的部署描述符,并根据配置信息进行初始化操作,例如创建Servlet实例、初始化Filter和Listener等。 在初始化阶段,ServletContext对象会调用其监听器的contextInitialized()方法来通知它们ServletContext对象的创建。 2. 运行阶段 经过初始化阶段后,ServletContext对象进入运行阶段。在运行阶段中,ServletContext对象扮演着非常重要的角色。它是Web应用程序中各个组件之间通信的重要媒介,也是一些重要资源的存储和访问入口。 在运行阶段,我们可以使用ServletContext对象来获取Web应用程序中的各种资源,例如Servlet、JSP、HTML文件、图片、CSS文件等。此外,ServletContext对象还可以获取一些常用的信息,例如Web应用程序的名称、根路径、域名等。 3. 销毁阶段 当Web应用程序终止时,ServletContext对象必须被销毁。在销毁ServletContext对象之前,容器会调用它的监听器的contextDestroyed()方法来通知它们ServletContext对象即将被销毁。 在销毁ServletContext对象时,容器会负责释放所有ServletContext对象所占用的系统资源,例如Servlet实例、Filter实例以及所有的Listener。 总之,ServletContext生命周期是Web应用程序的重要组成部分。ServletContext对象的创建、初始化、运行和销毁都是容器自动完成的,而我们可以在其中使用该对象来获取Web应用程序中的资源和一些常用的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值