当前位置: 代码迷 >> Web前端 >> web.xml配备参数context-param和init-param的区别
  详细解决方案

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

热度:541   发布时间:2012-08-29 08:40:14.0
web.xml配置参数context-param和init-param的区别

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

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

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

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

?

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>   
    <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中可以通过代码分别取用:

Java代码 复制代码?收藏代码
  1. package?com.wes.controller;???? ??
  2. ??? ??
  3. import?javax.servlet.ServletException;???? ??
  4. import?javax.servlet.http.HttpServlet;???? ??
  5. ??? ??
  6. public?class?MainServlet?extends?HttpServlet{???? ??
  7. ??? ??
  8. ????public?MainServlet(){???? ??
  9. ????????super();???? ??
  10. ??????}???? ??
  11. ????public?void?init()?throws?ServletException?...{???? ??
  12. ??????????System.out.println("下面的两个参数param1是在servlet中存放的");???? ??
  13. ??????????System.out.println(this.getInitParameter("param1"));???? ??
  14. ??????????System.out.println("下面的参数是存放在servletcontext中的");???? ??
  15. ??????????System.out.println(getServletContext().getInitParameter("context/param"));???? ??
  16. ???????}???? ??
  17. }??
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")取得.

  相关解决方案