- MySQL新建用户与授权
守优
方法一:mysql>insertintomysql.user(Host,User,Password)values("localhost","zhangs",password("123456"));mysql>flushprivileges;解释:这样就创建了一个用户名为zhangs,密码为123456的数据库用户;此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录
- 达梦数据库-dm8的docker部署及其导入导出
睡不醒的双眼皮
数据库linux运维
#部署单节点dockerrun-d-p5236:5236--restart=always--name=dm8--privileged=true-eLD_LIBRARY_PATH=/opt/dmdbms/bin-ePAGE_SIZE=16-eEXTENT_SIZE=32-eLOG_SIZE=1024-eUNICODE_FLAG=1-eINSTANCE_NAME=dm8-v/dm8/data:/opt
- docker容器连接Android设备,通过ADB连接到Docker容器中的USB Android设备
黄文瀚
我创建了一个包含AndroidSDK的Docker镜像,并试图在运行此图像的容器中公开我的Android手机.所以我使用了–privileged标志并安装了USB设备,如下所示:$dockerrun--privileged-v/dev/bus/usb:/dev/bus/usb-d-Pmy-android:0.0.1但是,当我运行ADB设备时,它没有显示USB设备:ubuntu@d56b666be4
- 网络设备功能对照表
两圆相切
网络规划设计师web安全网络安全
一、网络安全设备功能对照表设备类型代表设备核心作用形象比喻典型应用场景防火墙PaloAltoPA-7000•网络边界访问控制(ACL)•深度包检测(DPI)•威胁情报联动智能门禁系统刷卡识人脸,危险分子禁入互联网接入边界网闸网神PowerV•物理隔离网络通信•文件摆渡传输•协议剥离与重构隔离传菜梯饭菜可送人,火苗不过墙政府内外网隔离堡垒机齐治Privilege•运维操作审计•指令级行为记录•特权账
- How to SSH into your Ubuntu machine from macOS as superuser
captainOO7
Networkingsshubuntumacos
ToSSHintoyourUbuntumachinefrommacOSassuperuser,you’llfirstconnectasaregularuser,thenelevateprivilegesonceloggedin.Here'showtodoitstepbystep:Step1:EnableSSHonUbuntuMakesuretheSSHserverisinstalledandrun
- 2025-04-22| Docker: --privileged参数详解
在Docker中,--privileged是一个运行容器时的标志,它赋予容器特权模式,大幅提升容器对宿主机资源的访问权限。以下是--privileged的作用和相关细节:作用完全访问宿主机的设备:容器可以访问宿主机的所有设备(如/dev下的设备文件,包括GPU、USB设备等)。例如,容器可以直接操作宿主机的磁盘、分区或硬件设备。绕过权限限制:容器内的进程以接近宿主机root用户的权限运行,忽略许多
- HTB academy -- Linux Privilege Escalation --Service-based Privilege Escalation
网络安全小吗喽
linux服务器网络安全测试工具
VulnerableServices#!/bin/bash#screenroot.sh#setuidscreenv4.5.0localrootexploit#abusesld.so.preloadoverwritingtogetroot.#bug:https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html#HACKTH
- 网络安全核心技术解析:权限提升(Privilege Escalation)攻防全景
引言在网络安全攻防对抗中,权限提升(PrivilegeEscalation)是攻击链条中关键的「破局点」。攻击者通过突破系统权限壁垒,往往能以有限权限为跳板,最终掌控整个系统控制权。本文将从攻击原理、技术路径、实战案例到防御体系,全方位解析这一网络空间的「钥匙窃取」艺术。一、权限提升的本质与分类1.1核心定义权限提升指攻击者通过技术手段,将当前运行进程或用户的权限等级突破系统预设的访问控制机制,获
- MySQL 8.0 权限审计实战:揪出那些“权力过大”的用户
运维开发王义杰
系统运维mysqlmysqlandroid数据库
在日常的运维和开发工作中,数据库的安全性是我们绝对不能忽视的一环。随着攻击手段的日益多样化,仅仅设置一个复杂的密码是远远不够的。我们需要定期对数据库的权限进行审计和加固,遵循“最小权限原则”(PrincipleofLeastPrivilege),确保每个用户只拥有其完成工作所必需的最小权限。在MySQL8.0中,权限管理变得更加精细。今天,我将带大家通过几个简单的SQL查询,快速锁定两类高风险用户
- mysql5.7 windows版本 忘记密码
目录1.编辑配置文件2.重启服务3.无密码登录4.修改密码1.编辑配置文件找到你的my.cnf/my.ini文件:[mysqld]skip-grant-tables#添加这行如果忘记配置文件,打开服务,参考下图,一般情况下可以找到mysql部署目录。2.重启服务3.无密码登录mysql-uroot4.修改密码先刷新FLUSHPRIVILEGES;执行修改密码ALTERUSER'root'@'loc
- 【Docker】配置 docker 容器内独立时间
光明磊磊
ProblemDockerdocker容器运维
背景在工作中常用docker作为测试环境,docker内部的时间是依赖宿主机的如果有修改时间的测试需求是需要提供给docker权限(–privileged=true),但这样的修改时间方法是会将宿主机的时间一并修改的,带来很大的风险解决方法使用libfaketime,它的原理是当进程调用系统调用获取结果时,它截取该调用并返回一个FAKETIME实现步骤下载libfaketime安装包a.从gith
- mysql 开启远程登录 ubuntu_ubuntu mysql新增用户并开启远程连接
weixin_39709367
mysql开启远程登录ubuntu
1、首先用root用户登录mysqlmysql-uroot-p输入密码后登录成功2、新建用户usemysql;selecthost,userfromuser;(查看现有用户)CREATEUSER'king'@'localhost'IDENTIFIEDBY'';(新建用户);selecthost,userfromuser;(再次查看用户)第一次第二次3、赋权限GRANTALLPRIVILEGESON
- docker安装gitlab并配置ssl证书
段帅龙呀
dockerdockergitlab容器
本篇安装环境Docker版本:Dockerversion28.3.0域名:test.disallow.cn自签证书:/etc/gitlab/ssl(已经存放在该目录)一、拉取镜像dockerrun-itd\--privileged=true\--hostnamegitlab.test.disallow.cn\--publish443:443--publish80:80--publish2222:2
- 95.mysql5.7/MySQL8.0root密码忘记重置
戒掉贪嗔痴
数据库运维-MySQLmysql
1.mysql5.7密码重置方法mysql5.7--加参数vimy.cnf[mysqld]skip-grant-tables--重启systemctlrestartmysqld--修改密码USEmysql;FLUSHPRIVILEGES;UPDATEuserSETauthentication_string=PASSWORD('S3#1234')WHEREUser='root';EXIT;--注释v
- mysql忘记密码,workbench还以登录,mysql重置密码
asdfwxy
mysql数据库
SELECTUser,Host,authentication_stringFROMmysql.userWHEREUser=‘root’;ALTERUSER‘root’@‘localhost’IDENTIFIEDBY‘root’;FLUSHPRIVILEGES;
- 连接mysql提示 ‘xxx.xxx.com‘ is not allowed to connect to this MySQL serverConnection closed by
asdfwxy
mysql数据库
原因是mysql拒绝了连接:需要在mysql中对xxx.xxx.com主机名的访问进行授权查看下有没有该主机名/IPSELECTUser,HostFROMmysql.user;没有的话,执行授权,xxx.xxx.com可以替换成IP地址。CREATEUSER'root'@'xxx.xxx.com'IDENTIFIEDBY'密码';GRANTALLPRIVILEGESON*.*TO'root'@'x
- Windows 远程连接记录获取
简介远程连接时,会将远程服务器的用户名和密码保存在本地的,所有可以通过解析相关文件,解密出相关凭证本地获取使用以下命令就可以查看本地保存的凭证,每个文件都是对应的一个远程连接的密码dir/a%userprofile%\AppData\Local\Microsoft\Credentials\mimikatz使用以下命令privilege::debugdpapi::cred/in:C:\Users\A
- GoldenGate系列之集成模式
weixin_34272308
数据库
一、集成模式进程配置1、用户授权:execdbms_goldengate_auth.grant_admin_privilege('goldengate');2、参数调整:altersystemsetstreams_pool_size=12gscope=spfile;3、执行注册:dbloginuseridgoldengatepasswordxxxregisterextractcapture01da
- MySQL 8.0的数据库root用户默认无法远程登录,需要修改root的远程授权
banzhenfei
数据库mysqladb
mysql>grantallprivilegeson.to‘root’@‘%’;ERROR1410(42000):YouarenotallowedtocreateauserwithGRANTmysql>usemysql;ReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaqui
- Python编程从入门到实践 课后题 9-7 管理员
小于不是小鱼呀
python编程从入门到实践python
9-7管理员:管理员是一种特殊的用户。编写一个名为Admin的类,让它继承你为完成练习9-3或练习9-5而编写的User类。添加一个名为privileges的属性,用于存储一个由字符串(如”canaddpost”、“candeletepost”、“canbanuser”等)组成的列表。编写一个名为show_privileges()的方法,它显示管理员的权限。创建一个Admin实例,并调用这个方法。
- 使用docker安装MongDB
巴里巴气
编程软件安装docker容器运维
前言首先要安装docker,没有安装的看我以前的博客docker的安装和常用的命令-CSDN博客目录安装MongDB的命令命令的含义各个参数的含义安装MongDB的命令dockerrun-d--restart=always-p27017:27017--namemongo--privileged=true-v/data/db:/data/dbmongo命令的含义先检查docker中是否有镜像,如果有
- SQL 注入:iBatis与修复
zqmattack
sql网络数据库
问题:SQL注入是一种数据库攻击手段。攻击者通过向应用程序提交恶意代码来改变原SQL语句的含义,进而执行任意SQL命令,达到入侵数据库乃至操作系统的目的。使用iBatis执行一个通过用户输入构建的动态SQL指令,会使攻击者篡改指令的含义或者执行任意的SQL命令。例如:下面代码片段中,动态构造并执行了一个SQL查询来认证用户。publicvoiddoPrivilegedAction(Stringus
- Ubuntu搭建Mysql+Keepalived高可用(双主热备)
2401_89191942
ubuntumysqladb
sudoapt-getremovemysql-*dpkg-l|grep^rc|awk‘{print$2}’|sudoxargsdpkg-P配置权限vim/etc/mysql/my.cnf#bind-address=127.0.0.1mysql-uroot-pgrantallon.toroot@‘%’identifiedby‘root’withgrantoption;flushprivileges;
- mysql 创建用户,创建数据库,授权
Sahas1019
数据库mysql
创建一个远程用户createuser'test'@'%'identifiedby'test@1111';创建一个数据库并指定编码createdatabasetestdbCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;授权grantallprivilegesontestdb.*to'test'@'%';应用更改:FLUSHPRIVILEGES;注意:确保My
- 由于Oracle忘记SYS,SYSTEM账户密码引申出来的问题及解决方案
yuyjJared
数据库
1.问题发生想在本地搭建Oracle数据库用于个人练习,但忘记了SYS,SYSTEM账户密码,使用Win+R运行cmd执指令sqlplus/assysdba提示"insufficientprivileges",没有权限。于是乎百度找到解决方案:https://jingyan.baidu.com/article/67508eb43cf7879ccb1ce47e.html但是操作时发现电脑本地的管理中
- SQL 注入开放与修复
zqmattack
sql网络数据库
开发:SQL注入是一种数据库攻击手段。攻击者通过向应用程序提交恶意代码来改变原SQL语句的含义,进而执行任意SQL命令,达到入侵数据库乃至操作系统的目的。例如:下面代码片段中,动态构造并执行了一个SQL查询来认证用户。publicvoiddoPrivilegedAction(Stringusername,char[]password)throwsSQLException{Connectioncon
- PostgreSQL 安全纵深防御:从权限到加密
七七&556
面试学习路线阿里巴巴postgresql安全区块链
文章目录PostgreSQL安全纵深防御:从权限到加密第一章:角色与权限体系-PostgreSQL的安全基石1.1角色(ROLE)的本质与演进1.2权限模型的三层架构1.3GRANT/REVOKE实战精解1.4默认权限(DEFAULTPRIVILEGES)的自动化管理1.5权限系统深度优化策略第二章:行级安全策略(RLS)-数据访问的微观控制2.1RLS的核心价值与应用场景2.2RLS实现机制深度
- Docker使用手册
一只积极向上的小咸鱼
Linux内核docker容器运维
一docker相关命令1.查看docker镜像sudodockerimages2.查看所有的容器命令sudodockerps-a3.创建docker:dockerrun详细用法参考:dockerrunDockerrun命令基本结构:dockerrun[OPTIONS]IMAGE[:TAG|@DIGEST][COMMAND][ARG...]sudodockerrun--privileged--gpu
- 【Redis】在Docker中安装Redis以及相关报错解决
Rockict_z
RedisLinuxredisdocker数据库
文章目录一、在docker里面手动安装(可能报错)Error:FailedtogetD-Busconnection:Operationnotpermitted的解决方法二、一步到位法一、在docker里面手动安装(可能报错)根据视频进行的redis安装1、使用docker拉取centos7镜像并创建容器dockerpullcentos:centos7dockerrun-itd--privilege
- docker快速搭建redis主从
daylight182
dockerredis容器
1.在docker中pullredis:6.0.8systemctlstopfirewalldsetenforce0#dockerpullredis:6.0.82.开放权限并且在后台运行redis#dockerrun-d--nameredis-node-1--nethost--privileged=true-v/data/redis/share/redis-node-1:/dataredis:6.
- 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