商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > JSP取得在WEB.XML中定义的参数

JSP取得在WEB.XML中定义的参数

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

JSP 中获取 web.xml 初始化参数的那些坑

先看一个典型的场景:在 web.xml 里配置好初始化参数,然后在 JSP 页面里尝试读取它。按理说,这应该是个常规操作,但实际写代码时,不少开发者却在这里栽了跟头——同样一个参数,有的方式能读到,有的方式却读不到。

下面是一份标准的 web.xml 配置,定义了一个名为 firstparam 的初始化参数,值设为 firstparamvalue,并绑定到 /MyJsp.jsp 上。




    
         myjsp 
         /MyJsp.jsp 
        
            firstparam
            firstparamvalue
        
    
    
         myjsp 
         /myurl/* 
    

那么,在 JSP 页面里,怎样写才能正确取出这个参数呢?下面是两种常见的写法,结果却截然不同。

失败的写法:用 application.getInitParameter


my jsp page .jsp
My init parameter is <%= application.getInitParameter("firstparam") %>

运行这段代码,页面上一片空白,根本拿不到值。问题出在哪里?

正确的写法:用 config.getInitParameter

<%
    String Str1;
    Str1 = config.getInitParameter("firstparam");
    Out.println(Str1);
%>

换成 config.getInitParameter 之后,参数值就顺利输出了。为什么会有这样的差异?

关键原因在于:configja vax.servlet.ServletConfig 类的对象,它代表当前 JSP 页面(即编译后的 Servlet)自身的配置,自然能读取到该 Servlet 专属的 init-param。而 applicationja vax.servlet.ServletContext 类的对象,它代表整个 Web 应用的上下文,只能读取全局的上下文参数(),而不是某个 Servlet 的初始化参数。

换句话说,把参数定义在 内部的 里,就只能通过 config.getInitParameter 来获取;如果想通过 application 获取,需要改用 全局配置。

顺带提一个实用的小技巧:如果使用 WebLogic 作为应用服务器,可以把侦听端口设置为 80。这样一来,在浏览器中访问时就不需要再手工输入端口号了,直接用 http://hostname/myfile.html 代替 http://hostname:portnumber/myfile.html,省去不少麻烦。

本文转载于:https://www.jb51.net/article/2416.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注