java文件中怎么获取web.xml中的全局参数

java文件中怎么获取web.xml中的全局参数,第1张

每个 servlet 中 webxml 中可以有 <init-param > 参数,在 servlet 的 init 方法中可以把它们取出来并保存在某个地方(比如一个静态成员变量中,或者一个静态的 map 变量中,因为这个参数不会改变,因此可以直接放在静态变量中),其它的 Java 类就能去静态变量中取得这个参数。

如果你的程序不是一个 web 程序的话,可以把它放在命令行 -Djdbcdrive=orggitmmmysqlDriver 这样的参数中,之后程序可以用 SystemgetProperty("jdbcdriver"); 读取出来。或者放在一个 properties 配置文件中,然后读取这个properties 文件。

java中利用HtmlAgilityPack API就可以把html解析成xml了。

在HtmlAgilityPack中常用到的类有HtmlDocument、HtmlNodeCollection、

HtmlNode和HtmlWeb等。

其流程一般是先获取HTML,这个可以通过HtmlDocument的Load()或LoadHtml()来加载静态内容,或者也可以HtmlWeb的Get()或Load()方法来加载网络上的URL对应的HTML。

得到了HtmlDocument的实例之后,就可以用HtmlDocument的DocumentNode属性,这是整个HTML文档的根节点,它本身也是一个HtmlNode,然后就可以利用HtmlNode的SelectNodes()方法返回多个HtmlNode的集合对象HtmlNodeCollection,也可以利用HtmlNode的SelectSingleNode()方法返回单个HtmlNode。

HtmlAgilityPack确实是一个功能强大、体积小的开源HTML解析类库,在本篇仅仅是介绍了其中几个类的用法,但光这些就足以供周公快速实现了许久没有实现的功能,如果让周公用正则表达式来实现类似的功能,时间肯定要比用这个长得多。

dom4j的写法大概如下:

String xml = "上述的xml字符串";

Document doc = DocumentHelperparseText(xml);

Element rootElt = docgetRootElement();

//有了根节点以后就可以为所欲为了

String userName = rootEltelement("adaptor-attributes")attribute("user-name")asXML();

String password =  rootEltelement("adaptor-attributes")attribute("password")asXML();

java读取xml信息常用技术有dom解析和dom4J解析

dom4j是最常用的java解析xml技术,在使用时需要下载dom4jjar

具体解析方法可以参考一下内容

xml结构

<books>

<book id="001">

<title>Harry Potter</title>

<author>J K Rowling</author>

</book>

<book id="002">

<title>Learning XML</title>

<author>Erik T Ray</author>

</book>

</books>

java读取xml节点元素,主要使用java提供的解析xml的工具类SAXParserFactory,如下代码:

package xmlxmlreader;import javaioFile;import javanetURL;import javautilProperties;import javaxxmlparsersSAXParser;import javaxxmlparsersSAXParserFactory;public class CFGParser {//解析xml文件的工具类 private Properties props; public Properties getProps() { return props; } public void setProps(Properties props) { thisprops = props; } public void parse(String filename) throws Exception { CFGHandler handler = new CFGHandler(); SAXParserFactory factory = SAXParserFactorynewInstance(); factorysetNamespaceAware(false); factorysetValidating(false); SAXParser parser = factorynewSAXParser(); URL confURL = supergetClass()getClassLoader()getResource(filename); if (confURL == null) { Systemoutprintln("Can't find configration file"); return; } try { parserparse(confURLtoString(), handler); thisprops = handlergetProps(); } finally { factory = null; parser = null; handler = null; } } public void parseFile(String filename) throws Exception { CFGHandler handler = new CFGHandler(); SAXParserFactory factory = SAXParserFactorynewInstance(); factorysetNamespaceAware(false); factorysetValidating(false); SAXParser parser = factorynewSAXParser(); File f = new File(filename); if ((f == null) || (!fexists())) return; try { parserparse(f, handler); thisprops = handlergetProps(); } finally { factory = null; parser = null; handler = null; } }}package xmlxmlreader;import javautilProperties;import orgxmlsaxAttributes;import orgxmlsaxSAXException;import orgxmlsaxhelpersDefaultHandler; public class CFGHandler extends DefaultHandler{ private Properties props; private String currentSet; private String currentName; private StringBuffer currentValue = new StringBuffer(); public CFGHandler() { thisprops = new Properties(); } public Properties getProps() { return thisprops; } public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { thiscurrentValuedelete(0, thiscurrentValuelength()); thiscurrentName = qName; } public void characters(char[] ch, int start, int length) throws SAXException { thiscurrentValueappend(ch, start, length); } public void endElement(String uri, String localName, String qName) throws SAXException { thispropsput(qNametoLowerCase(), thiscurrentValuetoString()trim()); }}xml文件 <xml version="10" encoding="UTF-8"><xml-body> <refresh_userlist desc="用户列表刷新间隔时间(秒)">6</refresh_userlist> <refresh_message desc="短消息刷新间隔时间(秒)">10</refresh_message> <morningbegin desc="上午上班时间">23:00</morningbegin> <morningend desc="上午下班时间">12:00</morningend> <afternoonbegin desc="下午上班时间">18:00</afternoonbegin></xml-body>jsp获取各个节点的值:<%@ page language="java" import="javautil" pageEncoding="UTF-8"%><html> <jsp:useBean id="cfgp" scope="page" class="xmlxmlreaderCFGParser"></jsp:useBean> <body> <% cfgpparse("kaoqinxml"); Properties pro = cfgpgetProps(); String stTime = progetProperty("morningbegin"); String edTime = progetProperty("morningend"); String afternoonbegin = progetProperty("afternoonbegin"); outprintln(stTime+"\n"+edTime+"\n"+afternoonbegin); Systemoutprintln(stTime+"\n"+edTime+"\n"+afternoonbegin); %> </body></html>

如果是要取出全部的值建议解析WEBXML然后取值如果是取某个特定的值可以用下面的:

webxml里面可以定义两种参数:

(1)application范围内的参数,存放在servletcontext中,在webxml中配置如下:xml 代码

<context-param>

<param-name>context/param</param-name>

<param-value>avalible during application</param-value>

</context-param> (2)servlet范围内的参数,只能在servlet的init()方法中取得,在webxml中配置如下:xml 代码

<servlet>

<servlet-name>MainServlet</servlet-name>

<servlet-class>comwescontrollerMainServlet</servlet-class>

<init-param>

<param-name>param1</param-name>

<param-value>avalible in servlet init()</param-value>

</init-param>

<load-on-startup>0</load-on-startup>

</servlet> 在servlet中可以通过代码分别取用:java 代码

package comtest;

import javaxservletServletException;

import javaxservlet>

以上就是关于java文件中怎么获取web.xml中的全局参数全部的内容,包括:java文件中怎么获取web.xml中的全局参数、JAVA怎么把HTML转换XML格式、java怎么读取xml文件 如下,获取username和password等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9753196.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存