- 基于oracle linux的 DBI/DBD 标准化安装文档(五)
oracle
一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak
- C#的简单工厂模式、工厂方法模式、抽象工厂模式
观无
javac#开发语言
工厂模式是一种创建型设计模式,主要将对象的创建和使用分离,使得系统更加灵活和可维护。常见的工厂模式有简单工厂模式、工厂方法模式和抽象工厂模式,以下是C#实现的三个案例:简单工厂模式简单工厂模式通过一个工厂类来创建对象,而不需要把客户端代码与具体类的实现细节绑定在一起。usingSystem;//1.定义产品接口publicinterfaceIProduct{voidUse();}//2.创建具体产
- Spring Boot--@PathVariable、@RequestParam、@RequestBody
m0_74823408
面试学习路线阿里巴巴springboot后端java
目录声明!!什么是RESTful?RESTful的基本原则无状态性(Stateless)统一接口(UniformInterface)分层系统(LayeredSystem)缓存(Cacheable)按需代码(CodeonDemand,可选)HTTP协议里面,四个表示操作方式的动词:@PathVariable@PathVariable映射URL绑定的占位符@PathVariable的参数基本用法多个路
- 什么是SDI信号?SDI信号的分类、特点及应用
度纬仪器
信息与通信
引言在视频传输领域,SDI(SerialDigitalInterface,串行数字接口)信号是一种广泛应用的数字视频传输标准。它以其高速、高保真度和低延迟的特点,在广播、电影制作、视频监控等多个领域发挥着重要作用。本文将详细介绍SDI信号是什么、分类、特点优势以及常见的应用案例。SDI信号是什么?串行数字接口(serialdigitalinterface,简称SDI)是一种用于传输高质量、未压缩的
- 基于oracle linux的 DBI/DBD 标准化安装文档(二)
文档
一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak
- 基于oracle linux的 DBI/DBD 标准化安装文档(三)
oracle
一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak
- 基于Java的家居设备控制系统设计与实现
不知江月待何人..
javajava开发语言
目录项目目标设计思路系统架构核心实现运行演示存在问题与优化总结项目目标实现四种家居设备(灯/空调/电视/洗衣机)的智能控制系统,要求:统一管理设备开关状态支持状态反转操作提供简洁的控制接口具备扩展性支持新设备接入设计思路面向对象设计原则抽象原则:通过接口定义通用行为继承机制:建立家电父类统一管理基础属性多态应用:使用父类数组管理子类对象单例模式:控制系统唯一入口类关系图«interface»Swi
- C#接口(Interface)必须掌握的核心概念
ByteGeek
C#基础从入门到精通c#开发语言.netWinformVS
文章目录前言接口的定义接口的实现接口的继承接口的用途注意事项前言在C#编程语言中,接口(Interface)是一个至关重要的概念,它属于引用类型,主要用于指定一组方法,但不提供这些方法的实际实现。接口充当了一种契约或规范,类或其他类型可以通过实现这些接口来遵循这一契约。以下是对C#接口的详细阐述:接口的定义接口通过interface关键字进行定义,并且可以包含方法、属性、事件和索引器。然而,与
- Java与Javaweb知识点总结
一朵忧伤的蔷薇
java开发语言
Java基础知识基本语法:数据类型:基本数据类型(int,char,boolean,etc.)和引用数据类型(String,Arrays,etc.)。控制结构:条件语句(if,switch)、循环语句(for,while,do-while)。面向对象编程:类与对象:类的定义与实例化。继承与多态:使用extends和interface实现继承、多态的应用。封装:访问控制修饰符(public,priv
- 华为路由器配置DHCP服务以及配置端口网关IP
百里清风20190301
华为tcp/ip网络协议
实验拓扑结构:前提:HTTP服务器已启动http服务和配置好ip地址,client1与client2已配置不同网段的IP,路由器两端接口已预设IP实验需求:除平板服务器外,电脑自动获取IP配置子网掩码和DNS域名解析服务并且能实现全网通信步骤一:为两个不同的广播域配置网关IPsystem-view#进入系统视图[Huawei]interfaceg0/0/0#进入系统视图[Huawei-Gigabi
- 聊聊langchain4j的AiServices
llm
序本文主要研究一下langchain4j的AiServices示例原生版本publicinterfaceAssistant{Stringchat(StringuserMessage);}构建Assistantassistant=AiServices.create(Assistant.class,chatLanguageModel);Stringresp=assistant.chat(userMes
- 聊聊langchain4j的ChatMemory
langchain4j
序本文主要研究一下langchain4j的ChatMemoryChatMemorylangchain4j-core/src/main/java/dev/langchain4j/memory/ChatMemory.javapublicinterfaceChatMemory{/***TheIDofthe{@linkChatMemory}.*@returnTheIDofthe{@linkChatMemo
- 聊聊langchain4j的ChatMemory
langchain4j
序本文主要研究一下langchain4j的ChatMemoryChatMemorylangchain4j-core/src/main/java/dev/langchain4j/memory/ChatMemory.javapublicinterfaceChatMemory{/***TheIDofthe{@linkChatMemory}.*@returnTheIDofthe{@linkChatMemo
- 匿名内部类
qq_52983535
JAVAjava开发语言
匿名内部类接口的匿名内部类继承的匿名内部类匿名内部类在日常编写代码的过程中,总是会遇到匿名内部类的使用,但是对这一块一直不是很熟,所以这里总结记录一下。只讲实用。接口的匿名内部类正常如果要使用一个接口,如下代码:publicinterfaceKp{publicabstractvoidshow();}publicclassKpImplimplementsKp{@Overridepublicvoids
- 【eNSP实战】基本ACL实现网络安全
敲键盘的Q
网络
拓扑图要求:PC3不允许访问其他PC和Server1PC2允许访问Server1服务器,不允许其他PC访问各设备IP配置如图所示,这里不做展示AR1接口vlan配置vlanbatch102030#interfaceVlanif10ipaddress192.168.1.254255.255.255.0#interfaceVlanif20ipaddress192.168.2.254255.255.25
- 【eNSP实战】配置NAPT(含动态NAT)
敲键盘的Q
网络
拓扑图要求:10.0.1.10和10.0.1.11这两个地址给内网计算机做NAPT使用设置地址如图所示AR1接口配置interfaceGigabitEthernet0/0/0ipaddress10.0.1.1255.255.255.0#interfaceGigabitEthernet0/0/1ipaddress192.168.0.1255.255.255.0#iproute-static0.0.0
- 【eNSP实战】使用ACL实现路由器安全
敲键盘的Q
网络
拓图要求:允许10.0.0.0网段telent登录AR1,不允许其他主机telnet登录路由器设置接口如图所示AR1接口配置interfaceGigabitEthernet0/0/0ipaddress30.0.0.1255.255.255.0#iproute-static0.0.0.00.0.0.030.0.0.2AR2接口配置interfaceGigabitEthernet0/0/0ipaddr
- CAPL的程序结构
正当少年
CAPL开发语言
CAPL(CommunicationAccessProgrammingLanguage)是Vector公司开发的一种用于汽车网络仿真、测试和开发的脚本语言,主要用于CANoe、CANalyzer等工具中。CAPL程序的结构相对简单,通常由事件驱动的方式组织。以下是CAPL程序的基本结构:1.变量声明CAPL程序通常以变量声明开始。变量可以是全局变量或局部变量。全局变量在整个程序中可见,局部变量只在
- spring BeanFactory解析
yulin959
spring
BeanFactory是spring容器的根容器,定义和约定了获取对象.定义了spring管理的对象的生命周期;生命周期如下:Beanfactoryimplementationsshouldsupportthestandardbeanlifecycleinterfacesasfaraspossible.Thefullsetofinitializationmethodsandtheirstandar
- MybatisPlus查询结果返回值为null
雾林小妖
Java开发常见BUG解决方案javaspringmybatisspringboot
1、问题描述返回值为null,程序不报错,但是条数好像是正确的。我出现问题的代码如下:1、自定义类StudentMapper继承了BaseMapper接口publicinterfaceStudentMapperextendsBaseMapper{}2、使用StudentMapper中的selectList方法查询数据的时候,打印结果的时候返回值都会null,但是条数没有问题,也就是有几条数据就返回
- 手动部署?NONONO,动态上传热部署才是王道!!
架构文摘JGWZ
接口学习后端spring
近期开发系统过程中遇到的一个需求,系统给定一个接口,用户可以自定义开发该接口的实现,并将实现打成jar包,上传到系统中。系统完成热部署,并切换该接口的实现。定义简单的接口这里以一个简单的计算器功能为例,接口定义比较简单,直接上代码。public interface Calculator { int calculate(int a, int b); int add(int a, int
- react和vue 基础使用对比
圣京都
reactreact.jsjavascriptvue.js
1.实现功能(ts)0.基础属性使用1.组件直接的通信2.useState动态修改值3.循环遍历功能4.实现类型vue的watch,filter,computed属性功能5.实现类似vue2的生命周期5.类型vuev-if功能的实现2.文件结构图3.具体代码interface.tsimport"./index.less";import{message}from"antd";import{useSt
- .net 插件式开发——实现web框架中大数据算法嵌入(BP算法逼近)
weixin_34219944
json人工智能
关于算法的引入:插件式架构设计,可移植性强,利于算法的升级。【插件式开发相关资料】https://www.cnblogs.com/lenic/p/4129096.html以BP算法为例:1、首先定义一个接口规范////////插件的统一入口///publicinterfaceIPluginPerfrom{//////统一算法插件入口//////输出参数的个数///输出参数///输入参数///str
- Linux驱动学习--V4L2框架
文艺小少年
linux运维服务器V4L2
一、引言V4L2是Videoforlinux2的简称,为linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。V4L2在设计时,是要支持很多广泛的设备的,它们之中只有一部分在本质上是真正的视频设备。主要有以下几种几种接口视频采集接口(videocaptureinterface):这种应用的设备可以是高频头或者摄
- cmd命令
sanzk
cmd
常用命令查看电脑名称:hostname查看网卡信息:ipconfig快速打开网络设置界面:control.exenetconnections或rundll32.exeshell32.dll,Control_RunDLLncpa.cpld打开防火墙设置:wf.msc指定网卡设置IP地址:netshinterfaceipv4setaddressname="WLAN"static6.6.6.22255.
- Python教程:一文了解如何让Python代码变成命令行工具
旦莫
Python进阶python开发语言
目录1.什么是argparse?2.基本用法1.创建ArgumentParser对象2.添加参数3.解析参数4.使用解析后的参数5.一个简单的用户信息打印工具5.1示例代码5.2运行示例3.高级用法1.子命令2.互斥参数3.自定义类型和动作4.嵌套解析器4.复杂示例:数据库管理工具CLI,全称为Command-LineInterface,即命令行界面。它是一种与计算机程序进行交互的方式,用户通过输
- 基于oracle linux的 DBI/DBD 标准化安装文档
linux
一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak
- HarmonyOS NEXT 实战系列-综合案例新闻页
harmonyos-next
预览图片编辑接口文档编辑实现步骤:准备ForEach遍历数据的页面使用http获取数据渲染落地代码:准备ForEach遍历数据的页面interfaceNews{id:numbertitle:stringsource:stringcmtcount:numberimg:stringtime:string}@Entry@ComponentstructIndex{@StatenewsList:News[]
- 2Android中的AIDL是什么以及如何使用它
Java资深爱好者
androidpythongit
一、Android中的AIDL概述AIDL(AndroidInterfaceDefinitionLanguage)是Android系统中用于定义和实现跨进程通信(IPC)接口的语言。它允许一个进程向另一个进程发送请求并获取响应,是Android中实现进程间通信的一种重要机制。AIDL文件定义了客户端和服务端之间的通信接口,这些接口在构建应用时会被AndroidSDK工具自动生成对应的Java接口文
- 配置虚链路
23zhgjx-hyh
网络
system-view[Huawei]undoinfo-centerenable[Huawei]sysnameAR1[AR1]interfaceg0/0/0[AR1-GigabitEthernet0/0/0]ipaddress12.1.1.124[AR1-GigabitEthernet0/0/0]quit[AR1]interfaceLoopBack0[AR1-LoopBack0]ipaddress
- 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