ServletConfig对象和ServletContext对象
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对象相关推荐
- Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象
本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...
- ServletConfig对象和ServletContext对象配置初始化参数
ServletConfig对象 : 主要是用于加载servlet的初始化参数.在一个web应用可以存在多个 ServletConfig对象(一个Servlet对应一个ServletConfig对象) ...
- java day39【HTTP协议:响应消息 、Response对象 、ServletContext对象】
第一章 HTTP协议:响应消息 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * ...
- java servletcontext_Java ServletContext对象用法解析
ServletContext对象: ServletContext类似字节码文件对象,在web创建的时候就自动生成了,并且是唯一的,跟随着项目和服务器共存亡了.通过这个对象,我们可以向里面存数据(键值对 ...
- java中servletcontext_Java中的ServletContext对象
ServletContext对象: ServletContext类似字节码文件对象,在web创建的时候就自动生成了,并且是唯一的,跟随着项目和服务器共存亡了.通过这个对象,我们可以向里面存数据(键值对 ...
- [Servlet]研究ServletContext对象
作者信息 作者姓名:金云龙 个人站点:http://www.longestory.com 个人公众帐号:搜索"longestory"或"龙哥有话说" Servl ...
- 三、Web服务器——HTTP协议 Response对象 ServletContext对象 学习笔记
今日内容 1. HTTP协议:响应消息 2. Response对象 3. ServletContext对象 HTTP协议: 1. 请求消息:客户端发送给服务器端的数据* 数据格式:1. 请求行2. 请 ...
- Servlet | ServletConfig接口、ServletContext接口详解
目录 一:ServletConfig接口 二:ServletContext接口 三:补充缓冲机制 一:ServletConfig接口 (1)ServletConfig是什么? javax.servle ...
- Javaweb-Servlet总结(概述、接口使用、配置、获取请求方式、路径操作、Request对象、Response对象)
文章目录 Servlet概述 Servlet核心接口和类 三种自定义Servlet接口的方法 1.实现Servlet接口 2.继承GenericServlet抽象类 3.继承HttpServlet抽象 ...
最新文章
- [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699
- 用stringstream可以用指定字符分割字符串
- 孙宇晨大战Vitalik
- maven netty 配置_SpringBoot整合Netty(附源码)
- 记一次院赛CTF的Crypto和Re题(入门)
- HarmonyOS之常用组件ProgressBar的功能和使用
- Andy's First Dictionary
- MySQL数据步骤管控_数据管理的发展过程分为哪三个阶段
- 一起走过一段不平凡的路
- 【Flink】FLink 提交报错 instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are
- springboot监听器_Spring Boot中文参考指南(2.1.6)23.5、应用程序事件和监听器
- 2. SpringBoot +Mybaits
- python 如何调用另一个路径下py文件的函数
- 年月日_时间单位年月日是怎么得来的?
- 山东大学高频电子线路实验二 高频功率放大实验详解
- OLED取模-PS做图转字模提取软件
- wsarecv: An existing connection was forcibly closed by the remote host.
- 微信小程序python flask后端_Flask与微信小程序登录(后端)
- 线性代数(1)—— 行列式
- 租赁风控模型之决策树
热门文章
- 简易ASP文件缓存技术
- ASP:HTML在线编辑器的调用方法和使用方法详解
- 干货 | 携程数据库发布系统演进之路
- 面试官:线程顺序执行,这么多答案你都答不上来?
- GO select用法详解
- 【报错】ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds t
- 二阶矩阵转置怎么求_矩阵求导术(下)
- 河北工程大学科信学院计算机二级,河北工程大学科信学院计算机科学与技术专业...
- 计算机的磁盘地址格式,如何查看电脑硬盘是GPT分区还是MBR分区
- 民生银行IT运维架构管理可视化实践