(五)Servlet就是这样-ServletConfig和ServletContext对象
2016-10-05 14:12
316 查看
Servlet读书笔记系列文《Servlet就是这样》第五篇:ServletConfig和ServletContext对象
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息
StringgetServletName() -- 获取当前Servlet在web.xml中配置的名字
StringgetInitParameter(String name) -- 获取当前Servlet指定名称的初始化参数的值
EnumerationgetInitParameterNames() -- 获取当前Servlet所有初始化参数的名字组成的枚举
ServletContextgetServletContext() -- 获取代表当前web应用的ServletContext对象
作用范围:整个web应用范围内共享数据
生命周期:当服务器启动web应用加载后创建出ServletContext对象后,域产生。当web应用被移除出容器或服务器关闭,随着web应用的销毁域销毁。
voidsetAttribute(String,Object);
ObjectgetAttribute(String);
voidremoveAttribute(String);
初始化参数 initparameter--- 在web.xml中为Servlet或ServletContext配置的初始化时带有的基本参数
域属性 attribute --- 四大作用域中存取的键值对
请求转发 : 服务器内不进行资源流转
*请求转发是一次请求一次响应实现资源流转.请求重定向两次请求两次响应.
a) 如果写相对路径和绝对路径,由于路径将会相对于程序启动的目录--在web环境下,就是tomcat启动的目录即tomcat/bin--所有找不到资源
b) 如果写硬盘路径,可以找到资源,但是只要一换发布环境,这个硬盘路径很可能是错误的,同样不行.
为了解决这样的问题ServletContext提供了getRealPath方法,在这个方法中传入一个路径,这个方法的底层会在传入的路径前拼接当前web应用的硬盘路径从而得到当前资源的硬盘路径,这种方式即使换了发布环境,方法的底层也能得到正确的web应用的路径从而永远都是正确的资源的路径
this.getServletContext().getRealPath("config.properties")
如果在非Servlet环境下要读取资源文件时可以采用类加载器加载文件的方式读取资源
一、ServletConfig -- 代表当前Servlet在web.xml中的配置信息
在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息
StringgetServletName() -- 获取当前Servlet在web.xml中配置的名字
StringgetInitParameter(String name) -- 获取当前Servlet指定名称的初始化参数的值
EnumerationgetInitParameterNames() -- 获取当前Servlet所有初始化参数的名字组成的枚举
ServletContextgetServletContext() -- 获取代表当前web应用的ServletContext对象
二、*ServletContext -- 代表当前web应用
1、做为域对象可以在整个web应用范围内共享数据
域对象:在一个可以被看见的范围内共享数据用到对象作用范围:整个web应用范围内共享数据
生命周期:当服务器启动web应用加载后创建出ServletContext对象后,域产生。当web应用被移除出容器或服务器关闭,随着web应用的销毁域销毁。
voidsetAttribute(String,Object);
ObjectgetAttribute(String);
voidremoveAttribute(String);
2、用来获取web应用的初始化参数
请求参数 parameter --- 浏览器发送过来的请求中的参数信息初始化参数 initparameter--- 在web.xml中为Servlet或ServletContext配置的初始化时带有的基本参数
域属性 attribute --- 四大作用域中存取的键值对
3、实现Servlet的转发
重定向 : 302+Location请求转发 : 服务器内不进行资源流转
*请求转发是一次请求一次响应实现资源流转.请求重定向两次请求两次响应.
4、加载资源文件
在Servlet中读取资源文件时:a) 如果写相对路径和绝对路径,由于路径将会相对于程序启动的目录--在web环境下,就是tomcat启动的目录即tomcat/bin--所有找不到资源
b) 如果写硬盘路径,可以找到资源,但是只要一换发布环境,这个硬盘路径很可能是错误的,同样不行.
为了解决这样的问题ServletContext提供了getRealPath方法,在这个方法中传入一个路径,这个方法的底层会在传入的路径前拼接当前web应用的硬盘路径从而得到当前资源的硬盘路径,这种方式即使换了发布环境,方法的底层也能得到正确的web应用的路径从而永远都是正确的资源的路径
this.getServletContext().getRealPath("config.properties")
如果在非Servlet环境下要读取资源文件时可以采用类加载器加载文件的方式读取资源
相关文章推荐
- JavaWeb -- 服务器传递给Servlet的对象 -- ServletConfig, ServletContext,Request, Response
- servlet映射,线程安全,servletconfig对象,servletcontext对象
- ServletConfig对象与ServletContext区别
- ServletConfig与ServletContext对象详解
- JavaWeb -- 服务器传递给Servlet的对象 -- ServletConfig, ServletContext,Request, Response
- javaweb-day05-5&6&7(Servlet - ServletConfig对象 和 ServletContext对象)
- Servlet技术中的对象-ServletConfig与ServletContext
- ServletConfig对象,ServletContext对象应用
- Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象
- Servlet知识详解(一)ServletContext对象 和 ServletConfig对象学习笔记
- ServletConfig与ServletContext对象详解
- Servlet概述以及ServletConfig 和ServletContext对象的作用
- JavaWeb学习笔记(7)——ServletConfig和ServletContext对象
- ServletConfig与ServletContext对象详解
- 黑马第七天之Servlet知识,servletconfig,servletcontext,response三个对象的用法
- ServletConfig与ServletContext对象详解
- 2014.08.31 周日-servlet运行过程、线程安全、ServletConfig对象、ServletContext对象
- ServletConfig与ServletContext对象详解
- 如何获得servletConfig对象和servletContext对象以及通过这两个对象获得初始化参数
- mvc-servlet---ServletConfig与ServletContext对象详解(转载)