servletConfig与servletContext的区别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

servletConfig与servletContext的区别⼀、区别
1、定义
1)ServletConfig:Servlet的配置对象,容器在初始化Servlet时通过它传递信息给Servlet。

2)ServletContext:上下⽂对象,提供了⼀系列⽅法供Servlet与Web容器交互。

2、创建时机
1)ServletConfig:在容器初始化Servlet的时候,并为其提供上下⽂初始化参数的名/值对的引⽤。

2)ServletContext:容器启动的时候,并为其提供Servlet初始化参数的名/值对的引⽤。

3、作⽤范围(可见性)
1)ServletContext:每个JVM中每个Web应⽤⼀个ServletContext。

2)ServletConfig:每个JVM中每个Web应⽤的每个Servlet⼀个ServletConfig。

所以ServletConfig=Servlet初始化参数,ServletContext=上下⽂初始化参数。

4、DD中的初始化参数配置
1)ServletConfig配置如下(注意是在<servlet>标签中):
Xml代码
1. <servlet>
2. <init-param>
3. <param-name>email</param-name>
4. <param-value></param-value>
5. </init-param>
6. <servlet-name>JarDownload</servlet-name>
7. <servlet-class>com.linwei.servlet.JarDownload</servlet-class>
8. </servlet>
2)ServletContext配置如下(注意是直接在<web-app>标签下):
Xml代码
1. <context-param>
2. <param-name>email</param-name>
3. <param-value></param-value>
4. </context-param>
5、Servlet中的访问⽅法
1)ServletConfig:getServletConfig().getInitParameter(“name”)。

2)ServletContext:getServletContext().getInitParameter(“name”)。

⼆、个性
1、关于ServletConfig
1)容器初始化Servlet时,会从DD中读出Servlet的初始化参数并为每个Servlet创建⼀个唯⼀的ServletConfig对象(保存有初始化参数的引⽤),然后把ServletConfig对象当做参数传递给Servlet的init()。

2)由上述1)推出:
a)Servlet初始化前(⽐如构造函数中)不能使⽤Servlet的初始化参数(通过ServletConfig)。

b)Servlet的初始化参数只会(也只能)读⼀次,就是在容器初始化Servlet的时候。

3)ServletConfig中保存有ServletContext的引⽤(所以可以通过ServletConfig获得ServletContext)。

4)⼀个“Servlet”要初始化完成之后,才成为真正的Servlet。

(因为初始化时Servlet才能获得ServletConfig以及ServletContext的引⽤(ServletConfig中)),⽽不是构造函数完成后。

也就是说,在“Servlet”获得ServletContext前,它还只是个普通的Java对象,⽽不是⼀个真正的Servlet。

5)在Servlet中可以通过两种⽅式获取到ServletConfig:
a)通过重载的init初始化⽅法参数中直接获取。

b)直接调⽤getServletConfig ()⽅法(继承⾃GenericServlet)。

2、关于ServletContext
1)在Servlet中可以通过两种⽅式获取到ServletContext:
a)通过ServletConfig。

(调⽤getServletContext()⽅法)
b)直接调⽤getServletContext ()⽅法(继承⾃GenericServlet)。

2)得到初始化参数和获取/设置属性
a)getInitParameter(String)
b)getInitParameterNames()
3)操作上下⽂属性
a)getAttribute(String)
b)getAttributeNames()
c)setAttribute(String,Object)
d)removeAttribute(String)
4)得到有关服务器(及容器)信息
a)getMajorVersion()
b)getServerInfo()
5)访问资源⽂件
a)getResource(String parh)⽅法:其中path必须是/开头,代表当前web应⽤程序的根⽬录。

返回⼀个代表某个资源的URL对象。

6)实现Servlet的转发
a)context.getRequestDispatcher(“/index.jsp”).forword(request, response);
7)记录服务器(如tomcat)⽇志⽂件。

a)log(String msg)。

相关文档
最新文档