当前位置: 首页 > article >正文

第17周 第2章Session与ServletContext原理 ---ServletContext与三大作用域对象

Servlet context是外部应用程序的全局对象,用于存储在整个应用程序中需要持久保存的数据。它随着应用程序的启动而创建,并在应用程序重启或关闭时销毁。通过servlet context,可以方便地实现全局数据的共享和持久化,如网站的备案信息等。

package com.imooc.servlet.servletcontext;

// 引入必要的Java类
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

// 使用@WebServlet注解来配置Servlet的访问路径为 "/servletcontext/init"
@WebServlet("/servletcontext/init")
public class ServletContextInitServlet extends HttpServlet {
    
    // 重写HttpServlet的doGet方法,用于处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        // 获取当前请求的ServletContext对象
        // ServletContext代表整个Web应用的上下文,所有的Servlet和JSP共享这个对象
        ServletContext servletContext = request.getServletContext();
        
        // 使用ServletContext对象的setAttribute方法设置一个全局属性
        // 属性名为"copyright",属性值为网站的版权信息字符串
        servletContext.setAttribute("copyright", "Copyright© 2021 imooc.com  京ICP备 12003892号-11 京公网安备11010802030151号");
        
        // 设置响应的内容类型和字符编码,表示返回HTML格式的文本内容
        response.setContentType("text/html;charset=utf-8");
        
        // 向客户端返回一个HTML格式的文本响应,通知ServletContext已经初始化
        response.getWriter().println("ServletContext已初始化");
    }
}

package com.imooc.servlet.servletcontext;

// 引入必要的Java类
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

// 使用@WebServlet注解来配置Servlet的访问路径为 "/servletcontext/index"
@WebServlet("/servletcontext/index")
public class IndexServlet extends HttpServlet {
    
    // 重写HttpServlet的doGet方法,用于处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        // 设置响应的内容类型和字符编码,表示返回HTML格式的文本内容
        response.setContentType("text/html;charset=utf-8");
        
        // 获取当前请求的ServletContext对象
        // ServletContext代表整个Web应用的上下文,所有的Servlet和JSP共享这个对象
        ServletContext context = request.getServletContext();
        
        // 从ServletContext中获取名为"copyright"的全局属性值,并将其转换为字符串类型
        // 如果该属性不存在,则返回null
        String copyright = (String) context.getAttribute("copyright");
        
        // 获取响应对象的输出流,用于向客户端输出文本内容
        PrintWriter out = response.getWriter();
        
        // 输出导航栏的HTML内容
        out.println("导航栏");
        
        // 输出一个水平线的HTML标记,用于分隔内容
        out.println("<hr/>");
        
        // 输出首页正文的HTML内容
        out.println("首页正文");
        
        // 再次输出一个水平线的HTML标记,用于分隔内容
        out.println("<hr/>");
        
        // 输出从ServletContext中获取的版权信息
        out.println(copyright);
    }
}


http://www.kler.cn/news/317981.html

相关文章:

  • PerparedStatement概述
  • Qt 模型视图(三):视图类QAbstractItemView
  • Python常见Json对比库deepdiff、json_tools、jsonpatch
  • 【Python】curl命令、Api POST导入cURL、python直接使用cURL
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】下
  • 球体检测系统源码分享
  • Rust的作用?
  • tar.gz 文件压缩与解压shell实现
  • 付费电表系统的通用功能和应用过程参考模型(下)
  • 鸿蒙HarmonyOS开发:一次开发,多端部署(界面级)天气应用案例
  • R语言NHANES数据分析(2)
  • Angular面试题五
  • LeetCode_sql_day30(1264.页面推荐)
  • 蓝桥等考C++组-2022-11-27-八级
  • 【C++】C++中如何处理多返回值
  • Vue|插件
  • oracle avg、count、max、min、sum、having、any、all、nvl的用法
  • 回答网友的一个SQL问题
  • 国家有要求企业一定要招实习生吗?或者说招了实习生国家会给企业好处吗?
  • IPv6(五)
  • 探索自闭症寄宿学校:为孩子的未来铺设坚实基石
  • 进程监控与管理详解
  • 若依VUE项目安全kind-of postcss vite漏洞扫描和修复
  • 小阿轩yx-案例:Ansible剧本文件实践
  • 滚雪球学SpringCloud[6.1讲]: Spring Cloud Sleuth详解
  • 【Git】远程仓库
  • 数据库中的DUAL表
  • consul注册中心与容器自动发现实战
  • 芯片开发(1)---BQ76905---底层参数配置
  • 【算法】leetcode热题--148.排序链表