ServletConfig接口(了解)
① ServletConfig (了解) 一个Servlet对象对应唯一的一个ServletConfig配置对象 ServletConfig对象如何获得? 在init方法的形参位置 ServletConfig是在当前Servlet进行初始化的时候,传递给init方法的
public void init(ServletConfig config) throws ServletException
功能: 获取Servlet名称:web.xml中配置servlet-name的值 servletConfig.getServletName(); 获取全局上下文ServletContext对象 servletConfig.getServletContext(); 获取Servlet初始化参数 设置servlet的初始化参数 位置:web.xml的servlet标签内 代码: <!--设置当前Servlet的初始化参数--> <init-param> <param-name>path</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> servletConfig.getInitParameter("path"); 根据key值获得value值 servletConfig.getInitParameterNames(); 获得所有的key值
ServletConfig中的常用方法
ServletContext接口(熟悉)
全局上下文对象:一个web项目只有一个ServletContext对象 所有的Servlet共享同一个ServletContext对象 ServletContext对象是由服务器启动的时候,tomcat去创建的 如何获得到ServletContext对象: a. 通过ServletConfig去获得 servletConfig.getServletContext(); b. 通过request去获得 servletRequest.getServletContext(); 功能: //获取项目的上下文路径(带/的项目名) servletContext.getContextPath(); ★ //获取虚拟路径所映射的本地真实路径 servletContext.getRealPath("/upload"); 后期上传下载会用到 //获取WEB应用程序的全局初始化参数 如何设置全局初始化参数 位置:web.xml的根节点下 代码: <!--设置全局初始化参数--> <context-param> <param-name>servletCntextInitParamKey</param-name> <param-value>servletCntextInitParamValue</param-value> </context-param> 取值: servletContext.getInitParameter("ccc"); servletContext.getInitParameterNames(); //作为域对象共享数据 ★ 域对象:在一定的作用域范围内共享数据的对象 ServletContext所用域范围是整个web项目 测试: 在一个Servlet内,往ServletContext对象中设置共享数据 在另外一个Servlet内获取到共享的数据 方法: servletContext.setAttribute(String key,Object obj); Object msg = servletContext.getAttribute(String key); servletContext.removeAttribute(String key);
ServletContext中的常用方法
ServletContext对应显示生活中的例子
一个教室里有多个学生,那么每一个学生就是一个Servlet,这些学生都在同一个教室当中,那么我们可以把这个教室叫做ServletContext对象。那么也就是说放在这个ServletContext对象(环境)当中的数据,在同一个教室当中,物品都是共享的。比如:教室中有一个空调,所有的学生都可以操作。可见,空调是共享的。因为空调放在教室当中。教室就是ServletContext对象。
区别:
一、定义:
ServletConfig: 是Sevlet的配置对象,用来描述Servlet 的基本信息,容器在初始化Servlet 时通过它传递信息给Sevlet
ServletContext: 指上下文对象,提供了一系列方法Servlet 与Web容器交互
二、作用范围
ServletConfig :局部对象 ;ServletContext: 全局对象
ServletConfig 作用于某个Servle 实例,每个Servlet 都有对应的ServletConfig;
SevletContext 作用于整个Web应用,一个Web应用对应一个ServletContext,多个Servlet实例对应一个 ServletContext。
一、定义: 二、作用范围
选自https://blog.csdn.net/weixin_42468607/article/details/108546058