程序员中众所周知的事情就是当我们在代码中涉及到路径,端口等问题的时候,我们经常会来回反复修改这些数据,再者当我们将工程打包后,路径更会会随之改变,而我们再想去代码中更改路径就不现实了,而这里关于他是如何改变的在这里我们就不多说了,这时候我们就需要配置文件的出现,下面我将会主讲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需要在服务器加载的类,
相关推荐
### 注册表最基础知识 #### 一、注册表概述 注册表是Windows操作系统中的一个重要的数据库,用于存储系统和应用程序的设置信息。它包含了硬件配置、用户偏好设置、已安装软件列表以及各种运行时参数等关键数据。...
以上就是"STM32基础代码——流水灯"所涵盖的核心知识点。通过这个项目,初学者可以熟悉STM32的GPIO、定时器、中断等基本功能,为后续更复杂的嵌入式开发打下坚实基础。在实践中,不断尝试和优化代码,将有助于提升...
Java,作为一种广泛使用的编程语言,起源于1991年Sun Microsystems公司的一个名为"Green"的项目,由詹姆斯·高斯林带领的团队创立。这个项目的目标是开发一种能够...了解这些基础知识对于理解和掌握Java编程至关重要。
"经典的Android项目——SMSPopup.zip" 这个标题表明我们讨论的是一个基于Android平台的开源项目,名为SMSPopup。这个项目很可能是用来处理短信通知的,因为"SMS"通常指的是手机短信服务,而"Popup"则暗示了它可能...
supermarket可能是一个文件夹或者压缩包内的主程序文件,包含着项目的源代码、配置文件和其他必要资源。根据MVC模式,这个文件夹可能包括了模型、视图和控制器的代码,以及任何其他的辅助类或库。在这里,开发者可以...
【标签】"安卓 android" 指明了这个项目与Android操作系统有关,意味着我们需要具备Android开发的基础知识,包括Android SDK、Android Studio的使用,以及对Android应用生命周期、组件(如Activity、Service)的理解...
这个项目可能是为了展示或教学Android应用开发的基础知识,或者是一个特定功能的实例。 【描述】"安卓Android源码——xinxinDemo.zip"表明这是一个针对Android操作系统的应用开发项目,用户可以下载并解压文件来...
另外,还可以使用systemd服务配置文件来控制程序开机启动。熟悉这些机制可以帮助开发者确保服务的可靠性。 5. **makefile**:Makefile是用于自动化编译过程的文本文件,定义了目标文件、依赖关系和编译规则。通过...
### Java自学之路——超详细含练习项目及源码 #### Java知识体系最强总结 ...通过上述内容的学习,不仅可以掌握Java的基础知识,还能了解到更多关于Java开发的实践经验和技巧。这对于初学者来说是非常宝贵的学习资源。
这个项目在Visual Studio(VS)环境中构建,提供了一个完整的解决方案,包括源代码、设计界面以及必要的配置文件,用户可以直接下载并运行,体验到实际开发过程中的部分环节。 1. **C#编程基础**:C#是一种面向对象...
【JSP源码——JSP Explorer 文件浏览器 v1.0】是一个基于Java Server ...通过研究和实践这个JSP Explorer项目,不仅可以掌握JSP和Web开发的基础知识,还能提升文件系统操作、前端交互设计以及应用安全等方面的能力。
【标题】"accp5.0——在线通讯录"是一个基于ACC(P)5.0课程体系的实战项目,旨在帮助学员提升在Web开发中的实际操作技能。该项目的主要目的是设计并实现一个在线通讯录系统,允许用户存储、管理和查找联系人信息。 ...
9. **部署与配置**:ASP.NET应用程序部署在IIS(Internet Information Services)上,配置文件如web.config用来管理应用程序的设置,如连接字符串、安全性配置等。 10. **版本控制**:项目名称中的"Build 070822...
### Windows编程基础——对话框2 #### 一、对话框及其分类 对话框是Windows应用程序中非常重要的一个组件,主要用于与用户的交互。它可以用来收集用户的输入、显示信息或者让用户作出选择等。 - **对话框和对话...
标题中的“ASP.NET多功能聊天软件的设计与开发——文字聊天文件传输模块”是一个计算机科学与技术领域的毕业设计项目,主要关注的是构建一个具有多种功能的聊天应用程序。ASP.NET是微软公司提供的一个用于构建Web...
创建根文件系统包含必要的运行时库、应用程序和服务,以提供FTP服务器运行的基础环境。这可能包括 BusyBox 或 Buildroot 等工具来构建最小化的文件系统。 9. **FTP服务器搭建**: 安装和配置FTP服务器软件(如...
总之,“简易空间——源代码”是一个实践性很强的学习资源,它涵盖了JavaWeb开发的基础知识,包括数据库设计、前后端交互、服务器配置等多个方面。对于想要提升JavaWeb开发技能的初学者来说,这是一个很好的起点。...
描述部分同样简洁明了:"安卓Android源码——商业项目完整版源代码.zip",与标题一致,再次强调这是一份完整的Android商业项目源码,可能是为了便于开发者研究、学习或作为基础进行二次开发。 【标签解读】 "安卓...