Servlet&JSP学习之servlet属性和监听(1)_servletConfig和servletContext

Servlet&JSP学习之servlet属性和监听(1)_servletConfig和servletContext

 

servletConfig方法列表

String getInitParameter(String name)

返回name的实际初始化值

Enumeration getInitParameterNames()

以数组的形式返回所有的初始化值

ServletContext getServletContext()

返回上下文

String getServletName()

返回这个servlet实例的名称

在XMl中的代码表现形式是这样滴:

<servlet>

<init_param>

        <param_name>myEmailAddress</param_name>

        <param_value>[email protected]</param_value>

</init_param>

</servlet>

在servlet代码中:

String emailAddress = getServletconfig().getInitparameter("myEmailAddress");//这里的myEmailAddress也就是上面在XML中定义的<param_name>myEmailAddress</param_name>

 

容器初始化一个servlet的时候,他会读DD,就是XML配置文件,并为servletConfig创建名/值对。具体的步骤是这样:

  1. 容器读取这个servlet的部署描述文件,包括servlet初始化参数(<init_param></init_param>)
  2. 容器为这个servlet创建一个新的servletConfig实例
  3. 容器为每个servlet初始化参数创建一个String 名/值对。
  4. 容器想servletConfig提供String 名/值初始化参数的引用
  5. 容器为servlet类创建一个实例
  6. 容器调用servlet的init()方法,传如servletConfig引用

问题来了:这个数据要是JSP也想用怎么办呢?

在servlet中:request.setAttribute("jspEmail",emailAddress );

然后在JSP中:request.getAttribute("jspEmail");

但是,如果想这样一个属性,需要在很多地方用到,那就最好用上下文初始化参数了:servletContext

servletContext

servletContext与servletConfig的比较学习:

  servletConfig servletContext
适用范围 只对配置了<init_param>响应的servlet适用 适用于整个web项目
部署表述文件
<web_app>
... ...
<servlet>
<init_param>
    <param_name></param_name>
    <param_value></param_value>
</init_param>

</servlet>
......
</web_app>

<web_app>
... ...
   <servlet>
   ... ...
   </servlet>
  <context_param>
         <param_name></param_name>
          <param_value></param_value>
   </context_param>
... ...
</web_app>
servlet代码中的表现 getServletconfig().getInitparameter("  ") getServletContext().getInitParameter("  );

 

servletContext还能做什么?看看servletContext主要的一些方法吧:

servletContext是JSP活着servlet与容器及WEB应用其他部分的一个连接。

Object getAttribute(String name)

通过name得到属性

Enumeration getAttributeNames()

得到属性数组

String getInitParameter(String name)

得到初始化参数

Enumeration getInitParameterNames()

得到初始化参数数组

void setAttribute(String name, Object object)

设置属性

void removeAttribute(String name)

删除属性

RequestDispatcher getRequestDispatcher(String path)

请求分派

你可能感兴趣的:(Servlet&JSP学习之servlet属性和监听(1)_servletConfig和servletContext)