发布于2026-07-22 阅读(0)
扫一扫,手机访问
先看一个典型的场景:在 web.xml 里配置好初始化参数,然后在 JSP 页面里尝试读取它。按理说,这应该是个常规操作,但实际写代码时,不少开发者却在这里栽了跟头——同样一个参数,有的方式能读到,有的方式却读不到。
下面是一份标准的 web.xml 配置,定义了一个名为 firstparam 的初始化参数,值设为 firstparamvalue,并绑定到 /MyJsp.jsp 上。
myjsp /MyJsp.jsp firstparam firstparamvalue myjsp /myurl/*
那么,在 JSP 页面里,怎样写才能正确取出这个参数呢?下面是两种常见的写法,结果却截然不同。
my jsp page .jsp My init parameter is <%= application.getInitParameter("firstparam") %>
运行这段代码,页面上一片空白,根本拿不到值。问题出在哪里?
<%
String Str1;
Str1 = config.getInitParameter("firstparam");
Out.println(Str1);
%>
换成 config.getInitParameter 之后,参数值就顺利输出了。为什么会有这样的差异?
关键原因在于:config 是 ja vax.servlet.ServletConfig 类的对象,它代表当前 JSP 页面(即编译后的 Servlet)自身的配置,自然能读取到该 Servlet 专属的 init-param。而 application 是 ja vax.servlet.ServletContext 类的对象,它代表整个 Web 应用的上下文,只能读取全局的上下文参数(),而不是某个 Servlet 的初始化参数。
换句话说,把参数定义在 内部的 里,就只能通过 config.getInitParameter 来获取;如果想通过 application 获取,需要改用 全局配置。
顺带提一个实用的小技巧:如果使用 WebLogic 作为应用服务器,可以把侦听端口设置为 80。这样一来,在浏览器中访问时就不需要再手工输入端口号了,直接用 http://hostname/myfile.html 代替 http://hostname:portnumber/myfile.html,省去不少麻烦。
下一篇:让Asp与XML交互
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8