- C 语言输入输出库函数讲解
要下雨了吗
C语言基础c语言开发语言visualstudioc++
输入输出函数:能够让程序和用户或者文件进行交互。头文件:#include1.printf函数:输出格式化信息到控制台使用格式printf("格式字符串",参数列表);作用把格式化后的字符串输出到控制台。格式字符串里可以包含普通字符和格式说明符,格式说明符会被后面参数列表里的值替换。用法格式说明符一般以%开头,常见的有%d(用于输出整数)、%f(用于输出浮点数)、%c(用于输出字符)、%s(用于输出
- PTA团体程序设计天梯赛——L1-030 一帮一
commonbelive
PTAc++
题目链接:一帮一注意:输出的n/2行数据的每行第一个名字可能是男生,也可能是女生。c++代码实现:#include#includeusingnamespacestd;structPeople{intgender;stringname;};intmain(){vectorstudents;vectorfemale;vectormale;intn;cin>>n;for(inti=0;i>p.gende
- C++匿名对象、编译器对拷贝构造和构造的优化等的介绍
Farewell_me
C++c++开发语言匿名对象编译器优化
文章目录前言一、C++匿名对象1.匿名对象的生命周期2.匿名对象调用成员函数3.匿名对象具有常性二、编译器对拷贝构造和构造的优化总结前言C++匿名对象、编译器对拷贝构造和构造的优化等的介绍一、C++匿名对象1.匿名对象的生命周期#includeusingnamespacestd;classA{public:A(inta):_a(a){coutusingnamespacestd;classSolut
- 晴问算法学习笔记
晚n
算法学习c语言c++
第2章C/C++快速入门2.1基本数据类型题目描述:直接输出HelloSunnyWhy!#includeintmain(){printf("HelloSunnyWhy!");return0;}思路:直接printf2.2顺序结构整型输入输出题目描述:输入一个整数,然后输出它本身。输入描述:一个整数n。输出描述:输入的整数n。#includeintmain(){intn;scanf("%d",&n)
- 斐波那契数列(递推)-C语言
脆订壳
C语言算法c语言算法动态规划递推斐波那契数列
斐波那契数列(递推)记忆化搜索---------数组充当备忘录#includeintFib(intn);intFibSum(intn);intmain(){intn;while(1){printf("请问您需要求前几项呢?");scanf("%d",&n);printf("斐波那契数列第%d项为:%d\n",n,Fib(n));printf("前%d项斐波那契数列之和:%d\n",n,FibSum
- C语言实现打印斐波那契数列前30项
风华绚烂
c语言算法数据结构编程
C语言实现打印斐波那契数列前30项斐波那契数列是一个非常经典的数列,它的定义是前两个数是1和1,从第三个数开始,每个数都是前两个数的和。在这篇文章中,我将使用C语言编写一个程序来打印斐波那契数列的前30项。#includeintmain(){intnum1=1;//第一个数
- 获取ftp目录及子目录下的文件并下载下来
中少奇
软件开发开发工具c++ftp
/*利用AI写了一个在fedora系统下的c++程序,实现功能为,先获取ftp指定目录及子目录下的文件名称,然后把本地目录中没有的文件下载下来。#安装依赖sudodnfinstalllibcurl-devel#编译g++-oftp_sync_curlftp_sync_curl.cpp-lcurl-lstdc++fs-O2*/#include#include#include#include#incl
- 洛谷普及B3619 10 进制转 x 进制 和 B3620 x 进制转 10 进制
LAOLONG-C
算法数据结构c语言开发语言c++
题目1:10进制转x进制题目2:x进制转10进制题号1:B3619题号2:B3620难度:普及一题目1分析首先就需要万能的除基取余法这个一定要掌握,该方法代码如下intzhuan(longlongnum,intk){intn=0;while(num>0){if(num%k=0;i--)printf("%c",a[i]);整体来看一下代码:源代码#include#includechara[1000]
- 蓝桥杯--LCA1
CoCoa-Ck
蓝桥杯数据结构算法c++图论深度优先
树上前缀和+LCA暴力做法:我们先把不删的sum维护出来,然后遍历跳过的点,假如a1,a2,a3,跳过2,那么答案就是sum-cost(a1,a2)-cost(a2,a3)+cost(a1,a3).DFS暴力,下面是代码:#includeusingnamespacestd;typedeflonglongll;intk,n;typedefpairpii;inta[100010];vectoredge
- 使用STM32实现简单的机器人控制
CrMylive.
stm32机器人单片机
以下是一个简单的机器人控制代码示例,使用STM32单片机和带有直流电机驱动器的机器人底盘。代码使用了STM32的HAL库来配置GPIO和定时器,并通过PWM信号控制电机的速度。#include"stm32f4xx_hal.h"//定义左右电机引脚#defineLEFT_MOTOR_A_PINGPIO_PIN_0#defineLEFT_MOTOR_A_PORTGPIOA#defineLEFT_MOT
- ARM驱动学习之静态申请字符类设备号
JT灬新一
嵌入式Carm开发学习
ARM驱动学习之静态申请字符类设备号内核文件:宏定义MKDEV的头文件“include/linux/kdev_t.h”register_chrdev_region和unregister_chrdev_region在头文件"include/linux/fs.h"1.“module_param.c“改写为“request_cdev_num.c”修改Makefile对应名字2.添加linux头文件/*字
- 一些练习 C 语言的小游戏
鹿屿二向箔
c语言开发语言
一些练习C语言的小游戏—1.猜数字游戏描述:程序随机生成一个数字,玩家需要猜测这个数字,并根据提示(太高或太低)调整猜测,直到猜中为止。功能点:随机数生成(rand()函数)。循环和条件判断。用户输入处理。示例代码框架:#include#include#includeintmain(){intnumber,guess,attempts=0;srand(time(0));//初始化随机数种子numb
- Arduino ESP8266 U8g2库 完成OLED 屏幕中文和进度条
陈阳羽
单片机
ArduinoU8g2库渲染中文两种方式1.全屏渲染#include#include//定义全局渲染模式U8G2_SSD1306_128X64_NONAME_F_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);voidsetup(void){//初始化OLED对象u8g2.begin();//开启字符支持u8g2.enableUTF8Print();}voi
- 猛攻大模拟day2!
想跑步的小弱鸡
c++
字符串匹配纯粹的kmp算法,让我顺便又复习了一下,然后加上了一个大小写模糊匹配代码如下中间卡了一个点,后面发现是next数组得在m不同状态更新。但acwing上有更简洁得做法,决定学习一下find函数(服了何必写这个kmp呢)大小写转换还是一个个换吧没必要用高级函数(其实就是懒得背了)#includeusingnamespacestd;constintN=105;stringstr;intn,m;
- 猛攻大模拟day3!!
想跑步的小弱鸡
c++算法图论
权限查询没啥好说的map套。但是很多小细节,还是debug了很久,而且中间还卡在一个地方,因为写出了cout#include#include#includeusingnamespacestd;mapper;map>role;map>user;voidwork(){intp;cin>>p;for(inti=0;i>str;intit=str.find(":");if(it==-1){per[str]
- rv1106抓h264流
KL's pig/猪头/爱心/猪头
linux图像处理前端
从rkipc的rkipc_pipe_0_init我们得知,h265流的设置步骤为设置vi通道-》使能vi通道-》创建venc通道-》设置h265通道的相关参数-》接收帧-》获取h265数据根据这个步骤写rv1106抓h264流#include#include#include#include#include#include#include#include#include#include#includ
- 递归和非递归实现计算二叉树叶子节点的个数
如影随从
C++二叉树
#include#include#include#include#defineMAXSIZE50typedefstructBinaryTree{chardata;structBinaryTree*pLeft;structBinaryTree*pRight;}BinaryTree;//BinaryTreeNodetypedefstructStackTree{BinaryTree*b[MAXSIZE]
- 基于回溯思想的小游戏Knight‘s tour 骑士巡游
52Hertz861
回溯算法算法
骑士巡游是指在棋盘上,骑士的一系列移动,使得骑士恰好访问棋盘上的每一个方格一次。如果骑士最终停在一个与起始方格相隔一个“马步”(象棋)的方格上(这样它就可以立即沿着相同的路径再次巡游棋盘),那么这个周游是“闭合的”;否则,它就是“开放的”。下面进入代码部分讲解:1.头文件和命名空间#include#includenamespacebacktracking{namespaceknight_tour{
- 蓝桥杯备考:贪心算法之最大字段和
无敌大饺子 dot
贪心算法算法
先说,贪心策略,贪心策略就是我们从头开始选数,如果是正的说明对后面有贡献就继续往后加,如果是负的就舍弃这一段,从下一个开始往后加,#includeusingnamespacestd;intsum;constintN=2e5+10;inta[N];intmain(){intn;cin>>n;intret=-1e6;for(inti=1;i>a[i];sum+=a[i];ret=max(sum,ret
- 2n皇后问题(蓝桥杯基础练习C/C++)
菜只因C
蓝桥杯软件类C/C++蓝桥杯算法深度优先c++皇后
目录1问题描述2思路及代码:dfs嵌套,黑白皇后先后放3代码难点解释1问题描述2思路及代码:dfs嵌套,黑白皇后先后放#includeusingnamespacestd;intmp[9][9];//初始化地图boolvisblack[9];//黑皇后是否用到boolviswhite[9];//白皇后是否用到intblack[9],white[9];//皇后放到第几列*解释1*intans;//答案
- 高精度除法(算法题)
祝我好运zwhyyyy
算法
首先解释一下我们介绍的高精度乘法的情况:及为一个数是大数(如题目中的A)一个数的普通数(如题目中的B),我们仅仅介绍的是此种情况。具体代码如下(有详细注释和例子):#includeusingnamespacestd;/*处理第1位4:t=0*10+4=4res添加4/3=1→[1]t更新为4%3=1处理第2位5:t=1*10+5=15res添加15/3=5→[1,5]t更新为15%3=0处理第3位
- kmp算法
洞阳
数据结构与算法算法数据结构
kmp算法C语言实现#include#include#include//构建部分匹配表(next数组)voidcomputeLPSArray(constchar*pattern,intpattern_len,int*lps){intlength=0;//当前最长公共前后缀长度lps[0]=0;//首字符无前缀,直接置0inti=1;while(i
- 蓝桥杯—日期遍历
侯鑫爽
蓝桥杯算法职场和发展
日期计算日期计算主要需要注意闰年2月有29天,普通情况2月只有28天。闰年判断的依据:n%4==0&&n%100!=0||n%400==0;代码实现//日期计算#includeusingnamespacestd;intmonth[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};boolAC(intn){return(n%4==0&&n%100!=0||n%4
- C语言pthread库创建线程的案例
编程之升级打怪
开发语言
一、代码案例#include#include//多线程库#include//线程的逻辑描述void*thread_method_01(void*v){printf("线程1执行完毕。\n");returnNULL;}void*thread_method_02(void*v){printf("线程2执行完毕。\n");returnNULL;}intmain(){//1、定义线程变量pthread_t
- Eigen库小记
MobiCetus
机器学习人工智能
有时候脑子会突然卡住,忘记eigen库里的有些细节。所以还是决定来写个笔记把常用的用法总结一下,方便查阅。1、Installationg++-I/path/to/eigen/program.cpp-oprogram在CmakeLists中添加find_package(Eigen3REQUIRED)include_directories(&{EIGEN#_INCLUDE_DIR})2、Eigen库的
- python和c中作用域的差异
m0_55576290
pythonc++pythonc语言开发语言
好的,我将详细列举Python和C语言在作用域规则上的主要差异,并为每种差异提供具体的代码示例,以便更清晰地理解它们之间的不同。1.块级作用域(BlockScope)C语言在C语言中,任何用{}包裹的代码块(如if语句、for循环等)都会创建一个新的作用域。示例#includeintmain(){intx=10;//局部变量,作用域为整个main函数if(x>5){inty=20;//局部变量,作
- 自定义类型:结构体(1)
zzzh1216
c语言
1.结构体回顾结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。1.1结构的声明structtag{member-list;}variable-list;例如描述一个学生:structStu{charname[20];intage;charsex[5];};1.2结构体变量的创建和初始化#includestructStu{charname[20];intage;char
- c++第一课(基础c)
今晚打老虎
c++c语言开发语言
目录1.开场白2.char(字符)3.字符数组4.ASCII码1.开场白OK,咱们也是亿(不是作者故意的)天没见,话不多说,直接开始!2.char(字符)众所不周知,int是装不下字符(指字母、特定符号)类型的,这时候,需要char类型了举个栗子#includeusingnamespacestd;intmain(){inta;return0;}再举个栗子#includeusingnamespace
- c++(斗罗大陆2)
今晚打老虎
c++开发语言
我把魂力等级更新到了31级#include#include#include#include#include#include#includeusingnamespacestd;intqs=10;intxthl=0;//先天魂力inthldj=1;//魂力等级intwh1;//武魂1longlonghj[9]={0};//九个魂环的年限intn,a,b,d,as;intmain(){longlongn
- cmake之旅(1)
m晴朗
cmakecmakeqtc++makefile
cmake之旅(1)1构建的过程2手动构建2.1环境2.2开始编译3使用Makefile简化构建3.1环境3.2编写Makefile4使用cmake构建4.1环境4.2编写CMakeLists.txt1构建的过程我们先写一个简单的的程序:#includeintmain(){std::cout#defineNUM12intmain(){//注释std::cout#include"add.h"#inc
- 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