其他分享
首页 > 其他分享> > ServletContext介绍和用法总结

ServletContext介绍和用法总结

作者:互联网

ServletContext介绍和用法总结

参考文章:https://blog.csdn.net/qq_36371449/article/details/80314024

学习总结

一、ServletContext 介绍

1. 概念

2. 作用

  1. 是一个域对象
  2. 可以读取全局配置参数
  3. 可以搜索当前工程目录下面的资源文件
  4. 可以获取当前工程名字

3. 获取

3.1 在实现类中获取

  1. 通过 GenericServlet 提供的 getServletContext() 获取
ServletContext servletContext = getServletContext();
  1. 通过 ServletConfig 提供的 getServletContext() 获取
ServletContext servletContext = getServletConfig().getServletContext();
  1. 通过HttpServletRequest获取
ServletContext servletContext1 = req.getServletContext();
  1. 通过HttpSession获取
ServletContext servletContext = req.getSession().getServletContext();

3.2 在 Spring 容器中获取

  1. 在 WEB 环境下,启动 tomcat 会创建 ServletContext 对象,然后 Spring 会把这个对象注入到 Spring 容器中,我们只需要通过注解去取出来就行
@Autowired
private ServletContext servletContext;

二、ServletContext 使用

1. 作为作用域对象

1.1 作用域介绍

域对象是服务器在内存上创建的存储空间,用于在不同动态资源(servlet)之间传递与共享数据。

1.2 作用域方法

作用域相关方法作用
Object setAttribute(“键”)从中得到一个值
void setAttribute(“键”, Object数据)向作用域中存储键值对数据
void removeAttribute(“键”)删除作用域种的键值对数据

1.3 域对象的代码实现

/*获取ServletContext对象*/  
ServletContext context = this.getServletContext();   
//存入共享的数据    
context.setAttribute("name", "haha"); 

// 在其它的Servlet中利用ServletContext对象获取共享的数据   
/*获取ServletContext对象*/  
ServletContext context = this.getServletContext();   
//获取共享的数据   
String name = context.getAttribute("name");   
System.out.println("共享的内容值是:"+name);  

2. 获取 WEB 应用的初始化参数。

2.1 方法

getServletContext().getInitParameter(name);
getServletContext().getInitParameterNames();

2.2 代码实现

<!-- 全局配置参数,因为不属于任何一个servlet,但是所有的servlet都可以通过servletContext读取这个数据 -->
<context-param>
  <param-name>param1</param-name>
  <param-value>value1</param-value>
</context-param>
<context-param>
  <param-name>param2</param-name>
  <param-value>value2</param-value>
</context-param>
public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
   //使用servletContext读取全局配置参数数据
   //核心方法
   /*getServletContext().getInitParameter(name);//根据指定的参数名获取参数值
   getServletContext().getInitParameterNames();//获取所有参数名称列表*/
   //打印所有参数
   //1.先获取所有全局配置参数名称
   Enumeration<String> enumeration =  getServletContext().getInitParameterNames();
   //2.遍历迭代器
   while(enumeration.hasMoreElements()){
      //获取每个元素的参数名字
      String parameName = enumeration.nextElement();
      //根据参数名字获取参数值
      String parameValue = getServletContext().getInitParameter(parameName);
      //打印
      System.out.println(parameName+"="+parameValue);
   }
 }

3. 获取当前项目下的资源文件

3.1 方法

getServletContext().getRealPath(path),
getServletContext().getResourceAsStream(path)

4. 获取当前项目的名字

getServletContext().getContextPath();

总结

以上就是对ServletContext介绍和用法的总结了,代码仅供参考,欢迎讨论交流。

标签:总结,对象,作用域,getServletContext,用法,获取,参数,ServletContext
来源: https://blog.csdn.net/zzvar/article/details/117703852