ServletContext对象
ServletContext对象
ServletContext对象
每一个web应用都有且仅有一个ServleContext对象,又称Application对象,从名称中可知,该对象是与应用程序相关的,在web容器启动的时候,会为每一个web应用程序串讲一个对应的ServletContext对象。
该对象有两大作用,
第一、作为域对象用来共享数据,此时数据在整个应用程序中共享。
第二、该对象中保存了当前应用程序相关信息。例如可以通过 getServerInfo() 方法获取当前服务器信息 ,getRealPath(String path) 获取资源的真实路径等。
ServletContext对象的获取
获取 ServletContext 对象的途径有很多。比如:
-
通过 request 对象获取
ServletContext servletContext = request.getServletContext(); -
通过 session 对象获取
ServletContext servletContext = request.getSession().getServletContext(); -
通过 servletConfig 对象获取,在 Servlet 标准中提供了 ServletConfig 方法
ServletConfig servletConfig = getServletConfig(); ServletContext servletContext = servletConfig.getServletContext(); -
直接获取,Servlet 类中提供了直接获取 ServletContext 对象的方法
ServletContext servletContext = getServletContext();
常用方法
// 获取项目存放的真实路径 String realPath = request.getServletContext().getRealPath("/"); // 获取当前服务器的版本信息 String serverInfo = request.getServletContext().getServerInfo();
ServletContext域对象(不建议使用)
ServletContext 也可当做域对象来使用,通过向 ServletContext 中存取数据,可以使得整个应用程序共享某些数 据。当然不建议存放过多数据,因为 ServletContext 中的数据一旦存储进去没有手动移除将会一直保存。
// 获取ServletContext对象 ServletContext servletContext = request.getServletContext(); // 设置域对象 servletContext.setAttribute("name","zhangsan"); // 获取域对象 String name = (String) servletContext.getAttribute("name"); // 移除域对象 servletContext.removeAttribute("name");
Servlet三大域对象
域对象作用域越大,占用内存越多
- request域对象在一次请求中有效。请求转发有效,重定向失效。
- session域对象在一次会话中有效。请求转发和重定向都有效,session销毁后失效。
- servletContext域对象在整个应用程序中有效。服务器关闭后失效。
本文来自博客园,作者:墨镜一戴谁也不爱,转载请注明原文链接:https://www.cnblogs.com/hnuzmh/p/16196519.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!