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

导读:本篇文章讲解 【错误记录】Tomcat访问xml文件中配置的全局变量和局部变量,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

<一> 获取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>连接位置有误,注意不同文件所处的路径

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114593.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!