servlet要成为真正的servlet必须具备两个东西:
1.ServletConfig
2.ServletContext

容器初始化一个servlet时,会为这个servlet建一个唯一的ServletConfig,容器从web.xml中读出初始化参数并把参数交给ServletConfig,然后把ServletConfig传递给servlet的init()方法。

servlet初始化参数只能读一次——就是在容器初始化servlet的时候,如果改变web.xml中的参数,要想生效只能重新部署servlet。


    如果想在jsp中获取初始化参数呢,我们只能在servlet中通过设置属性的办法,但是只适用于接受转发请求的jsp

    如果想解决上面的难题,就要引入servletcontext,它的工作机制类似于定义servlet的参数,不过最重要的是它是针对整个web工程的,而不是仅仅适用于一个servlet。

在web.xml中定义servletcontext:
<servlet>
<servlet-name>MyTest</servlet-name>
<servlet-class>TestInitParams</servlet-class>
</servlet>
<context-param>
<param-name>myEmail</param-name>
<param-value>zy@gmail.com</param-value>
</context-param>
注:</context-param>要放在下<web-app>下,而不是<servlet>下;
在servlet中获取该值:
out.println(getServletContext().getInitParameter(“myEmail”));
每个servlet都继承了getServletContext()方法。
相当于下面的方式:
ServletContext context = getServletContext();
out.println(context.getInitParameter(“myEmail”));