`
古尔丹之颅
  • 浏览: 30979 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

项目的必要基础知识——配置文件

阅读更多

       程序员中众所周知的事情就是当我们在代码中涉及到路径,端口等问题的时候,我们经常会来回反复修改这些数据,再者当我们将工程打包后,路径更会会随之改变,而我们再想去代码中更改路径就不现实了,而这里关于他是如何改变的在这里我们就不多说了,这时候我们就需要配置文件的出现,下面我将会主讲xml配置文件的部署、配置、读取。

       首先xml是一种可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。这些百度百科上面都有,基于这些特点,xml成为了很多工程编写配置文件的热门选择,尤其是一些大的工程,xml的采用树形结构,架构清晰,各种平台通用,可移植性好...等等等等。

进入正题如果是一般的java工程,我们在工程任意处new一个xml文件,关于这个文件怎么写那就见人见智了,如果你懂标记语言的基本格式,那就OK了,仅此而已。下面列出我的一个例子

<?xml version="1.0" encoding="UTF-8"?>
 <root>
 	   <url>http://192.168.30.178:8080/DBManager/DBManager?</url>
 </root>

  如你所见,如此而已。

 

下面我们就需要编写xml的读取了,在这里我们是借助 JDOM jar包进行解析的。

首先我们要获得你的xml文件的路径

String dirpath = System.getProperty("user.dir");//获取当前工作目录
String  xmlFile = dirpath + "/Mina_UDP/Server_Configuration_File.xml";//获取xml文件路径

  在这我们要实例化一个解析xml的对象并给与起一个InputStream输入流用于读取xml

SAXBuilder builder = new SAXBuilder();//实例化一个JDOM解析器 能将路径中的XML文件解析为Document对象
    InputStream file;
	try {
		file = new FileInputStream(xmlFile);//获取文件输入流
    	    org.jdom2.Document document;
		try {
			document = builder.build(file);//获得文档对象

  获得文档对象以后,我们便可以对文档对象为所欲为了,不管你是插入新的内容还是读取旧的内容还是更新内容都可以。不过我们要先获取xml的根节点

Element root = document.getRootElement();//获取xml根节点,在这里获取的就是上面xml中的<root></root>中的内容的引用

  接下来要调用这个引用的获取子节点的方法,该方法返回的是存有所有子节点的一个List

List files = root.getChildren();//获得根节点下子节点的内容,返回一个list

  而我们的根节点下面只有一条记录,所以只需要

   Element url = (Element) files.get(0);//这里返回的是存储该记录的节点对象,xml的结构之严谨由此可见一斑
  URL = url.getText();//获取该节点的信息
	} catch (JDOMException e) {
		log.error("文件解析出错");
	}
	} catch (IOException e) {
		og.error("文件IO流出错");
	}
	}catch(FileNotFoundException e1) {
		log.error("没有找到配置文件");
	}
}

  如此这般我们便成功的从xml配置文件中读取到我们需要的配置信息了。

 

 

而当我们需要在web工程中部署xml配置文件其实也不是很麻烦,其实web工程更需要做好配置文件的工作,因为在web中会设计到大量的端口号以及路径的问题

 

首先我们想让服务器在启动的时候,就自动加载配置信息,这只需要我们在web.xml中添加一些参数而已。在这之前我们需要写好配置文件,如上面所示即可,接着就要写一个类继承HttpServlet,在其init()方法中加入刚刚的JDOM读取方法,但是此时的xml配置文件路径的获取就不一样了,其他的还是相同的,xml文件路径获取方法如下

String realPath = getServletContext().getRealPath("");//这是获取服务器下工程的绝对路径
String file = getInitParameter("Servlet_File");//这是获取web.xml中xml文件的相对服务器的路径
 其他照旧,如此我们还需要对web.xml进行配置
 <!-- 配置Servlet_File -->
  <servlet>
	  <servlet-name>Servlet_File</servlet-name>
	  <servlet-class>com.IOT.web.Servlet_File</servlet-class>
	  <init-param>
	     <param-name>Servlet_File</param-name>
	     <param-value>\Servlet_File.xml</param-value>
	  </init-param>
	  <load-on-startup>2</load-on-startup>
  </servlet>
 <servlet-class>com.IOT.web.Servlet_File</servlet-class>是我们自己写的继承HttpServlet需要在服务器加载的类,
而<servlet-name>Servlet_File</servlet-name>是对其的引用,
<init-param></init-param>这里面则提供了配置文件相对于工程所在路径。
<load-on-startup></load-on-startup>则是控制着web服务器加载的优先级,里面的值必须是整数,当没有指定任何值或者,值为负数时,只有当该Servlet被动调用时才会加载,
而当里面的值为正整数,则web服务器在刚启动的时候便会加载该Servlet,并且该值越小的时候,加载的优先级就会越高。如此一来就OK了。
分享到:
评论

相关推荐

    注册表最基础知识——注册表最基础知识

    ### 注册表最基础知识 #### 一、注册表概述 注册表是Windows操作系统中的一个重要的数据库,用于存储系统和应用程序的设置信息。它包含了硬件配置、用户偏好设置、已安装软件列表以及各种运行时参数等关键数据。...

    STM32基础代码——流水灯

    以上就是"STM32基础代码——流水灯"所涵盖的核心知识点。通过这个项目,初学者可以熟悉STM32的GPIO、定时器、中断等基本功能,为后续更复杂的嵌入式开发打下坚实基础。在实践中,不断尝试和优化代码,将有助于提升...

    java基础篇——java的起源与演变

    Java,作为一种广泛使用的编程语言,起源于1991年Sun Microsystems公司的一个名为"Green"的项目,由詹姆斯·高斯林带领的团队创立。这个项目的目标是开发一种能够...了解这些基础知识对于理解和掌握Java编程至关重要。

    经典的Android项目——SMSPopup.zip

    "经典的Android项目——SMSPopup.zip" 这个标题表明我们讨论的是一个基于Android平台的开源项目,名为SMSPopup。这个项目很可能是用来处理短信通知的,因为"SMS"通常指的是手机短信服务,而"Popup"则暗示了它可能...

    北大青鸟第二单元项目———超市账单管理

    supermarket可能是一个文件夹或者压缩包内的主程序文件,包含着项目的源代码、配置文件和其他必要资源。根据MVC模式,这个文件夹可能包括了模型、视图和控制器的代码,以及任何其他的辅助类或库。在这里,开发者可以...

    安卓Android源码——GetSDTree(简单SD卡文件浏览器).7z

    【标签】"安卓 android" 指明了这个项目与Android操作系统有关,意味着我们需要具备Android开发的基础知识,包括Android SDK、Android Studio的使用,以及对Android应用生命周期、组件(如Activity、Service)的理解...

    安卓Android源码——xinxinDemo.zip

    这个项目可能是为了展示或教学Android应用开发的基础知识,或者是一个特定功能的实例。 【描述】"安卓Android源码——xinxinDemo.zip"表明这是一个针对Android操作系统的应用开发项目,用户可以下载并解压文件来...

    linux_gdb——sgi_stl——文件锁——程序自动重启

    另外,还可以使用systemd服务配置文件来控制程序开机启动。熟悉这些机制可以帮助开发者确保服务的可靠性。 5. **makefile**:Makefile是用于自动化编译过程的文本文件,定义了目标文件、依赖关系和编译规则。通过...

    Java自学之路——超仔细含练习项目及源码 Java知识体系最强总结————含各个阶段的面试题

    ### Java自学之路——超详细含练习项目及源码 #### Java知识体系最强总结 ...通过上述内容的学习,不仅可以掌握Java的基础知识,还能了解到更多关于Java开发的实践经验和技巧。这对于初学者来说是非常宝贵的学习资源。

    C#微波炉程序——完整的VS项目

    这个项目在Visual Studio(VS)环境中构建,提供了一个完整的解决方案,包括源代码、设计界面以及必要的配置文件,用户可以直接下载并运行,体验到实际开发过程中的部分环节。 1. **C#编程基础**:C#是一种面向对象...

    JSP源码——JSP Explorer 文件浏览器 v1.0_fileexplorer.zip

    【JSP源码——JSP Explorer 文件浏览器 v1.0】是一个基于Java Server ...通过研究和实践这个JSP Explorer项目,不仅可以掌握JSP和Web开发的基础知识,还能提升文件系统操作、前端交互设计以及应用安全等方面的能力。

    accp5.0——在线通讯录

    【标题】"accp5.0——在线通讯录"是一个基于ACC(P)5.0课程体系的实战项目,旨在帮助学员提升在Web开发中的实际操作技能。该项目的主要目的是设计并实现一个在线通讯录系统,允许用户存储、管理和查找联系人信息。 ...

    ASP.NET源码——FileManager(在线文件管理).zip

    9. **部署与配置**:ASP.NET应用程序部署在IIS(Internet Information Services)上,配置文件如web.config用来管理应用程序的设置,如连接字符串、安全性配置等。 10. **版本控制**:项目名称中的"Build 070822...

    windows编程基础——对话框2

    ### Windows编程基础——对话框2 #### 一、对话框及其分类 对话框是Windows应用程序中非常重要的一个组件,主要用于与用户的交互。它可以用来收集用户的输入、显示信息或者让用户作出选择等。 - **对话框和对话...

    计算机毕业设计-ASP.NET多功能聊天软件的设计与开发——文字聊天文件传输模块(源代码+LW).zip

    标题中的“ASP.NET多功能聊天软件的设计与开发——文字聊天文件传输模块”是一个计算机科学与技术领域的毕业设计项目,主要关注的是构建一个具有多种功能的聊天应用程序。ASP.NET是微软公司提供的一个用于构建Web...

    嵌入式项目一_——构建嵌入式FTP服务器报告.doc

    创建根文件系统包含必要的运行时库、应用程序和服务,以提供FTP服务器运行的基础环境。这可能包括 BusyBox 或 Buildroot 等工具来构建最小化的文件系统。 9. **FTP服务器搭建**: 安装和配置FTP服务器软件(如...

    简易空间——源代码

    总之,“简易空间——源代码”是一个实践性很强的学习资源,它涵盖了JavaWeb开发的基础知识,包括数据库设计、前后端交互、服务器配置等多个方面。对于想要提升JavaWeb开发技能的初学者来说,这是一个很好的起点。...

    安卓Android源码——商业项目完整版源代码.zip

    描述部分同样简洁明了:"安卓Android源码——商业项目完整版源代码.zip",与标题一致,再次强调这是一份完整的Android商业项目源码,可能是为了便于开发者研究、学习或作为基础进行二次开发。 【标签解读】 "安卓...

Global site tag (gtag.js) - Google Analytics