- CodeFoeces-450B
ss5smi
题目原题链接:B.JzzhuandSequences题意根据公式公式计算对应fn的值。参考了其他作者的代码和思路。找循环点。负数取余需要加取余数到>0为止才可取余。代码#includeusingnamespacestd;constintmod=1e9+7;intmain(){longlongf[10],x,y,n;cin>>x>>y>>n;x=(x+mod)%mod;y=(y+mod)%mod;f
- (AC)Playlist
题目描述Youaregivenaplaylistofaradiostationsinceitsestablishment.Theplaylisthasatotalofnsongs.Whatisthelongestsequenceofsuccessivesongswhereeachsongisunique?输入Thefirstinputlinecontainsanintegern(1≤n≤2*105
- python的reduce方法
追逐此刻
pythonpython算法数据结构
在Python中,reduce是一个用于对序列中的元素进行累积操作的函数。它位于functools模块中,因此在使用之前需要先导入该模块。1.reduce的基本用法fromfunctoolsimportreducereduce(function,sequence[,initial])function:一个接受两个参数的函数,用于对序列中的元素进行累积操作。sequence:一个可迭代对象(如列表、
- PRBS(伪随机码)是什么?
巧~·
Test测试fpga开发testlink
PRBS是什么?PRBS是“伪随机二进制序列”的缩写,即Pseudo-RandomBinarySequence。它是一种由数字序列组成的信号,看起来在统计特性上类似于随机信号,但实际上是由特定的算法生成的确定性序列。在通信、测试和数字信号处理等领域中,PRBS经常被用作测试模式或者用于伪装数据,以评估系统的性能、检测错误或者进行其他分析。PRBS序列在信号处理和通信领域中有着广泛的应用。什么是伪随
- 最长递增子序列(longest increasing subsequence) 问题详解
ZhY_Rening
C/C++笔试题和相关算法最长递增子序列
最长递增子序列的定义:按照序列元素的下标号,抽取一部分元素组成子序列,子序列中的元素之间为递增的关系(下标可以不连续)。其中长度最长的递增子序列就是最长递增子序列。方法思想:为了求出该数组的最长递增子序列,就需要先求出在以数组中每个元素为结尾的情况下,最长的递增子序列是什么样的。因此首先要申请一块二维数组空间,存放以各个元素为结尾情况下的最长递增子序列。首先显然可知,以0号元素为结尾的子序列只有0
- BERT 的“池化策略”
AI扶我青云志
bert人工智能深度学习
为什么在BERT的config.json中会出现池化层(pooling)相关的参数。这个问题其实触及了BERT输出与下游任务之间的桥梁设计,也是你理解BERT在实际应用中如何工作的关键环节。首先明确:BERT的原始Transformer模块没有传统的池化层BERT是基于Transformer构建的,Transformer输出的是:sequence_output:Tensorofshape(batc
- 19、Java正则表达式与字符集详解
杠精协会主席
JavaNIO:革新I/O处理的新范式Java正则表达式Pattern
Java正则表达式与字符集详解1.Java正则表达式相关类在JavaJ2SE1.4版本中,引入了一些期待已久的正则表达式类,下面为你详细介绍:-CharSequence:这是一个新的接口,由多个类实现,用于以抽象的方式描述字符序列。-Pattern:该类将正则表达式封装在一个不可变的对象实例中。可以通过编译表达式字符串来创建实例,同时还有一些静态实用方法用于一次性匹配。importjava.uti
- B/S 架构通信原理详解
步行cgn
JavaWeb架构
B/S架构通信原理详解一、核心架构Browser/Server(浏览器/服务器)模型:前端:浏览器作为统一客户端(Chrome/Firefox/Edge等)后端:服务器处理业务逻辑+数据存储(Nginx/Apache/Tomcat等)通信协议:基于HTTP/HTTPS的请求-响应模型二、完整通信流程sequenceDiagramparticipant用户participant浏览器particip
- Python for循环
dengdieli5313
python
Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。for循环的语法结构如下:foriterating_varinsequence:statements(s)最简单的形式如下,循环10次。1foriinrange(10):2print("loop:",i)输出为1loop:02loop:13loop:24loop:35loop:46loop:57loop:68loop:79lo
- 【转】【译】How to Handle Very Long Sequences with LSTM(LSTM RNN 超长序列处理)
开始奋斗的胖子
机器学习RNNLSTM序列深度学习
原文地址http://machinelearningmastery.com/handle-long-sequences-long-short-term-memory-recurrent-neural-networks/一个长的输入序列却只对应一个或者一小段输出就是我们经常说的序列标注和序列分类。主要包括下面一些例子:包含上千个词的文件情感分类(NLP)包含上千个时间状态的脑电痕迹分类(Medici
- 代码随想录算法训练营第二十五天
天天开心(∩_∩)
算法
LeetCode.491递增子序列题目链接递增子序列题解classSolution{List>resList=newArrayList>();Listres=newArrayList>findSubsequences(int[]nums){dfs(nums,0);returnresList;}privatevoiddfs(int[]nums,intindex){Setuset=newHashSet
- pad_sequence
朋也透william
人工智能深度学习
pad_sequence是PyTorch提供的工具,用于将一组张量序列(通常是变长的序列)进行填充。pad_sequence默认的填充方式是将所有序列填充到同一长度,即最长的序列的长度,这样可以确保所有序列都具有相同的维度。在处理变长序列时,pad_sequence会自动找到需要填充的最大序列长度,然后使用默认的填充值(通常是0)。texts=pad_sequence([torch.LongTen
- Android-kotlin之Flow基础实战应用
每次的天空
androidkotlin开发语言
一、Flow是什么?Flow是一种用于处理异步数据流的强大工具,它基于协程实现,支持响应式编程模式。Flow是一个冷流(ColdStream),即只有在被收集(collect)时才会开始执行,类似于Kotlin序列(Sequence)的惰性求值特性。它可以异步地发射多个值,支持背压(Backpressure)机制。核心特点异步/非阻塞:Flow中的代码可以挂起而不阻塞线程。支持协程上下文:可以在不
- web 系统对接飞书三方登录完整步骤实战使用示例
慧一居士
架构总结架构系统架构
下面我将详细说明Web系统对接飞书三方登录的完整步骤,并提供实战示例(基于Node.js/Express):一、完整对接流程注册飞书开放平台应用登录飞书开放平台创建企业自建应用→获取AppID和AppSecret配置安全域名和重定向URL(如https://yourdomain.com/auth/feishu/callback)OAuth2.0授权流程sequenceDiagram用户->>你的应
- lstm 输入数据维度_keras中关于输入尺寸、LSTM的stateful问题
weixin_39856269
lstm输入数据维度
补充:return_sequence,return_state都是针对一个时间切片(步长)内的h和c状态,而stateful是针对不同的batch之间的。多层LSTM需要设置return_sequence=True,后面再设置return_sequence=False.最近在学习使用keras搭建LSTM的时候,遇到了一些不明白的地方。有些搞懂了,有些还没有搞懂。现在记下来,因为很快就会忘记!-_
- torch 填充补齐
AI算法网奇
python宝典python
目录行填充补齐1.填充长度(Padding)2.掩码(Masking)3.排序优化(可选)行填充补齐importtorchfromtorch.nn.utils.rnnimportpad_sequence#原始序列(每个序列是二维张量,行数不同)batch_data=[torch.tensor([[1,2,3]])#1行#torch.tensor([[4,5,6],[7,8,9]]),#2行#tor
- lstm 数据输入问题
AI算法网奇
python基础lstm人工智能
lstm我有20*6条数据,20个样本,每个样本6条历史数据,每条数据有5个值,我送给网络输入时应该是20*6*5还是6*20*5你的数据是:20个样本(batchsize=20)每个样本有6条历史数据(sequencelength=6)每条数据有5个值(inputsize=5)✅正确的输入形状是:(20,6,5)#即batch_size=20,seq_len=6,input_size=5前提是你
- 华为OD机试专栏--1.3 算法基础:1.3.3 动态规划入门
xiaoheshang_123
华为OD机试真题题库解析华为od面试职场和发展算法
目录1.3算法基础1.3.3动态规划入门一、动态规划的核心思想1.1什么是动态规划?1.2动态规划的特点二、动态规划的基本步骤三、经典动态规划问题3.1斐波那契数列(FibonacciSequence)问题描述动态规划解法代码实现(Python)3.2背包问题(KnapsackProblem)问题描述动态规划解法代码实现(Python)3.3最长公共子序列(LongestCommonSubsequ
- 蜜罐的工作原理和架构
大家读完觉得有帮助记得关注和点赞!!!蜜罐(Honeypot)是一种**主动防御技术**,通过部署虚假系统、服务或数据,诱骗攻击者入侵,从而**捕获攻击行为、分析攻击工具、收集威胁情报**。以下从工作原理到架构的深度解析:---###一、蜜罐核心工作原理####**欺骗三部曲**```mermaidsequenceDiagramattacker->>+honeypot:探测与攻击honeypot-
- Fibonacci sequence 斐波那契数列解法及分析
hiqex
ALfibfibonacci
版权声明:欢迎转载,但请注明出处,若有什么不对的地方,欢迎指正,https://blog.csdn.net/wutenglong123/article/details/82764585斐波那契数列(Fibonaccisequence)斐波那契数列的性质多种多样,截至现在,人么依然没有将之研究透彻,本文就从中选取几个有趣的性质分析。定义Fib数列的定义如下:F(n)={0ifn=01ifn=1Fn−
- Python: 如何用Python的迭代器或生成器实现斐波那契数列
KevinShi_BJ
python
斐波那契数列(Fibonaccisequence)是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89...这个数列从第3项开始,每一项都等于前两项之和。斐波那契数列的定义者,是意大利数学家莱昂纳多·斐波那契(LeonardoFibonacci)。以兔子繁殖为例子而引入,故又称为”兔子数列“。斐波那契数列又称黄金分割数列,n越大,相邻两值的比越接近黄金分割0.618,非常有趣。百
- 使用oracle序列
创建序列:CREATESEQUENCEXXXXX_SEQUENCE使用序列:selectXXXXX_SEQUENCE.nextvalfromdual
- PostgreSQL-XL之 序列(Sequence)
行星008
数据库postgresql数据库
目录序列的定义和作用PostgreSQL-XL中序列的特殊性序列的使用方法1.创建序列2.在分布式表中使用序列3.手动操作序列值4.查看序列与表的关联关系关键注意事项典型使用场景故障排查技巧在PostgreSQL-XL中,序列(Sequence)是一种特殊的数据库对象,用于生成唯一的数值序列。作为分布式数据库,PostgreSQL-XL中的序列需要特殊处理以保证全局唯一性。序列的定义和作用定义:序
- Python内置函数--reversed()
它将一个序列作为输入,并返回另一个序列,其中元素的顺序与给定输入序列的顺序相反。它不会对原始序列产生任何影响。也就是在原列表的基础上返回一个新的反向列表。粗略的看看classreversed(Iterator[_T],Generic[_T]):@overloaddef__init__(self,__sequence:Reversible[_T])->None:...@overloaddef__in
- python内置函数reversed_Python3内置函数——reversed() = 翻转我的世界
大龙说学区
v.颠倒(reverse的过去式和过去分词);翻转help(reversed)Helponclassreversedinmodulebuiltins:classreversed(object)|reversed(sequence)->reverseiteratorovervaluesofthesequence||Returnareverseiterator||Methodsdefinedhere:
- 修改oracle序列最小值,Oracle如何使用序列 Oracle序列使用教程
斗鱼直播-大司马mkq
修改oracle序列最小值
Oracle序列(sequence)是一种数据库项,能够生成一个整数序列。通常用于填充数字类型的主键列。Oracle序列使用教程:1、创建序列:CREATESEQUENCEsequence_name[STARTWITHstart_num][INCREMENTBYincrement_num][{MAXVALUEmaximum_num|NOMAXVALUE}][{MINVALUEminimum_num
- RAC (ReactiveCocoa) 的实现机制与消息传递策略
瓜子三百克
iosRAC
ReactiveCocoa(RAC)是iOS/macOS开发中一个强大的函数响应式编程框架,它通过信号(Signals)和序列(Sequences)的概念来处理异步事件流。下面我将深入解析RAC的实现机制和消息传递策略。一、RAC核心实现机制1.信号(Signal)的底层实现RAC的核心是**RACSignal**类,其基本结构如下:@interfaceRACSignal:NSObject+(RA
- python内置函数——enumerate()
Believer_abby
python内置函数python
说明:emumerate()函数用于将一个可遍历的序列(如列表,元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中。语法:enumerate(sequence,[start=0])参数:sequence:表示一个序列、迭代器或其他支持迭代的对象;start:下标起始位置,默认为0。使用:seasons=['spring','summer','fall','winter'
- 1163 Dijkstra Sequence (30)
圣保罗的大教堂
PAT刷题图pat考试
Dijkstra'salgorithmisoneoftheveryfamousgreedyalgorithms.Itisusedforsolvingthesinglesourceshortestpathproblemwhichgivestheshortestpathsfromoneparticularsourcevertextoalltheotherverticesofthegivengraph.
- 双指针算法-day12(判断子序列)
拾零吖
力扣算法leetcode数据结构
1.判断子序列题目解析字符相等:双指针一起动,不相等:长字符串指针动;代码classSolution{public:boolisSubsequence(strings,stringt){//时间复杂度:O(m)//空间复杂度:O(1)intn=s.size(),m=t.size();inti=0,j=0;while(i&dictionary){stringans="";intn=ans.size(
- 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