给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。classSolution{public:voidmoveZeroes(vector&nums){intn=nums.size();intleft=0;intright=0;while(right
端侧开发详解 初赛收官盛宴 | 2025高通边缘智能创新应用大赛第九场公开课来袭!
阿加犀智能
人工智能智能硬件
各位开发者、技术爱好者,2025高通边缘智能创新应用大赛即将迎来初赛阶段的最后一堂重磅公开课!诚邀大家于7月3日(星期四)晚8点,准时收看由瑞莎的嵌入式开发工程师张子烽(Morgan)带来的专题分享,共同探索端侧智能应用开发的创新技术路径。聚焦前沿平台掌握端侧智能开发流程本次课程将聚焦基于瑞莎DragonQ6A开发板的端侧人工智能应用开发。该开发板搭载高通跃龙™QCS6490平台(由阿加犀提供开发
Excel VBA属性、方法、事件大全——Part13(Complete List of Excel VBA attribute/method and event)
预见未来to50
对象/属性/方法/事件(Object/Attribute/Method/Event)描述(Description)Save保存指定工作簿所做的更改本示例保存当前活动工作簿。ActiveWorkbook.Save本示例保存所有打开的工作簿,然后关闭MicrosoftExcel。ForEachwInApplication.Workbooksw.SaveNextwApplication.QuitSave
首次拿到无线USB转换器TOS-WLink使用介绍
TOS-WLink的开发到今持续了大半年、先不知羞耻的夸夸自己的毅力;这里主要介绍一些无线助手的使用,可能也能体现一点点我的设计思想;感谢对我帮助极大这些开源库的大佬们;感谢CSDN一些我记不住名字的作者写的文章、对USB标准的理解、C#的一些实例;无线USB助手参考:Win蓝牙GitHub-miuser00/BLEComm:BLECommbasedonnewAPIofWindows10OS.Th
【力扣 中等 C】912. 排序数组
黑听人
c语言leetcode数据结构算法开发语言
目录题目解法一:快速排序解法二:归并排序题目解法一:快速排序voidswap(int*a,int*b){inttmp=*a;*a=*b;*b=tmp;}voidpartition(int*nums,intleft,intright,int*leftMax,int*rightMin){intrandomNum=nums[left+rand()%(right-left+1)];intl=left,r=
系统的性能优化
王富贵QAQ
性能优化linux运维
核心原则监控先行:先分析瓶颈,再针对性优化逐步调整:避免一次性修改过多参数。稳定性优先:优化后需充分测试。性能监控工具top/htop:实时查看cpu占用、MEM占用、LOADAVERAGE系统负载vmstat:r:等待CPU的进程数>CPU表示过载si/so:Swap交换频率,频繁交换说明内存不足iostat查看磁盘I/O性能netstat/ss查看tcp连接数sar-u13查看CPU使用率,每
Kubernetes架构及安装——详细流程
WantEnergy
kubernetes容器云原生
目录一、基础环境准备(两台设备都要执行)第一步:修改主机名第二步:添加hosts第三步:清空防火墙和关闭selinux和swap第四步:fstab加注释符二、修改内核参数三、安装docker四、设置镜像站五、安装kubelet、kubectl、kubeadm修改kubelet运行时六、初始化集群(以下操作都在master节点操作)七、设置kubectl八、设置补齐九、配置网络插件十、工作节点nod
Python图形界面 Tkinter入门7 api数据处理
mango大侠
Pythonpythontkinter
天气api接口数据#https://docs.airnowapi.org/CurrentObservationsByZip/query#URL:https://www.airnowapi.org/aq/observation/zipCode/current/?format=application/json&zipCode=20002&distance=25&API_KEY=D06DAD8A-93E
web3实际应用领域
输出输入
web3
Web3的实际应用领域非常广泛,涵盖了金融、内容创作、游戏、供应链管理、医疗保健等多个行业。以下是Web3的主要应用场景:1.去中心化金融(DeFi)去中心化金融是Web3最成熟的应用领域之一,它通过区块链技术提供无需中介的金融服务,包括借贷、交易、保险等。例如:•去中心化交易所(DEX):如Uniswap,用户可以直接用加密货币进行兑换,交易记录公开透明,降低了欺诈风险。•借贷平台:如Maker
【SW二次开发】SolidWorks二次开发
ytg-Technology
SW二次开发.net
SolidWorks二次开发-获取特征及子特征名称+类型DimswAppAsSldWorks.SldWorksDimswModelAsSldWorks.ModelDoc2DimswFeatAsSldWorks.FeatureDimswSubFeatAsSldWorks.FeatureDimsFeatTypeAsStringDimswCosThreadAsSldWorks.CosmeticThrea
k8s简述和搭建集群
我爱云计算
kubernetes容器docker
目录一、介绍二、架构1.master(管理节点)1.1功能1.2节点核心组件2.node(计算节点)2.1功能2.2核心组件3.image(镜像仓库)3.1功能3.2仓库类型三、部署概述1.k8s官网2.部署环境要求:四、环境配置1.修改hosts配置2.配置SSH免密登录3.禁用firewall和swap,关闭selinux4.时间同步5.修改内核参数6.添加网桥过滤和地址转发功能7.tc命令8
Kubernetes 1.21.14 搭建
刺猬在奔跑
kubernetes
准备master机器允许iptables检查桥接流量执行lsmod|grepbr_netfilter检查br_netfilter模块是否被加载;要显式加载该模块,可执行sudomodprobebr_netfilter在sysctl配置中将net.bridge.bridge-nf-call-iptables设置为1:cat>/etc/sysctl.conf关闭swapvi/etc/fstab注释掉s
浙江大学公开课第三季:AI+BME,迈向智慧医疗健康——浙大的探索与实践(附PDF下载)
大模型应用
人工智能自然语言处理LLM知识图谱RAG大模型程序员
浙江大学:《AI+BME,迈向智慧医疗健康——浙大的探索与实践》(完整版.pdf下载方式见文末)该报告是关于浙江大学在生物医学工程(BME)与人工智能(AI)结合领域的探索与实践,重点介绍了浙大在智慧医疗健康领域的研究成果和未来发展方向。文章由浙江大学生物医学工程与仪器科学学院的林辉教授撰写。1.AI与BME的结合AI的发展历程:文章回顾了人工智能的发展历史,从1956年达特茅斯会议标志AI诞生,
【NXP MCX 技术手册】- MCX A 系列 Flash SWAP 介绍
WPG大大通
NXP产线前端运维linux大大通开发板
一、引言FLASHSWAP是NXPMCXA系列微控制器中的一项核心功能,目的在支持安全可靠的Image管理。通过在内部Flash空间中分配两个分区来存储两个Image映像(ImageA和ImageB),在升级过程中,新版本的Image可以写入未使用的区块,然后通过交换操作使新版本的Image生效,达到线上即时更新的效果。此功能主要提供以下优势:1.安全的Image更新:允许用户在运行系统的同时更新
ROS的学习链接整理 (基于古月居)
辣椒炒月饼
学习机器人自动驾驶
机器人控制与仿真:http://wiki.ros.org/roscontrol机器人即使定位与地图建模:http://wiki.ros.org/gmappinghttp://wiki.ros.org/hectorslam机械臂相关学习:http://moveit.ros.org/斯坦福大学公开课———机器人学:https://www.bilibili.com/video/av4506104/交通大
【appium】3.查看本地已安装的appium版本
1.appium服务端版本查看>appium--version2.5.42.使用Python编写Appium测试脚本,还可能需要知道AppiumPython客户端库的版本:>pipshowAppium-Python-ClientName:Appium-Python-ClientVersion:1.2.0Summary:PythonclientforAppium3.查看AppiumDesktop安装
2025年- H84-Lc192--75.颜色分类(技巧、三路指针排序)--Java版
豆包版:每天进步一点点
javaleetcodejava算法排序算法
1.题目描述2.思路3.代码实现classSolution{publicvoidsortColors(int[]nums){intlow=0;//下一个0应该放的位置intmid=0;//当前检查的位置inthigh=nums.length-1;//下一个2应该放的位置while(mid<=high){if(nums[mid]==0){//把0放到前面swap(nums,low,mid);low+
面试问答总结之并发编程
信计2102罗铠威
javaEE系列专栏面试java多线程并发编程
文章目录个人主页:信计2102罗铠威JavaEE系列专栏前言:多线程的优点、缺点并发编程的核心问题:不可见性、乱序性、非原子性不可见性乱序性非原子性JMM(java内存模型)volatile关键字:保证可见性、禁止指令重排序CAS机制(ConpareAndSwap比较并交换)CAS会产生ABA问题java中锁的分类乐观锁、悲观锁可重入锁读写锁ReentrantReadwriteLock分段锁自旋锁
Qt中opengl使用swapBuffers()函数报错解决办法
啊 哈
QTOPENGL
swapBuffers():qt文档中方的翻译:用屏幕外缓冲区交换屏幕内容。仅当窗口小部件的格式指定双缓冲模式时,此方法才有效。通常,不需要显式调用此函数,因为它是在每个小部件重新绘制后(即每次执行paintGL()之后)自动完成的。我是在线程中使用swapBuffers时候报下面这个错。报错:QOpenGLContext::swapBuffers()calledwithnon-exposedwi
函数glfwSwapBuffers有什么用?
小白日常笔记,如有错误欢迎批评指正~glfwSwapBuffers(GLFWwindow*window)SwapBuffers翻译过来是交换缓冲区的意思,既然buffer加了s,也就意味着不止一个buffer,所以这里涉及到了一个双缓冲的概念.关于双缓冲英文解释如下:DoubleBuffer:Whenanapplicationdrawsinasinglebufferimagemightdispla
android camera 废弃,Android相机android.hardware.Camera已弃用
成哲夫
androidcamera废弃
API文档根据Androiddevelopersguide的android.hardware.Camera,他们状态:Werecommendusingthenew07001APIfornewapplications.在关于android.hardware.camera2的信息页面(上面链接),它说:Theandroid.hardware.camera2packageprovidesaninterf
在Flask 请求线程中激活任务栏中的程序,并最大化,根据进程名称传递参数
CATTLECODE
flaskpython后端
fromflaskimportFlaskimportpsutilimportpywinautofrompywinauto.findwindowsimportfind_windowapp=Flask(__name__)defget_window_by_process(process_name):forprocinpsutil.process_iter(['pid','name']):ifproc.i
【LeetCode】912. 排序数组(中等)
晴雪月乔
#LeetCode数组leetcode排序算法
912.排序数组给你一个整数数组nums,请你将该数组升序排列。示例1:输入:nums=[5,2,3,1]输出:[1,2,3,5]示例2:输入:nums=[5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1arr[j+1]){swap(arr,j,j+1);}}}}//i和j是一个位置的话,会出错publicvoidswap(int[]arr,inti,intj){arr[i]=ar
Python FGO 脚本相关 (numpy + cv2)
tswddd
python编程
numpy相关zip(a,b):将俩长度相等的一维数组,挨个合并成tuple,返回类似tuple的一维数组(zip类型变量,只能for遍历)[aifcondition(x)elsebforxinarr]:对一维数组的元素挨个判断,返回结果为a或b的一维数组tuple元素前加星号,表示拆开的意思,用于将tuple拆成多个参数带入函数中(如print,swap)若a为数组,则a[x:y:z]有点像[a
2025年大模型学习新攻略!掌握未来AI的关键技能
AI大模型-大飞
人工智能产品经理程序员AgentAI大模型大模型教程
1.公开课(视频):李宏毅机器学习斯坦福CS336:从零开始构建语言模型卡内基梅隆大学【多模态机器学习】RAGFromScratchHuggingFaceNLP课程2.机器学习和编程基础:pytorch官方中文教程[中英字幕]吴恩达机器学习李宏毅机器学习3.Attention机制:论文:《AttentionIsAllYouNeed》Transformer论文逐段精读【论文精读】-跟李沐学AIzhi
FPGA基础 -- Verilog 数据流建模之幅值比较器
sz66cm
fpga开发
一、什么是幅值比较器(MagnitudeComparator)?幅值比较器用于比较两个数的大小关系,输出三种可能的状态:A>BA==BABeq:A==Blt:A、B);assigneq=(A==B);assignlt=(AB);assigneq=(A==B);assignlt=(Athreshold);流水线排序比较器assignswap=(a>b);assignmax=swap?a:b;assi
Linux命令之-设备查看
ldwtxwh
linuxlinux运维服务器
一、块设备查看【lsblk】[root@localhost~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:0040G0disk├─sda18:101G0part/boot└─sda28:2039G0part├─centos-root253:0035.1G0lvm/└─centos-swap253:103.9G0lvm[SWAP]sr011:01918M0
【Bug】Could not locate zlibwapi.dll. Please make sure it is in your library path!
报错信息:使用tensort加速,cmake编译失败,提示缺少zlibwapi.dll文件Couldnotlocatezlibwapi.dll.Pleasemakesureitisinyourlibrarypath!解决方案:从以下链接下载zlibwapi.dllhttp://www.winimage.com/zLibDll/我是在windows10系统下进行的TensorRT加速下载得到的压缩包
Java并发编程中的锁分类
是三好
jucjava开发语言多线程juc
1.按锁的设计思想划分1.1乐观锁(OptimisticLocking)原理:假设并发冲突概率低,先操作数据,提交时检测是否冲突(如版本号、时间戳或CAS)。实现:CAS(Compare-And-Swap)、AtomicInteger等原子类。场景:读多写少,冲突概率低(如计数器、状态标记)。缺点:频繁冲突时性能下降。1.2悲观锁(PessimisticLocking)原理:假设并发冲突概率高,操
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