servlet如何解析xml格式报文(servlet在xml中具体怎样配置)

本文目录
- servlet在xml中具体怎样配置
- spring mvc 怎么接收xml格式的
- JSp,我 用ajax无刷新写了一个添加评论的功能,但是JS脚本这边解析servlet端构造的xml文档老是报错,代码
- java如何读取XML配置文件
- Springboot自定义xml文件解析
- java 在servlet中如何将xml格式的字符串(注意是字符串)解析成html表格格式的急!!!
- servlet 怎么接受前台传来的xml字符串
- toncat读xmlservlet文件失败
servlet在xml中具体怎样配置
XML(eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是处于SGML,标准通用语言。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, (它不专属于任何一家公司),你不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言
spring mvc 怎么接收xml格式的
在你web.xml里面配置这个spring的servlet的时候按如下代码编写即可 spring org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/springweb/*-servlet.xml classpath:spring/servlet/*-servlet.xml 1
JSp,我 用ajax无刷新写了一个添加评论的功能,但是JS脚本这边解析servlet端构造的xml文档老是报错,代码
原来是手写的.
不用看了.. 把 responseText 改成 responseXML
"如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:"
***隐藏网址***
***隐藏网址***
java如何读取XML配置文件
JAVA与XML文件,可以说是软件开发的“黄金搭档”,而如何使用JAVA完成对XML文件的读取,是我们首先要解决的问题。
一、XML文件
这个示例文件包括了用来打开ORACLE数据库的各种参数
《?xml version="1.0" encoding="UTF-8"?》
《dbmsg》
《dbinfo》
《drivername》oracle.jdbc.driver.OracleDriver《/drivername》
《sConnStr》jdbc:oracle:thin:@11.88.225.80:1521:VOUCHERDB《/sConnStr》
《username》SYS AS SYSDBA《/username》
《password》voucherdb《/password》
《/dbinfo》
《/dbmsg》
二、编写类名为ReadXml的类,用于解析XML文件
我们要在应用程序中打开数据库,就必须完成对该文件中drivername、sConnStr、username、password的读取,通过查找有关资料,笔者编制了以下程序,用于读取文件名为filename的XML文件。
package voucher.basic;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class ReadXml {
private String drivername;
private String sConnStr;
private String username;
private String password;
public String getDrivername() {
return drivername;
}
public String getSConnStr() {
return sConnStr;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setDrivername(String drivername) {
this.drivername = drivername;
}
public void setSConnStr(String connStr) {
sConnStr = connStr;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public ReadXml(String fileName){
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
InputStream is=new FileInputStream(fileName);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();
NodeList dbinfo=root.getChildNodes();
if(dbinfo!=null){
for(int i=0;i《dbinfo.getLength();i++){
Node db=dbinfo.item(i);
for(Node node=db.getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("drivername")){
setDrivername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("sConnStr")){
setSConnStr(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("username")){
setUsername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("password")){
setPassword(node.getFirstChild().getNodeValue());
}
}
}
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这个以ReadXml命名的类,使用了参数为文件名的构造方法,用户只要将配置文件我名称传递给该方法,就可以完成对XML文件的解析,进而完成对相应参数数的读取。
三、如何获取XML文件全路径并读取配置参数
获取XML文件全路径的方法有两个,一是在servlet中获取,二是在单独的JAVA类中获取。
1.在servlet中获取XML文件的全路径并读取配置参数
程序片段String dirPath = getServletContext().getRealPath( "/WEB-INF");
String fileName = dirPath + "/conn.xml";
ReadXml xm = new ReadXml(fileName);
String DriverName = xm.getDrivername();
String connStr = xm.getSConnStr();
String user = xm.getUsername();
String pas = xm.getPassword();
将这段程序添加到servlet中dopost()之后即可完成参数的读取
2.在单独的JAVA类中获取全路径并读取配置参数
程序片段
String dirpath = System.getProperty("user.dir");
String xmlFile = dirpath + "/WebRoot/WEB-INF/conn.xml";
ReadXml rdxml = new ReadXml(xmlFile);
String driverName = rdxml.getDrivername();
String sConnStr = rdxml.getSConnStr();
String userName = rdxml.getUsername();
String passWord = rdxml.getPassword();
注:配置文件conn.xml保存在webroot/WEB-INF目录中。
Springboot自定义xml文件解析
有时候,要通过自定义XML配置文件来实现一些特定的功能。这里通过例子来说明。
首先,看部分spring加载bean文件的源码:
spring-beans-5.0.6.RELEASE.jar!/org/springframework/beans/factory/xml/PluggableSchemaResolver.class :
spring-beans-5.0.6.RELEASE.jar!/org/springframework/beans/factory/xml/DefaultNamespaceHandlerResolver.class :
可以看出,spring在加载xml文件的时候,会默认读取配置文件 META-INF/spring.schemas 和 META-INF/spring.handlers 。这样,我们就可以在这两个文件添加我们自定义的xml文件格式和xml文件解析处理器。
新建一个Springboot工程,pom如下。
SelfDefineXmlTrial/pom.xml :
然后,新建一个用于测试controller。
com.lfqy.springboot.selfdefxml.controller.SelfDefXmlController :
最后,创建一个Springboot的启动类。
com.lfqy.springboot.selfdefxml.SelfDefXmlApplication :
***隐藏网址***
修改前面提到的配置文件 META-INF/spring.schemas 、 META-INF/spring.handlers ,添加xml格式说明。
META-INF/spring.schemas :
META-INF/spring.handlers :
添加xml格式说明配置文件。
META-INF/selfdef.xsd :
添加自定义xml格式处理器类。
com.lfqy.springboot.selfdefxml.selxmlparse.UserNamespaceHandler :
新增xml格式解析类。
com.lfqy.springboot.selfdefxml.selxmlparse.UserBeanDefinitionParser :
新增自定义xml对应的bean类。
com.lfqy.springboot.selfdefxml.beans.User :
添加自定义xml配置文件读取的相关逻辑。
com.lfqy.springboot.selfdefxml.SelfDefXmlApplication :
到这里,编码就完成了,工程的目录结构如下。
运行之后,控制台输出如下:
这里,通过实现一个启动时自动初始化的一个servlet来实现。
com.lfqy.springboot.selfdefxml.servlet.StartupServlet :
在启动时加载servlet,为了方便区分,这里新写一个启动类。
com.lfqy.springboot.selfdefxml.SelfDefXmlLoadOnStartupApplication
到这里,编码已经完成,工程的目录结构如下:
运行之后,控制台输出如下:
java 在servlet中如何将xml格式的字符串(注意是字符串)解析成html表格格式的急!!!
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
SAXBuilder builder = new SAXBuilder();
Reader rd = new StringReader(xml格式的字符串);
Document doc = builder.build(rd);
Element root = doc.getRootElement();
可以用以上这种jdom的方式。
servlet 怎么接受前台传来的xml字符串
后台按照字符串接收,
然后再用DOM4j或者是JDom想办法转换成Document对象就可以得到了。
或者说 如果事先约定好xml的格式,直接自己解析xml的字符串就ok了
toncat读xmlservlet文件失败
tomcat配置问题,搜百度搜了整整一天,最后解决了,记录一下。
1、基础容易出错的地方:web.xml路径要放对,放到WEB_INF目录下。web.xml里面映射要写对。
2、File/Project Structure里,注意红框里要有web.
3、路径要到达lib
4、路径要有web
5、
6、,File/Settings中,红框的地方要打勾。
7、
***隐藏网址***
找错:servlet访问web.xml出现404错误;url地址栏输入项目名无法访问index.jsp文件。servlet找错确实不好找,希望能帮到大家。
java
web
web.xml配置404、500错误
860阅读·0评论·0点赞
2022年4月16日
关于filter配置web.xml后Tomcat运行错误问题
951阅读·2评论·4点赞
2021年9月4日
tomcat服务器统一配置错误页面
316阅读·0评论·0点赞
2022年10月19日
tomcat web.xml配置错误页面
182阅读·0评论·0点赞
2011年10月27日
web3.0——Tomcat启动报错以及web.xml文件的配置
655阅读·0评论·0点赞
2018年10月27日
***隐藏网址***
905阅读·0评论·1点赞
2020年12月7日
翡翠原石怎么赚?加微信免费送翡翠鉴定经验资料,逢切必涨不是梦!
恒木珠宝
广告
web.xml文件解析,以及tomcat启动常见错误总结一哈。
1377阅读·0评论·0点赞
2013年12月23日
配置web.xml文件后浏览器访问servlet报错404
5605阅读·2评论·5点赞
2019年9月28日
tomcat启动成功但是访问方面都是404
32.0W阅读·35评论·36点赞
2016年5月3日
org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml解决Tomcat启动报错
1686阅读·0评论·0点赞
2021年9月8日
web.xml访问不到后台servlet问题,或者 @webservlet() 使用不了
220阅读·0评论·0点赞
2022年4月14日
***隐藏网址***
772阅读·0评论·1点赞
2020年5月27日
解决访问 Servlet 的报错
922阅读·0评论·0点赞
2020年10月25日
2021-10-15tomcat 报错 之web.xml与servlet的URL映射冲突
1992阅读·1评论·6点赞
2021年10月15日
Tomcat6里面的项目升级Tomcat7之后web.xml报错
761阅读·0评论·1点赞
2019年5月27日
***隐藏网址***
3275阅读·0评论·0点赞
2020年3月14日
idea部署web项目到tomcat报错404解决(转载)
1231阅读·0评论·2点赞
2022年10月3日
tomcat之定义404页面,自定义tomcat默认访问页面
1.3W阅读·3评论·1点赞
2017年6月29日
TomCat报404错误是什么原因?该怎么解决?
1.5W阅读·4评论·11点赞
2020年10月23日
tomcat 启动没加载web.xml问题
169阅读·0评论·0点赞
2022年8月25日
去首页
看看更多热门内容

更多文章:
he agreed to help(用need to do sth.和agree to do sth. 造句)
2026年8月31日 01:00
instr函数的返回值(关于vb中InStr函数的一个小问题)
2026年1月26日 22:30
slcp是什么意思(matlab.*和matlab. s有什么区别)
2026年1月3日 12:00
db2数据库update后想恢复(你好,SQL修改错了,修改前没有备份,请问怎么还原到修改前的数据,你知道吗可以给联系方式我请教一下)
2026年9月17日 12:00
assert python用法(python:assert_raises() 怎么用啊,有哪些参数 请说得详细些,先谢谢了!)
2026年7月11日 08:30
this is it歌词好诡异(Turn The Lights On的歌词翻译)
2025年7月26日 02:30
tabletennis安卓游戏(table tennis touch多人游戏时提示game center断开链接怎么解决)
2025年8月8日 17:15
迷你qq头像(2021头像可爱呆萌男生,寻找一些头像小男孩的那种)
2026年2月14日 13:00












