【错误记录】Tomcat访问xml文件中配置的全局变量和局部变量

<一> 获取xml中已定义变量的方式

首先你要明白两个事情:

1、访问全局变量

在servlet文件(java文件)中访问xml中定义的全局变量的方法为:

String global =  this.getServletContext().getInitParameter("global");
或(省略this):
String global =  getServletContext().getInitParameter("global");

在servlet中的构造函数、Init()初始化函数、doget()函数中运行运行该语句均可实现访问在xml文件中定义的全局变量global,要访问对应的全局变量只需将getInitParameter("")引号中的字符串改为你自己在xml文件中定义的全局变量即可

2、访问局部变量

在servlet文件中访问xml中定义的局部变量:

String url = getServletConfig().getInitParameter("url");
或:
String url= this.getInitParameter("url");
或(省略this):
String url= getInitParameter("url");

该语句也可编写在servlet的构造函数、Init()初始化函数或doget()函数中,均能实现访问在xml文件中定义的局部变量

说明:为什么说要明白这两点呢??因为之前在自己进行编程时,总是无法实现访问局部变量(长时间找资料让人怀疑自己),最后我还怀疑因为软件更新太快,已经不支持这种访问方式,但网上只有这一种访问方式,最后在成功实现访问后,想想自己是多么的先入为主和可笑,这种访问方式在笔者当前的 时间是还没有改变的,就算改变了网络上也会有大量的说明,所以在遇到问题时,先不要立刻就质疑规则有问题!!!

在确认了上面的访问方式均没有问题之后,来看接下来的原因

<二> xml文件的配置(基本的定义)

配置局部变量:

<servlet>
    <servlet-name>Servlet</servlet-name>
    <servlet-class>servlet.jdbcservlet</servlet-class>
    <init-param>
      <param-name>driver</param-name>
      <param-value>com.mysql.jdbc.Driver</param-value>
    </init-param>
    <init-param>
      <param-name>url</param-name>
      <param-value>jdbc:mysql://localhost:3306</param-value>
    </init-param>
    <init-param>
      <param-name>user</param-name>
      <param-value>root</param-value>
    </init-param>
    <init-param>
      <param-name>password</param-name>
      <param-value>root</param-value>
    </init-param>
  </servlet>

对于这段配置局部变量的解释,上面这段代码有问题,因为没有定义<servlet-mapping></servlet-mapping>因而在后方加上下面这段xml程序代码(与<servlet> </servlet>同等级别):

<servlet-mapping>
    <servlet-name>Servlet</servlet-name>
    <url-pattern>/jdbcservlet</url-pattern>
  </servlet-mapping>

说明:<servlet-mapping>中的<servlet-name>应与前面<servlet>中的<servlet-name>相同;<url-pattern>是用于指定访问哪个servlet文件的
注意<servlet> </servlet><servlet-mapping>以及下面的<context-param>都是同级关系,均是<web-app>的子标签
我的xml文件中配置全局变量的方式:

	<context-param>   <!--  全局变量-->
    <param-name>global</param-name>
    <param-value>全局参数示例</param-value>
    </context-param>
  <context-param>
  <param-name>schoolName</param-name>
  <param-value>xx大学</param-value>
 </context-param>
     <context-param>
    <param-name>college</param-name>
    <param-value>计算机学院</param-value>
	</context-param>

注意在 <context-param></context-param> 中间配置全局变量,且这个标签在xml文件中是<web-app></weeb-app>的子标签,与<servlet></servlet>标签同级别

上面共配置了三个全局变量

<三> 可能引发的错误

(1)<servlet-mapping>中的<servlet-name>应与前面<servlet>中的<servlet-name>不相同导致这个局部变量无法访问
(2)<servlet-mapping>中的<url-pattern>连接位置有误,注意不同文件所处的路径

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿,葱来了-C is coming

老板大气

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值