JSP中初始化参数的设置和获取方法

JSP中初始化参数的设置和获取方法

Get Init Parameter in JSP Page


By Reawer 2008-8-13
InitParamter访问方法一(内置对象):

一、By ServletConfig :
  Parameter1: {config.getInitParameter("p1") }
  Parameter2: {config.getInitParameter("p2") }
  Parameter3: {config.getInitParameter("p3") }

config遍历所有Parameter:
二、By ServletContext :
  Parameter1: {application.getInitParameter("p1") }
  Parameter2: {application.getInitParameter("p2") }
  Parameter3: {application.getInitParameter("p3") }

application遍历所有Parameter:

InitParamter访问方法二(JSF):

InitParamter访问方法三(EL)--相当于application对象访问:

= ${initParam.p1}
= ${initParam.p2}
= ${initParam.p3}

JSP中的initParameter使用方法及体会
    1. 使用JSP对应的Servlet初始化参数
    给JSP页面提供初始化参数在三个方面不同于给servlet提供初始化参数。
    1)需要使用使用jsp-file元素代替servlet-class。因此,WEB-INF/web.xml文件的servlet元素如下所示:

<servlet>
<description>initParameter</description>
<display-name>initParameterJsp</display-name>
<servlet-name>initParameterJsp</servlet-name>
<jsp-file>/jsp/initParameter.jsp</jsp-file>
<init-param>
  <description>parameter Test</description>
  <param-name>paraName</param-name>
  <param-value>paraValue</param-value>
</init-param>
</servlet>

    2) 几乎总是分配一个明确的URL模式。对servlet,一般相应地使用以
http://localhost:8080/webApp/servlet/ 开始的缺省URL。
  只需记住,使用注册名而不是原名称即可。这对于JSP页面在技术上也是合法的。例如,可用URL
http://localhost:8080/webApp/servlet/PageName
  访问*.jsp的对初始化参数具有访问权的版本。但在用于JSP页面时,我们经常似乎不喜欢应用常规的servlet的URL。
  因此,好的办法是使用url-pattern将JSP页面的原URL与注册的 servlet名相关联。
  这样,客户机可使用JSP页面的指定名称,进行访问。例如,给本JSP的servlet定义,可使用下面的 servlet-mapping定义:
 
<servlet-mapping>
<servlet-name>initParameterJsp</servlet-name>
<!-- 关联URL模式.此处若不写成:/jsp/initParameter.jsp则在使用URL(/jsp/initParameter.jsp)访问时无法取到Servlet中的initParamter值 -->
<url-pattern>/jsp/initParameter</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>initParameterJsp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

    3)JSP页使用jspInit而不是init。自动从JSP页面建立的servlet或许已经使用了inti方法。
  一般如上在url-pattern中未写成/jsp/initParameter.jsp形式,则
http://localhost:8080/webApp/*.jsp
  形式的URL将激活此页面的不具有初始化参数访问权的版本,从而将对参数paraName失去访问权,如本页中使用config内置对象访问:
    config.getInitParameter("paraName") ---- 得到结果: null。
  但是, web.xml文件中已为本JSP页分配了一个注册名,该注册名已与URL模式/jsp/initParameter相关联。这时使用如下形式访问:
   
http://localhost:8080/webApp/jsp/initParameter
  即则可得到参数:
    config.getInitParameter("paraName"); //---- 得到结果: paraValue。
   
  2. 使用应用范围内(项目)的初始化参数
  一般,对单个地servlet或JSP页面分配初始化参数。指定的servlet或JSP页面利用ServletConfig的getInitParameter方法读取这些参数。
  但是,在某些情形下,希望设置可由任意servlet或JSP页面借助ServletContext的getInitParameter方法读取的系统范围内的初始化参数。
  可利用context-param元素声明这些系统范围内的初始化值。
  1)context-param元素应该包含param-name、param-value以及可选的description子元素,如下所示:
 
<context-param>
<description>这是一个示例参数的描述信息</description>
<!-- 参数名 -->
<param-name>appParaName</param-name>
<!-- 参数值 -->
<param-value>appParaValue</param-value>
</context-param>

  2)访问方法,使用内置的application对象:
  String value = application.getInitParameter("参数名");//---- 得到结果: appParaValue。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值