jsp学习之 Context init 参数和servlet init 参数详解

Context init参数的配置与访问方式

Context init 参数就像servlet init 参数那样,只不过context 参数是事个webapp都可以访问的,
不属于单个的servlet,所以意味着任何servlet和jsp都可以访问,我们没有必要去配置第个配置文件,
如果你想改变他的值,只要改变一个地方,所有的值都会同时发生变化。
在配置文件(web.xml)中要进行如下配置

<servlet> <servlet-name>paramContextTest</servlet-name> <servlet-class>TestContextInit</servlet-class> </servlet> <context-param> <param-name>youEmail</param-name> <param-value>[email protected]</param-value> </context-param> <servlet-mapping> <servlet-name>paramContextTest</servlet-name> <url-pattern>/context.do</url-pattern> </servlet-mapping> </web-app>  

在servlet中访问非常的简单,
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                out.println(getServletContext().getInitParameter("youEmail"));           

servlet init 参数和context init 参数在区别

1、context init参数是在整个<web-app>元素之中的,不是在某一个专门的
<servlet>元素之中。

<web-app ...> <context-param> <param-name>foo</param-name> <param-value>bar</param-value> </context-param> <!-- other stuff including servlet declarations --> </web-app>  

2、Servlet init 参数是属于某人个专门的servlet, 

<servlet> <servlet-name> BeerParamTests </servlet-name> <servlet-class> TestInitParams </servlet-class> <init-param> <param-name>foo</param-name> <param-value>bar</param-value> </init-param> <!-- other stuff --> </servlet>

 

3、在代码访问时不同

context init 参数访问方式 getServletContext().getInitParameter("paramName"); servlet init 参数访问方式 getServletConfig().getInitParameter("paramName");

 

4、访问范围不同
context init 参数任何jsp和servlet文件都可以访问
servlet init 只能对于那servlet配置<init-param>文件

你可能感兴趣的:(jsp学习之 Context init 参数和servlet init 参数详解)