ServletConfig对象是servlet配置对象,(web.xml中的)servlet信息封装在ServletConfig对象中,因此在一个web应用可存在多个ServletConfig。ServletContext对象是servlet上下文对象,而整个web.xml信息封装在ServletContext对象中,因此 一个web应用中只有一个servletcontext对象,可能存在多个servletconfig对象。

ServletConfig

创建:在创建完servlet对象之后,在调用init方法之前创建,直接从有参数的init方法中得到。

API:

1 java.lang.String getInitParameter(java.lang.String name)  根据参数名获取参数值
2 java.util.Enumeration getInitParameterNames()    获取所有参数
3 ServletContext getServletContext()     得到servlet上下文对象
4 java.lang.String getServletName()       得到servlet的名称

注意:servlet的参数只能由当前的这个sevlet获取。

如下,我想访问e盘下的某个文件,想通过web.xml中配置,在提交请求到服务器时访问。

web.xml

1  <servlet>
2     <servlet-name>ConfigDemo</servlet-name>
3     <servlet-class>gz.itcast.f_config.ConfigDemo</servlet-class>
4     <!-- 初始参数: 这些参数会在加载web应用的时候,封装到ServletConfig对象中 -->
5     <init-param>
6         <param-name>path</param-name>
7         <param-value>e:/b.txt</param-value>
8     </init-param>
9   </servlet>

ConfigDemo.java

public class ConfigDemo extends HttpServlet {/*** 以下两段代码GenericServlet已经写了,我们无需编写!!*//*private ServletConfig config;*//***  1)tomcat服务器把这些参数会在加载web应用的时候,封装到ServletConfig对象中 *  2)tomcat服务器调用init方法传入ServletConfig对象*//*@Overridepublic void init(ServletConfig config) throws ServletException {this.config = config;}*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/*** 读取servlet的初始参数*/String path = this.getServletConfig().getInitParameter("path");File file = new File(path);//读取内容BufferedReader br = new BufferedReader(new FileReader(file));String str = null;while( (str=br.readLine())!=null ){System.out.println(str);}
}

ServletContext对象

核心API

java.lang.String getContextPath()   --得到当前web应用的路径java.lang.String getInitParameter(java.lang.String name)  --得到web应用的初始化参数
java.util.Enumeration getInitParameterNames()  void setAttribute(java.lang.String name, java.lang.Object object) --域对象有关的方法
java.lang.Object getAttribute(java.lang.String name)
void removeAttribute(java.lang.String name)  RequestDispatcher getRequestDispatcher(java.lang.String path)   --转发(类似于重定向)java.lang.String getRealPath(java.lang.String path)     --得到web应用的资源文件
java.io.InputStream getResourceAsStream(java.lang.String path)  

在web.xml配置web应用参数,如下:

<context-param><param-name>AAA</param-name><param-value>AAA's value</param-value>
</context-param>

在web.xml中配置了上述的参数,就相当于给整个web添加了一个新属性,那么可以通过ServletContext访问。而上边的在servlet中添加一个<init-param>,相当于某个web应用的某个特定的servlet添加了一个属性,所以只能通过该servlet的ServletConfig访问。下面的例子描述ServletContext如何访问:

public class ContextDemo2 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//得到SErvletContext对象ServletContext context = this.getServletContext();System.out.println("参数"+context.getInitParameter("AAA"));Enumeration<String> enums = context.getInitParameterNames();while(enums.hasMoreElements()){String paramName = enums.nextElement();String paramValue  =context.getInitParameter(paramName);System.out.println(paramName+"="+paramValue);}//尝试得到ConfigDemo中的servlet参数String path = this.getServletConfig().getInitParameter("path");System.out.println("path="+path);}}

转载于:https://www.cnblogs.com/K-artorias/p/7469640.html

