web.xml配置参数context-param和init-param的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web.xml配置参数context-param和init-param的区别相关的知识,希望对你有一定的参考价值。

参考技术A web.xml里面可以定义两种参数:
(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下:

<context-param>
<param-name>context/param</param-name>
<param-value>avalible during application</param-value>
</context-param>

(2)servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.wes.controller.MainServlet</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>avalible in servlet init()</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>

在servlet中可以通过代码分别取用:
package com.wes.controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class MainServlet extends HttpServlet

public MainServlet()
super();

public void init() throws ServletException ...
System.out.println("下面的两个参数param1是在servlet中存放的");
System.out.println(this.getInitParameter("param1"));
System.out.println("下面的参数是存放在servletcontext中的");
System.out.println(getServletContext().getInitParameter("context/param"));



第一种参数在servlet里面可以通过getServletContext().getInitParameter("context/param")得到
在JSP中可以用config.getServletContext().getInitParameter("context/param")得到
或者this.getServletContext().getInitParameter("context/param")

第二种参数只能在servlet的init()方法中通过this.getInitParameter("param1")取得本回答被提问者和网友采纳

web.xml中在Servlet中获取context-param和init-param内的参数

引自:http://blog.csdn.net/yakson/article/details/9203231

 

web.xml里面可以定义两种参数:
1.application范围内的参数,存放在servletContext中,在web.xml中配置如下: 

 
  1. <context-param>  
  2.            <param-name>context/param</param-name>  
  3.            <param-value>avalible during application</param-value>  
  4.   </context-param>  

  

2.servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:

 
  1. <servlet>  
  2.     <servlet-name>MainServlet</servlet-name>  
  3.     <servlet-class>com.wes.controller.MainServlet</servlet-class>  
  4.     <init-param>  
  5.        <param-name>param1</param-name>  
  6.        <param-value>avalible in servlet init()</param-value>  
  7.     </init-param>  
  8.     <load-on-startup>0</load-on-startup>  
  9. </servlet>  

 

在servlet中可以通过代码分别取用: 

 
  1. package com.qisentech.controller;  
  2. import javax.servlet.ServletException;  
  3. import javax.servlet.http.HttpServlet;  
  4. public class MainServlet extends HttpServlet {  
  5.     public MainServlet() {  
  6.         super();  
  7.       }  
  8.     public void init() throws ServletException {  
  9.           System.out.println(this.getInitParameter("param1"));  
  10.           System.out.println(getServletContext().getInitParameter("context/param"));  
  11.        }  
  12. }   

第一种参数在servlet里面可以通过getServletContext().getInitParameter("context/param")得到
第二种参数只能在servlet的init()方法中通过this.getInitParameter("param1")取

以上是关于web.xml配置参数context-param和init-param的区别的主要内容,如果未能解决你的问题,请参考以下文章

web.xml中在Servlet中获取context-param和init-param内的参数

web.xml配置

Web.xml配置详解之context-param

web.xml 组件加载顺序

Web.xml配置详解之context-param

Web.xml配置详解之context-param