- ARM:使用F103纯汇编点灯
一枝小雨
ARM内核arm开发汇编
0上节ARM体系结构解析:PC寄存器机制、三级流水线与C/汇编交互全揭秘-CSDN博客1纯汇编点灯主要是通过汇编代码实现下图逻辑:汇编代码实现:PRESERVE8THUMB;VevtorTableMappedtoAddress0atResetAREARESET,DATA,READONLYEXPORT__Vectors__VectorsDCD0DCDReset_Handler;ResetHandle
- GBASE 8C——SQL参考6 sql语法(15
m0_49291452
STARTTRANSACTION功能描述启动事务。语法格式STARTTRANSACTION[transaction_mode[,...]]其中transaction_mode是下列之一:ISOLATIONLEVEL{SERIALIZABLE|REPEATABLEREAD|READCOMMITTED|READUNCOMMITTED}READWRITE|READONLY[NOT]DEFERRABLE参
- 【STM32】Fatfs文件系统(1)—结构体配置
_Yeps
stm32嵌入式硬件单片机
1.FatFs结构体配置1.1FunctionConfigurations功能配置FF_FS_READONLY定义FatFs是否工作在只读模式0:读/写。默认值。1:只读。只读模式下,写相关的函数f_write(),f_sync(),f_unlink(),f_mkdir(),f_chmod(),f_rename(),f_truncate(),f_getfree()以及其他和写操作相关的函数都将被移
- sqlite3.OperationalError: database is locked python-BaseException错误解决
传而习乎
数据库sqlitesql
报错有2种:sqlite3.OperationalError:attempttowriteareadonlydatabasesqlite3.OperationalError:databaseislockedpython-BaseException原因及解决方案:1、被占用由于SQLite只支持单线程。SQLite数据库在同一时间只能由一个连接执行写操作。如果有其他进程或程序(如SQLite专家工具
- cocos creator从零开发简单框架(13)-Panel打开关闭
mirahs
cocoscreator从零开发简单框架cocos2d
编辑framework/scripts/AppConstants.ts,内容如下。定义了Panel的显示方式和遮罩类型,遮罩类型可以叠加,即可同时拥有不可穿透、半透明、关闭组件特性。//Panel显示方式publicstaticreadonlypanelShowStyle={//正常出现Normal:1,//中间变大CenterSmallToBig:2,//上往中UpToCenter:3,//下往
- OC 属性关键字
空中海
Objective-COC
@dynamic告诉编译器由我们自己来实现访问方法。@synthesize告诉编译器帮忙实现访问方法。readonly此标记说明属性是只读的。如果你指定了只读,在@implementation中只需要一个读取器。或者如果你使用@synthesize关键字,也是有读取器方法被解析。而且如果你试图使用点操作符为属性赋值,你将得到一个编译错误。但是可以使用成员变量的方法去赋值。readwrite此标记说
- vue3与react、 react hooks
caihuayuan5
面试题汇总与解析springbootjava后端大数据课程设计
一、Vue3新特性:setup、ref、reactive、computed、watch、watchEffect函数、生命周期钩子、自定义hooks函数、toRef和toRefs、shallowReactive与shallowRef、readonly与shallowReadonly、toRaw与markRaw、customRef、provide与inject、Fragment、Teleport、Su
- 推荐开源项目:Tauri Plugin Store - 简单持久化的键值存储解决方案
谢忻含Norma
推荐开源项目:TauriPluginStore-简单持久化的键值存储解决方案tauri-plugin-store[READONLY]Thisrepositoryisamirror,forissuetrackinganddevelopmentheadto:https://github.com/tauri-apps/plugins-workspace项目地址:https://gitcode.com/g
- ARM裸机-1.ARM体系结构和简单的汇编指令
poi_carefree
嵌入式嵌入式技术物联网arm汇编
一、一些专业术语ROM:readonlymemory只读存储器RAM:ramdomaccessmemory随机访问存储器IROM:internalrom内部ROM,指的是集成到SoC内部的ROMIRAM:internalram内部RAM,指的是集成到SoC内部的RAMDRAM:dynamicram动态RAMSRAM:staticram静态RAM二、ARM的编程模式和7种模式1、ARM有7个基本工作
- c#实现modbus rtu定时采集数据
A_nanda
c#ModbusRTU
以下是使用C#实现ModbusRTU定时采集数据的完整代码示例,包含定时任务、数据采集和异常处理:csharp复制usingSystem;usingSystem.IO.Ports;usingSystem.Timers;publicclassModbusRtuCollector:IDisposable{privatereadonlySerialPort_serialPort;privatereado
- 工具
前端javascript
typescript类型工具ReadonlyinterfaceA{a:string;b:number;c:number[];}typeC=Readonlyconstc:C={a:'',b:18,c:[1,2]}c.a="1"//报红工具PartialinterfaceA{a:string;b:number;c:number[];}typeB=Partialconsta:A={a:'',b:18,c
- cocos creator从零开发简单框架(完结)-状态机
cocos
新建framework/scripts/state/State.ts,状态基类,内容如下。exportdefaultclassState{publicstaticreadonlyinvalidState='invalid'protected_owner:anypublicgetowner():any{returnthis._owner}publicconstructor(owner:any){th
- QtC++读取文件内容
galaxy_strive
qtc++
QFilefile("../sys_database/canshu.txt");//目标文件路径if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){QMessageBox::critical(this,"警告","文件读取失败!");return;}//创建一个QTextStream对象,用于从文件中读取文本数据。QTextStreamin(&f
- cocos creator从零开发简单框架(完结)-状态机
cocos
新建framework/scripts/state/State.ts,状态基类,内容如下。exportdefaultclassState{publicstaticreadonlyinvalidState='invalid'protected_owner:anypublicgetowner():any{returnthis._owner}publicconstructor(owner:any){th
- Spring事务注解配置
anyeoo
一天一点点Spring事务注解配置
一,spring基于注解式的事务配置方法:@Transactional1.xml配置2.常用事物注解:2.1readOnly主要用于查询中:@Transactional(readOnly=true)用于客户代码只读但不修改数据的情形,只读事务用于特定情景下的优化,比如使用Hibernate的时候。默认为读写事务2.2rollbackFor对于增删改查时的回滚,默认情况下checked except
- JavaScript-冻结对象
小爱丨同学
学习javascript
文章目录1.冻结对象2.冻结判断3.深冻结和浅冻结1.冻结对象Object.freeze()'usestrict'letinitialData={a:123};initialData.a=234;console.log(initialData.a);Object.freeze(initialData);/***严格模式下会报错*TypeError:Cannotassigntoreadonlypro
- C#、.Net 中级高级架构管理面试题杂烩
一包烟电脑面前做一天
.netc#.net架构面试面试题
1、简述值类型和引用类型的区别存储位置:值类型变量直接存储数据的值,通常存储在栈上;引用类型变量存储的是对象在堆上的引用地址。内存管理:值类型的内存由系统自动管理,当超出作用域时自动释放;引用类型的内存需要通过垃圾回收机制来释放。赋值操作:值类型赋值时会复制整个值;引用类型赋值时只是复制引用地址,两个变量指向同一个对象。2、解释const和readonly的区别const:是编译时常量,必须在声明
- 使用Spring boot的@Transactional进行事务管理
TracyCoder123
smartSpringspringboot后端java
文章目录一、前置条件二、基本用法1.在方法上添加注解2.在类上添加注解三、核心配置参数1.传播行为(Propagation)2.隔离级别(Isolation)3.超时时间(Timeout)4.只读模式(readOnly)5.回滚规则(rollbackFor/noRollbackFor)四、关键注意事项1.方法可见性2.自调用问题3.异常处理4.多数据源事务五、调试技巧六、最佳实践七、完整示例八、适
- STM32进阶 存储器
雁过留声花欲落
STM32进阶stm32嵌入式硬件单片机
目录常见的存储器介绍二进制历史:RAM(RAMRandomAccessmemory)随机访问存储器下电丢失SRAMDRAMROM(Readonlymemory)只读存储器下电不丢失MASKROMPROMEPROMPROMFlash硬盘(磁盘)STM32的存储器常见的存储器介绍存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。二进制历史:电报员敲
- 8086系统的内存空间分配
weixin_30823833
DRAM(DynamicRandomAccessMemory,DRAM)访问地址空间:00000-9FFFF;ROM(ReadOnlyMemory,ROM)访问地址空间:F0000-FFFFF;因为8086加电通电或者复位时CS=0xFFFF,IP=0x0000,位于物理地址0xFFFF0;处理器取指令执行的自然顺序是从内存的低地址往高地址推进。如果从0xFFFF0开始执行,离1MB内存的顶端(物
- ORA-19809 ORA-19804 错误处理
夜光小兔纸
运维Oracle数据库数据库运维oracle
一、问题描述通过备库的备份文件做还原恢复,数据库启后为ReadOnly,现想通过failover的方式将standby库转换为主库。在执行alterdatabasecommittoswitchovertoprimary;命令时出现如下错误:SQL>alterdatabasecommittoswitchovertoprimary;alterdatabasecommittoswitchovertopr
- Apache Tomcat 漏洞CVE-2024-50379条件竞争文件上传漏洞 servlet readonly spring boot 修复方式
李三醒
apachetomcatspringboot
1,关于漏洞ApacheTomcat是一个流行的开源Web服务器和JavaServlet容器。二、漏洞描述ApacheTomcat中修复了个TOCTOU竞争条件远程代码执行漏洞(CVE-2024-50379),该漏洞的CVSS评分为9.8。ApacheTomcat中JSP编译期间存在检查时间使用时间(TOCTOU)竞争条件漏洞,当ApacheTomcat的默认servlet被配置为允许写入(即re
- 【漏洞复现】Apache Tomcat条件竞争代码执行漏洞(CVE-2024-50379)
李火火安全阁
漏洞复现中间件漏洞apachetomcat
文章目录前言声明一、漏洞描述二、漏洞版本三、环境部署四、漏洞复现五、修复建议前言由于Windows文件系统与Tomcat在路径大小写区分处理上的不一致,当启用了默认servlet的写入功能(设置readonly=false且允许PUT方法),未经身份验证的攻击者可以构造特殊路径绕过Tomcat的路径校验机制,通过条件竞争不断发送请求上传包含恶意JSP代码的文件触发Tomcat对其解析和执行,从而实
- 20250202本地编译全志R系列的步骤6增加了samba处理项目
南棱笑笑生
杂质r语言开发语言
sudoecho"[rootroot]">>smb.confsudoecho"comment=rootrootSharedFolder">>smb.confsudoecho"path=/">>smb.confsudoecho"#public=yes">>smb.confsudoecho"writable=yes">>smb.confsudoecho"#readonly=yes">>smb.conf
- 前端必知必会-TypeScript 实用类型
编程岁月
前端typescriptubuntu
文章目录TypeScript实用类型PartialrequiredRecord省略OmitPickExcludeReturnType参数ParametersReadonly总结TypeScript实用类型TypeScript附带大量类型,可帮助进行一些常见的类型操作,通常称为实用类型。PartialPartial将对象中的所有属性更改为可选。示例interfacePoint{x:number;y:
- Typescript新特性关键字readyonly详细解读
黑码小帅
自己总结typescriptjavascript前端htmlcssvue.jsvue
readonly修饰符:首先是一个关键字,对类中的属性成员进行修饰,修饰后,该属性成员,就不能在外部被随意的修改了一构造函数中,可以对只读的属性成员的数据进行修改(()=>{//定义一个类型classPerson{//属性readonlyname:string//构造函数constructor(name:string){this.name=name}}//实例化对象constperson:Pers
- C#面试题(初级篇),详细讲解,帮助你深刻理解,拒绝背话术!
Dr.勿忘
C#游戏开发面试c#游戏引擎unity面试开发语言
拒绝背话术,帮助你深刻理解其原理,真正做到实战时游刃有余!适用于Unity游戏开发、C#语言相关面试等相关学习。此为C#初级篇,不久将更新后续篇目。1.const和readonly有什么区别?1、初始化位置不同。const必须在声明的同时赋值;readonly即可以在声明处赋值,也可以构造⽅法⾥赋值。2、修饰对象不同。const可以修饰类的字段,也可以修饰局部变量;readonly只能修饰类的字段
- 1-C# 对象和类型(随笔)
坐在墙上的猫
C#andHalcon
1-C#对象和类型(随笔)1.只读字段2.匿名类型3.结构3.1结构是值类型3.2结构和继承3.3结构的构造函数4.弱引用5.部分类6.静态类7.Object类7.1System.Object()方法8.扩展方法1.只读字段适用场景:需要一些变量,它的值在运行时不应改变,但在运行之前是未知的。readonly关键字比const灵活,允许把一个字段设置为常量,但是需要对其初始值进行确认。其规则是可以
- 《随笔二》——C#中的“readonly 修饰符 、”
To-String
C#中的随笔readonly关键字c#
readonly修饰符namespaceCh05Ex03{classRandomNum{constintcc=200;//const字段只可以在字段的声明语句中初始化readonlydoubleaa=3.14;//提供初始值readonlyintbb;//未提供readonlystaticintdd;//静态的readonly字段,必须在静态构造函数中初始化publicRandomNum(doub
- 56.命令绑定 C#例子 WPF例子
军训猫猫头
c#wpf开发语言
一共是两个控件,绑定了属性和命令。用的是最简做法创建依赖:publicclassRelayCommand:ICommand{privatereadonlyAction_execute;publiceventEventHandlerCanExecuteChanged;publicRelayCommand(Actionexecute)=>_execute=execute;publicboolCanEx
- 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