当前位置: 代码迷 >> 综合 >> 笔记——ServletConfig与ServletContext
  详细解决方案

笔记——ServletConfig与ServletContext

热度:9   发布时间:2023-10-19 17:09:34.0

ServletConfig对象

  • 每个servlet都有一个ServletConfig对象
  • 用于向servlet传递部署时信息
  • 用于访问ServletContext
  • 参数在部署描述文件中部署

初始化参数

<servlet><servlet-name>ParamTests</servlet-name><servlet-class>com.TestInitParams</servlet-class><init-param><param-name>zy</param-name><param-value>zy@test.com</param-value></init-param></servlet>

在servlet代码中

读取一个参数

getServletConfig().getInitParameter("zyEmail");

读取所有参数

java.util.Enumeration e = getServletConfig().getInitParameterNames();while(e.hasMoreElements()){String s = e.nextElement().toString();out.println("<br>param name = " + s + "<br>");out.println(getServletConfig().getInitParameter(s));}

getServletConfig()是ServletConfig的一个方法(容器初始化一个servlet时,会为这个servelt建一个唯一的ServletConfig.容器从部署描述文件中读取servlet初始化参数,并把这些参数交给ServletConfig,然后把ServletConfig传递给servlet的init()方法)

(父类有两个版本的init()方法,一个无参的,一个有ServletConfig参数,带参的会调用无参的init()方法,所以继承时只需重写无参数的就够了)

 

ServletContext对象

  • 每个Web应用有一个ServletContext对象
  • 用于访问Web应用参数(参数也在部署描述文件中配置)
  • 相当于一种应用公告栏,可以在这里放置消息(称为属性),应用的其他部分可以访问这些消息
  • 得到服务器信息,包括容器名、容器版本,以及所支持API的版本等

上下文初始化参数

与servlet初始化参数类似,只不过上下文参数对整个Web应用可用,而不是只针对一个servlet

<context-param><param-name>zyEmail</param-name><param-value>zy@testEmail.com</param-value></context-param>
getServletContext().getInitParameter("zyEmail");

 

上下文监听器(实现ServletContextListener接口)

 

部署描述文件中要放入一个<listener>元素

<listener><listener-class> com.MyServletContextListener    </listener-class></listener>