- 高级编程--XML+socket练习题
masa010
java开发语言
1.北京华北2114.8万人上海华东2,500万人广州华南1292.68万人成都华西1417万人(1)使用dom4j将信息存入xml中(2)读取信息,并打印控制台(3)添加一个city节点与子节点(4)使用socketTCP协议编写服务端与客户端,客户端输入城市ID,服务器响应相应城市信息(5)使用socketTCP协议编写服务端与客户端,客户端要求用户输入city对象,服务端接收并使用dom4j
- JavaScript 中 xml 的解析(dom4j 解析器),web前端开发规范手册
2401_84094868
程序员前端javascriptxml
创建元素:Elementschool=DocumentHelper.createElement(“school”);创建文本:school.addText(“光明小学”);指定位置添加:list.add(1,school);回写xml:和在末尾添加一样7、获取属性值attributeValue():获取属性值publicstaticvoidmain(String[]args)throwsDocum
- xml与java对象转换
iteye_10822
xmlxml
xml的解析技术包括了很多,其中dom4j,jdom,SAX等技术估计已经在大部分的人心中成为了耳熟能详的东西,但是如果是关于xml与对象直接的转换技术,那么下面几种技术是不错的选择。A.commons-digesterDigester本来仅仅是JakartaStruts中的一个工具,用于处理struts-config.xml配置文件。显然,将XML文件转换成相应的Java对象是一项很通用的功能,
- JAVA XML转JSON工具类
张志飞
xmljson
packagecom.cm.util.xmlutl;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importorg.apache.log4j.Logger;importorg.dom4j.*;importjava.io.File;importjava.io.FileInputStream;im
- Java Xml 工具类
Jokes-T
javaxml
importorg.apache.commons.lang3.StringUtils;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.DocumentHelper;importorg.dom4j.Element;importjavax.xml.bind.JAXBContext;importjava
- 基于Spring的三方平台接口对接方法(OkHttp/RestTemplate/视图)
星月梦瑾
javajavaspringokhttprestful
本文介绍了三方平台接口对接方法,一是基于OkHttp请求工具及dom4j报文封装解析xml的方法,二是采用RestTemplate方法封装请求,三是采用建立视图和从库数据源的方式查询。一、OkHttp请求工具及dom4j报文封装解析1、依赖引入 com.squareup.okhttp3 okhttp 4.9.3 compile org.dom4j dom4j
- 将Xml转为Map集合工具类
Fairy要carry
工具xmljavapython
packagecom.wyh.wx.utils;importorg.dom4j.Document;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;importjava.io.ByteArrayInputStream;importjava.io.InputStream;importjava.nio.charset.StandardCharse
- Javaweb基础-tomcat,servlet
tmy99
javaservlet开发语言
一.配置文件基础:properties配置文件:由键值对组成键和值之间的符号是等号每一行都必须顶格写,前面不能有空格之类的其他符号xml配置文件:(xml语法=HTML语法+HTML约束)xml约束-DTD/SchemaDOM4J进行XML解析:(jar包dom4j.jar)1.创建SAXReader对象SAXReadersaxReader=newSAXReader();2.解析XML获取Docu
- Dom4j的使用
A_一只小菜鸟
dom4j是一个Java的XMLAPI,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的javaXMLAPI,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。一、dom4j介绍使用方式:在pom.xml中导入dom4j对应的jardom4jdom4j1.6.1优点:dom4j
- XML 教程【一文彻底搞懂dom4j解析】
~ 小团子
JavaWebxml学习java
文章目录1.xml入门1.1xml新建1.1文档声明1.2元素1.3属性1.4CDATA节1.5转义字符1.6格式正确的XMLDOM4JDOM4J介绍Dom4j应用实例2.2遍历xml指定元素2.3读取指定xml元素2.4获取属性2.5dom4j增删改2.6作业1.xml入门1.1xml新建1.1文档声明XML声明放在XML文档的第一行XML声明由以下几个部分组成:version=“1.0”文档符
- xml简单操作
industry2018
xml
1.获得根目录标签下直接子标签内容:packagecom.xxx;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.Iterator;importorg.dom4j.Document;importorg.dom4j.DocumentException;i
- BUUCTF-Real-[PHP]XXE
真的学不了一点。。。
漏洞复现与研究网络安全
目录1、原理2、XXE漏洞产生的原因3、开始复现paylaod复现4、flag1、原理XML数据在传输过程中,攻击者强制XML解析器去访问攻击者指定的资源内容(本地/远程),外部实体声明关键字'SYSTEM'会令XML解析器读取数据,并允许它在XML文档中被替换,构造恶意的值,去执行!XML解析方式:DOM,SAX,JDOM,DOM4J,StAX……都可能会出现外部实体注入漏洞2、XXE漏洞产生的
- xml文件解析
Slow菜鸟
xmlpython前端
xml文件解析XML解析——Java中XML的四种解析方式一、DOM解析二、SAX解析三、JDOM解析四、DOM4J解析Final:比较总结转载:https://www.cnblogs.com/mountainstudy/p/17954434XML解析——Java中XML的四种解析方式XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在
- XMLdom入门案例
卓昂芭比
importjava.io.File;importjava.util.List;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;publicclassXml_Demo1{publicstaticvoidmain(String
- Java实现关注微信公众号和自动回复消息
weixin_43652507
公众号微信java
依赖:dom4jdom4j1.6.1com.thoughtworks.xstreamxstream1.4.11.1关注公众号和自动回复,共两个接口,一个get,一个post,两个接口的url一样。WeChatControllerimportcom.ruoyi.ruoyiincome.wx.wechat.service.IWeChatService;importlombok.extern.slf4j
- Java基础进阶02-xml
辉图
笔记java笔记
目录一、XML(可拓展标记语言)1.学习网站:2.作用3.XML标签4.XML语法5.解析XML(1)常见解析思想DOM6.常见的解析工具7.DOM4j的使用8.文档约束(1)概述(2)分类(3)DTD约束(4)引入DTD约束(5)DTD语法①定义元素②定义属性(6)schema约束①定义元素②定义属性(7)引入schema约束(8)schema和DTD约束的区别一、XML(可拓展标记语言)1.学
- Spring Boot使用dom4j处理xml数据
落华X
springbootjavaspringbootxmlpython
一、引入org.dom4jdom4j2.1.4二、使用Documentdocument=DocumentHelper.createDocument();Elementdatainfo=DocumentHelper.createElement("ela");document.setRootElement(datainfo);Elementelb=datainfo.addElement("elb");
- 基于java处理ofd格式文件
小苗爸爸
技术xmldomjavazipstream
一、ofd格式介绍国家发布过一份关于ofd编码格式的资料,本来我想传上去的发现资源重复了,你们可以找找看,没有的话留个邮箱,我看到会发给你们的ofd本质上其实是一个压缩文件,咱们把他当做一个压缩包来处理就好了,思路是先解压,对解压后的文件进行解析处理,解压后是xml文件,java有很多处理xml的类,这里我推荐dom4j,原因是相对来说功能全、速度快,处理完后再进行压缩,保存为ofd格式即可ofd
- java中ofd文件转pdf_java ofd文件解析
weixin_39609650
java中ofd文件转pdf
packageofd;importjava.io.File;importjava.math.BigDecimal;importjava.util.List;importorg.dom4j.Attribute;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Element;importorg.dom
- Java:特殊文件详细解释(包含Dom4j下载和使用)
DaveVV
javajavaeclipsespringmavenintellij-ideatomcatmybatis
特殊文件:属性文件、XML文件为什么要用这些特殊文件:方便存储多个用户的用户名密码等等。特殊文件主要学什么?1.了解特点作用2.学习使用程序读取它们里面的数据3.学习使用程序把数据存储到这些文件里特殊文件:1.属性文件(.properties):如果一个txt文件里存放的都是键值对数据,每个键值对占一行,也算是属性文件。Properties:1.是一个Map集合(键值对集合),但是我们一般不会当集
- Java工具类:将xml转为Json
天黑请闭眼
Java工具类JSONjavaxmljson
目录一、场景二、工具类三、测试类四、测试结果一、场景在对接第三方接口时,由于接口返回的并不是常见的Json,而是XML,所以需要将XML转为Json,方便后续处理二、工具类packagecom.xxx.util;importorg.apache.commons.lang.StringUtils;importorg.dom4j.Document;importorg.dom4j.Element;imp
- Java调用WebService接口,SOAP协议HTTP请求返回XML对象
cxzm_1024
WebServiceWebService
Java调用Webservice接口SOAP协议HTTP请求,解析返回的XML字符串:1.使用Java的HTTP库发送SOAP请求,并接收返回的响应。可以使用Java的HttpURLConnection、ApacheHttpClient等库。2.将返回的响应转换为字符串。3.解析XML字符串,可以使用Java的DOM解析器或者其他第三方库,如JDOM、DOM4J等。4.解析XML数据,提取需要的信
- Dom4j 根据指定的节点属性获取节点内容
莫扎特不唱摇篮曲
yoursqlhere1yoursqlhere2java代码片段如下:publicstaticStringget(Stringattr){Documentdoc=getXmlDocument();Elementroot=doc.getRootElement();Nodenode=root.selectSingleNode("sql[@name='"+attr+"']");//[@name='Rep
- XML格式目录解析——DOM,SAX,Dom4j方式
程序猿老王
开发工具androidxmljavadom
一、概况项目中要解析一个XML格式的目录,经过搜索了解到,解析方式主要有DOM,Pull,SAX三种方式,各自特点如下:SAXsax是一个用于处理xml事件驱动的“推”模型;优点:解析速度快,占用内存少,它需要哪些数据再加载和解析哪些内容。缺点:它不会记录标签的关系,而是需要应用程序自己处理,这样就会增加程序的负担。DOMdom是一种文档对象模型;优点:dom可以以一种独立于平台和语言的方式访问和
- XML数据如何进行解析呢,方式有哪些?
一纸油伞
问题:XML数据如何进行解析呢,方式有哪些?上回我们说到JSON解析的四种方式,那么这次我们来看看XML的四种解析方式。解析的四种方式DOM解析SAX解析JDOM解析DOM4J解析案例实操DOM解析DOM(DocumentObjectModel,文档对象模型),在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称为DOM树),应用程序正是通过对这个对象模型的操作,
- java解析json复杂数据的第三种思路
爱码少年
雕虫小技Javajavajson
文章目录一、概述二、数据预览1.接口json数据2.json转xml数据三、代码实现1.pom.xml2.核心代码3.运行结果四、源码传送一、概述接上篇java解析json复杂数据的两种思路我们已经通过解析返回json字符串得到数据,现在改变思路,按照如下流程获取数据:接口API获取JSONJSON转XMLdom4j使用XPath解析xml二、数据预览1.接口json数据https://blog.
- 第四章 XML
幸运小新
JavaWebxmljava前端
第四章XML1.什么是XML以及它的作用2.第一个XML示例文件3.XML语法介绍4.xml解析技术介绍5.使用dom4j读取xml文件得到document对象6.使用dom4j解析xml1.什么是XML以及它的作用2.第一个XML示例文件3.XML语法介绍第三条,是可以的下面有两个根元素,就会报错4.xml解析技术介绍5.使用dom4j读取xml文件得到document对象使用dom4j解析以下
- javaweb
wang_yun_xi
Day01.61.myeclipse的介绍...62.xml入门...73.xml乱码【★★★】...94.xml约束...95.xml约束--dtd【☆】...96.名字解释...127.xml约束--schema.128.解析技术...149.JAXP.14Day02.161.dom4j(domforjava)(day02)172.myeclipse介绍(day02)173.debug【★★★
- XML解析神器:Apache Commons Digester
宋小黑
ApacheCommons工具实战手册xmlapachejava
第1章:引言大家好,我是小黑。今天咱们聊聊一个在现代编程中经常遇到的话题:XML解析。你可能知道,XML(可扩展标记语言)因其灵活性和可读性,在配置文件、数据交换等方面广泛使用。但是,XML解析有时候会让人头疼,尤其是当文件结构复杂或者数据量巨大时。这时候,一个好用的工具就显得尤为重要了。在Java世界里,有很多工具可以用来解析XML,比如JAXP,JAXB,DOM4J等。但今天咱们要讨论的是Ap
- Java解析xml文档,判断对象是一个json是jsonArray还是jsonObject
家家小迷弟
workspringbootjavaxmljson
有一篇xml文档,如下:现在需要解析出其中的内容,首先需要明确的是,文档是由一个个的标签嵌套形成的,例如整个xml文件是由许多DescriptorRecord标签构成,xxxxxxxxxx现在需要解析出每个DescriptorRecord里面嵌套的xxxx各层级标签里面的内容,导入的依赖有:org.dom4jdom4j2.1.1com.alibabafastjson1.2.73解析代码如下:Fil
- html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache