ServletConfig,ServletContext

ServletConfig对象

在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。

web容器在创建servlet实例对象时,会自动将该servlet对象的初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象作为参数传给init方法。GenericServlet已经用类变量的方式保存ServletConfig对象,自定义的Servlet使用this.getServletConfig()方法就可以获取ServletConfig对象。

作用:经常修改的数据,不能写死在程序里,利用配置文件的初始化参数保存,可以用ServletConfig对象获取参数的值,写到程序里。比如编码。

<init-param>
    <param-name>encode </param-name>
    <param-value> utf-8</param-value>
</init-param>

String getServletName()  -- 获取当前Servlet在web.xml中配置的名字

String getInitParameter(String name) -- 获取当前Servlet指定名称的初始化参数的值

Enumeration getInitParameterNames() -- 当前Servlet所有初始化参数的名字组成的枚举

ServletContext getServletContext()  -- 获取代表当前web应用的ServletContext对象

ServletConfig config=this.getServletConfig();
String value=config.getInitParameter(“name1”);
System.out.println(value);
Enumeration en= config.getInitParameterNames();
while(en.hasMoreElements()){
   String name=(String) en.nextElement();
   String value=config.getInitParameter(name);
   System.out.println(name+”:”+value);
}

ServletContext -- 代表当前web应用******

1、WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。

2、ServletContext对象通常也被称之为context域对象。由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。

3、 生命周期:当服务器启动web应用加载后创建出ServletContext对象后,域产生。当web应用被移除出容器或服务器关闭,随着web应用的销毁域销毁。

4、void setAttribute(String,Object);

Object getAttribute(String);

void removeAttribute(String);

5、用来获取web应用的初始化参数

<web-app>
<context-param>
<param-name>password</param-name>
<param-value>123</param-value>
</context-param>
</web-app>
ServletContext context=this.getServletContext();
Enumeration en = context.getInitParameterNames();
while(en.hasMoreElements()){
   String name=(String)en.nextElement();
   String value=context.getInitParameter(name);
   System.out.println(name+”:”+value); }

实现Servlet的转发getRequestDispatcher(  ).forward(request,reponse)

重定向 : 302+Location 浏览器会再发一次请求,两次请求两次响应,地址栏变

请求转发 : 服务器内部进行资源流转,一次请求一次响应实现资源流转,地址栏不变。

RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher (“/servlet/Demo6Servlet”);  //获取转发器

dispatcher.forward(request,response);

加载资源文件

在Servlet中读取资源文件时:

1、如果写相对路径和绝对路径,由于路径将会相对于程序启动的目录--在web环境下,就是tomcat启动的目录即tomcat--所以找不到资源

2、如果写硬盘路径,可以找到资源,但是只要一换发布环境,这个硬盘路径很可能是错误的,同样不行.

3、为了解决这样的问题ServletContext提供了getRealPath方法,在这个方法中传入一个路径,这个方法的底层会在传入的路径前拼接当前web应用的硬盘路径从而得到当前资源的硬盘路径,这种方式即使换了发布环境,方法的底层也能得到正确的web应用的路径。

时间: 2024-10-07 18:58:11

ServletConfig,ServletContext的相关文章

ServletConfig与ServletContext

ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个web-app下) 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给s

JavaWeb:ServletConfig()和ServletContext()

ServletConfig()和ServletContext() 1.ServletConfig() ServletConfig是一个接口,它由服务器提供商来实现. ServletConfig封装了Servlet的配置信息,并且可以获取ServletContext对象. Servlet容器在初始化servlet的时候会初始化一个servletConfig对象,这个对象在任何可访问的客户端都是有效的,但是,需注意的是,该对象只能在本servlet中应用,不能在其他servlet中访问. 主要的方法

(转)ServletConfig与ServletContext对象详解

ServletConfig与ServletContext对象详解 一.ServletConfig对象 在Servlet的配置文件中,可以使用一个或多个标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个web-app下) 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet.进而,程序员通过S

深入分析JavaWeb servletConfig 与servletContext

深入分析JavaWeb servletConfig 与servletContext 一.ServletConfig讲解 首先看ServletConfig API文档 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: <code class="hljs xml has-numbering" style="display: block; p

JavaWeb学习笔记:ServletConfig()和ServletContext()

ServletConfig()和ServletContext() 1.ServletConfig() ServletConfig是一个接口,它由server提供商来实现. ServletConfig封装了Servlet的配置信息,而且能够获取ServletContext对象. Servlet容器在初始化servlet的时候会初始化一个servletConfig对象,这个对象在不论什么可訪问的client都是有效的.可是,需注意的是,该对象仅仅能在本servlet中应用,不能在其它servlet中

上下文 —— ServletConfig、ServletContext

一.ServletConfig对象 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个web-app下) <servlet> <servlet-name>DemoServlet</servlet-name> <servlet-class>cn.csdn.web.servlet.DemoServlet</servlet-class> &l

Servlet技术之——概述、实现、细节、获取资源、ServletConfig、ServletContext

Servlet概述.实现.细节.获取资源.ServletConfig.ServletContext (一) Setvlet基本概述 (1) 什么是Servlet ? Servlet(Server Applet)是JavaServlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容是 JavaWeb中,我们将会接触到三大组件(Servlet.Filter.Listener),Servlet由服务器

Servlet基础知识,ServletContext,ServletConfig对象详解

Servlet的执行过程: 通过一个简单的Servlet程序开发,来说明Servlet程序的开发步骤和执行流程 开发Servlet的步骤: 1.1 步骤: 1)编写java类,继承HttpServlet类 2)重新doGet和doPost方法 3)Servlet程序交给tomcat服务器运行 3.1 servlet程序的class码拷贝到WEB-INF/classes目录 3.2 在web.xml文件中进行配置 Web.xml的配置一个Servlet的写法 <!-- 配置一个servlet --

servlet基础,如何实现一个servlet,servletConfig,HTTPServlet,ServletContext

1.什么是servlet? *servlet 服务器端的小程序. *干什么用的?处理客户端请求的小程序 *JavaEE三大组件之一 *Servlet *Filter 过滤器 *listener 监听器 servlet流程 1.请求服务器 2.创建req,resp两个对象 3.去web.xml中寻找servlet 4.找到之后返回servlet信息 5.服务器去判断当前servlet实例是否已经被创建过呢? 6.没有创建过(服务器会创建一个实例(init)) 7.服务器拿着req,resp 去调用