ServletConfig对象和ServletContext对象相关推荐

  1. Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象

    本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...

  2. ServletConfig对象和ServletContext对象配置初始化参数

    ServletConfig对象 : 主要是用于加载servlet的初始化参数.在一个web应用可以存在多个 ServletConfig对象(一个Servlet对应一个ServletConfig对象) ...

  3. java day39【HTTP协议:响应消息 、Response对象 、ServletContext对象】

    第一章  HTTP协议:响应消息 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * ...

  4. java servletcontext_Java ServletContext对象用法解析

    ServletContext对象: ServletContext类似字节码文件对象,在web创建的时候就自动生成了,并且是唯一的,跟随着项目和服务器共存亡了.通过这个对象,我们可以向里面存数据(键值对 ...

  5. java中servletcontext_Java中的ServletContext对象

    ServletContext对象: ServletContext类似字节码文件对象,在web创建的时候就自动生成了,并且是唯一的,跟随着项目和服务器共存亡了.通过这个对象,我们可以向里面存数据(键值对 ...

  6. [Servlet]研究ServletContext对象

    作者信息 作者姓名:金云龙 个人站点:http://www.longestory.com 个人公众帐号:搜索"longestory"或"龙哥有话说" Servl ...

  7. 三、Web服务器——HTTP协议 Response对象 ServletContext对象 学习笔记

    今日内容 1. HTTP协议:响应消息 2. Response对象 3. ServletContext对象 HTTP协议: 1. 请求消息:客户端发送给服务器端的数据* 数据格式:1. 请求行2. 请 ...

  8. Servlet | ServletConfig接口、ServletContext接口详解

    目录 一:ServletConfig接口 二:ServletContext接口 三:补充缓冲机制 一:ServletConfig接口 (1)ServletConfig是什么? javax.servle ...

  9. Javaweb-Servlet总结(概述、接口使用、配置、获取请求方式、路径操作、Request对象、Response对象)

    文章目录 Servlet概述 Servlet核心接口和类 三种自定义Servlet接口的方法 1.实现Servlet接口 2.继承GenericServlet抽象类 3.继承HttpServlet抽象 ...

最新文章

  1. [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699
  2. 用stringstream可以用指定字符分割字符串
  3. 孙宇晨大战Vitalik
  4. maven netty 配置_SpringBoot整合Netty(附源码)
  5. 记一次院赛CTF的Crypto和Re题(入门)
  6. HarmonyOS之常用组件ProgressBar的功能和使用
  7. Andy's First Dictionary
  8. MySQL数据步骤管控_数据管理的发展过程分为哪三个阶段
  9. 一起走过一段不平凡的路
  10. 【Flink】FLink 提交报错 instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are
  11. springboot监听器_Spring Boot中文参考指南(2.1.6)23.5、应用程序事件和监听器
  12. 2. SpringBoot +Mybaits
  13. python 如何调用另一个路径下py文件的函数
  14. 年月日_时间单位年月日是怎么得来的?
  15. 山东大学高频电子线路实验二 高频功率放大实验详解
  16. OLED取模-PS做图转字模提取软件
  17. wsarecv: An existing connection was forcibly closed by the remote host.
  18. 微信小程序python flask后端_Flask与微信小程序登录(后端)
  19. 线性代数(1)—— 行列式
  20. 租赁风控模型之决策树

热门文章

  1. 简易ASP文件缓存技术
  2. ASP:HTML在线编辑器的调用方法和使用方法详解
  3. 干货 | 携程数据库发布系统演进之路
  4. 面试官:线程顺序执行,这么多答案你都答不上来?
  5. GO select用法详解
  6. 【报错】ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds t
  7. 二阶矩阵转置怎么求_矩阵求导术(下)
  8. 河北工程大学科信学院计算机二级,河北工程大学科信学院计算机科学与技术专业...
  9. 计算机的磁盘地址格式,如何查看电脑硬盘是GPT分区还是MBR分区
  10. 民生银行IT运维架构管理可视化实践