- C语言——指针移位4
湘阳人
C的学习c语言
指针的移位跟指向对象的数据类型有关//例inta=10;//定义一个int类型的变量a,并且赋值10;int*p;//定义一个指针变量p,可以指向int类型的变量char*q;//定义一个指针变量q,可以指向char类型的变量p=&a;//p指向了a==将a的地址赋值给了pq=p;//q也存了a的地址编号printf("p=%d\n",p);//2017printf("q=%d\n",q);//2
- C语言——字符串指针-strcpy
_Black_Sky
c语言strcpy指针函数
#include#includeintmain(){charstr1[]="Good";//初始化字符数组charstr2[20]="Job";//初始化字符数组,分配空间,待str1复制char*p1=str1;//初始化字符串指针,使其指向str1首部char*p2=str2;while(*p1!='\0')//判断复制str1结束{*p2=*p1;//将str1中的字符逐个复制到str2
- c语言怎么处理字符串,与c++的区别
commonbelive
C++c语言c++开发语言
在C语言中,没有原生的string类型(如C++中的std::string),但可以通过以下方式处理字符串:1.字符数组(最常用)C语言中,字符串通常用字符数组表示,以空字符('\0')结尾:charstr[]="Hello";//编译器自动添加'\0'//等价于charstr[6]={'H','e','l','l','o','\0'};2.字符指针也可以用指针指向字符串字面量(常量,不可修改):
- C++的指针数组、数组指针和指针数组指针
胡乱儿起个名
C++c++开发语言
C++指针与数组:简单详细指南1.指针数组(数组里存指针)是什么:一个普通数组,但每个元素都是指针定义:类型*数组名[大小];例子:inta=1,b=2,c=3;int*numPtr[3]={&a,&b,&c};//存了3个int指针char*names[2]={"小明","小红"};//存了2个字符串指针怎么用:cout右边>左边)逐步解析。
- [C++基础学习-07]----C++结构体详解
一伦明悦
C++基础编程学习c++学习开发语言
前言结构体(Struct)是C++中一种用户定义的复合数据类型,用于存储不同类型的数据项。结构体可以包含不同类型的数据成员,这些数据成员可以是基本类型(如int、float、char等),也可以是数组、指针、其他结构体等。正文01-结构体简介结构体的基本语法:struct结构体名{数据类型成员1;数据类型成员2;//更多成员};//声明结构体变量struct结构体名变量名;//初始化结构体变量结构
- 编程入门与编程基础知识
侯鑫爽
算法
数据类型基本类型(整型int,浮点型float,字符型char,布尔型bool),派生类型(指针类型,数组类型,共用体类型,类类型),空类型(void)整型1.一般占4个字节2.分为有符号和无符号二种:(1)有符号【signed】int补码表示,范围为-2**31--2**31-1(2)无符号unsigned【int】范围为0--2**32-1字符型1.占1个字节2.有符号:char范围-128-
- 一天快速入门Django:从0到1构建属于自己的Web应用
lczzfnk1ng*
django
DjangoWeb开发Day11.Django的安装pipinstalldjango2.创建项目2.1终端创建“python环境路径\scripts\django-admin.exe”startprojectdjango项目名#如果python环境路径配置了环境变量,可直接写django-adminstartprojectdjango项目名2.2pycharm创建2.3项目文件介绍django_s
- c语言字符串提取数字
战神哥
c语言开发语言
在C语言中,可以使用sscanf函数来从字符串中提取数字。例如,如果要从字符串"12345"中提取两个数字,可以使用以下代码:charstr[]="12345";intx,y;sscanf(str,"%d%d",&x,&y);在上面的代码中,"%d"表示要提取整数。如果要提取浮点数,可以使用"%f"。注意,sscanf函数可能会返回提取的数据数量,因此可以使用返回值来判断是否成功提
- Mariadb 添加用户、删除用户与授权
kentrl
mysql
一.创建数据库:createdatabase`数据库名`defaultcharsetutf8mb4collateutf8mb4_general_ci;二.授权:grantselect,insert,update,delete,create,drop,index,alter,createtemporarytables,locktableson`数据库名`.*to'kentrl'@'localhost
- 洛谷普及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]
- java笔记02
wei387245232
java笔记开发语言
运算符1.隐式转换和强制转换类型转换的分类1.隐式转换:取值范围小的数值转换为取值范围大的数值2.强制转换:取值范围大的数值转换为取值范围小的数值隐式转换的两种提升规则取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算byteshortchar三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算byte=>intint=>long=>float=>doublesho
- python和anaconda的区别、为什么要用anaconda,怎么使用anaconda?
轩轩Aminent
整理pythonpycharm开发语言
python和anaconda的区别:其实anaconda是包含python的。所以安装了anaconda就不用安装python了。要想跑python程序,要有解释器和编译器。解释器就是python2或python3.含有python.exe。就是将你编写的python语言编译成机器所认识的机器代码。编译器就是你写代码的环境,比如pycharm或者vscode。由于python3不兼容python
- MySQL 数据类型详解:字符串、数字、日期
QQ148698
mysql数据库
MySQL数据类型详解:字符串、数字、日期在MySQL中,选择合适的数据类型对于数据库的存储效率和查询性能至关重要。MySQL提供了**字符串(String)、数字(Numeric)和日期(Date&Time)**三大类数据类型,每种类型又有不同的子类型,以适应不同的业务需求。1.字符串(String)数据类型字符串类型用于存储文本数据,主要分为定长(CHAR)和变长(VARCHAR),以及大文本
- 如何选择一款AI大模型绘图工具
brave java
人工智能AI大模型绘图
背景随着AI技术的快速发展,AI绘图工具在软件开发中的应用越来越广泛,尤其是在生成流程图、时序图、用例图、状态机图、类图和活动图等技术文档时,AI工具能够显著提升开发效率。本文将从技术角度分析市面上可用于生成这些图表的AI大模型工具,并对它们的功能、优缺点及价格信息进行详细比对。AI绘图工具1.Lucidchart使用入口链接:Lucidchart官网工具简介:Lucidchart是一个在线协作绘
- (C语言)学生信息表(学生管理系统)(基于通讯录改版)(正式版)(C语言项目)
双叶836
C语言小项目C语言基础教学c语言开发语言c++microsoft算法
1.首先是头文件://student.h//头文件//防止头文件被重复包含#pragmaonce//宏定义符号常量,方便维护和修改#defineID_MAX20#defineNAME_MAX20#defineAGE_MAX5#defineSEX_MAX5#defineCLA_MAX20//定义初始最大容量#defineMAX1//定义结构体学生structStudent{//定义学生信息chari
- 关于CodeJava的学习笔记——9.5
下雨的Jim
java开发语言学习
一、IO流补充1、Reader、WriterReader所有字符输入流统一的父类抽象类intread()intread(char[]data)intread(char[]data,intoffset,intlength)Writer所有字符输出流统一的父类抽象类write(intdata)write(char[]data)write(char[]data,intoffset,intlength)2
- fopen(),fopen_s()和wfopen_s()的差异
程工助力英语中国话
VisualC++2017从入门到精通mfcfopenfopen_swfopen_s
书籍:《VisualC++2017从入门到精通》的2.7字符串环境:visualstudio2022内容:GetBuffer()函数以下是fopen()、fopen_s()和_wfopen_s()的核心差异解析,结合安全特性、参数设计及适用场景:1.函数原型与参数设计特性fopen()fopen_s()_wfopen_s()参数类型constchar*filename,constchar*mode
- char * pChar = “World“;和char aChar[20] = “World“;的差异
程工助力英语中国话
VisualC++2017从入门到精通mfc
书籍:《VisualC++2017从入门到精通》的2.7字符串环境:visualstudio2022内容:(15)char*转为CString在C语言中,char*pChar="World";和charaChar[20]="World";的差异主要体现在内存分配、可修改性、类型特性等方面。以下是详细分析:1.内存分配方式**char*pChar="World";**pChar是一个指向字符串常量的
- python调试工具----pycharm快捷键及一些常用设置
如影随从
pythonpythonpycharm快捷键
pycharm快捷键及一些常用设置,有需要的朋友可以参考下。Alt+Enter自动添加包Ctrl+tSVN更新Ctrl+kSVN提交Ctrl+/注释(取消注释)选择的行Ctrl+Shift+F高级查找Ctrl+Enter补全Shift+Enter开始新行TABShift+TAB缩进/取消缩进所选择的行Ctrl+Alt+I自动缩进行Ctrl+Y删除当前插入符所在的行Ctrl+D复制当前行、或者选择的
- 递归和非递归实现计算二叉树叶子节点的个数
如影随从
C++二叉树
#include#include#include#include#defineMAXSIZE50typedefstructBinaryTree{chardata;structBinaryTree*pLeft;structBinaryTree*pRight;}BinaryTree;//BinaryTreeNodetypedefstructStackTree{BinaryTree*b[MAXSIZE]
- ngx_http_core_error_page
若云止水
nginx
定义在src\http\ngx_http_core_module.cstaticchar*ngx_http_core_error_page(ngx_conf_t*cf,ngx_command_t*cmd,void*conf){ngx_http_core_loc_conf_t*clcf=conf;u_char*p;ngx_int_toverwrite;ngx_str_t*value,uri,args
- 12.结构体
今天阳光明媚吗
c语言c语言
1.概述1.1定义一个结构的一般形式为:struct结构名{成员表列};成员列表由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:类型说明符成员名;structstudent{intnum;charname[20];floatscore;};1.2定义结构类型变量的方法1.2.1在声明类型的同时定义变量,这种形式的定义一般形式为:struct结构名{成员表列
- Transformer架构完整代码示例
码猿小菜鸡
计算机视觉人工智能transformer深度学习人工智能pytorch源代码管理
Transformer架构完整代码#!/usr/bin/python3.9#-*-coding:utf-8-*-#@Time:2023/6/2910:48#@File:abd_transformer_cyd.py#@Software:PyCharmimportmathimporttorchimportcollectionsimportnumpyasnpimporttorch.nnasnnfromc
- kmp算法
洞阳
数据结构与算法算法数据结构
kmp算法C语言实现#include#include#include//构建部分匹配表(next数组)voidcomputeLPSArray(constchar*pattern,intpattern_len,int*lps){intlength=0;//当前最长公共前后缀长度lps[0]=0;//首字符无前缀,直接置0inti=1;while(i
- Kotlin基础知识学习一
linwq8
kotlin学习
数据类型基本数据类型数据类型和变量声明kotlin的数据类型根java一样也包含整型、长整型、浮点型、双精度、布尔型、字符型、字符串常见类型。与Java类型对比数据类型名称Java数据类型Kotlin数据类型整型intInt常整型longLong浮点型floatFloat双精度doubleDouble布尔型booleanBoolean字符型charChar字符串StringString变量声明格式
- 在echarts中,如何自定义显示legend文本
babywenever
echarts数据结构前端
option={title:{show:false,x:"center",},tooltip:{trigger:"axis",axisPointer:{//坐标轴指示器,坐标轴触发有效type:"shadow",//默认为直线,可选为:'line'|'shadow'},},legend:{formatter:(name)=>{//在这里自定义legend的显示文本//statModels是后端返回
- ngx_http_core_server
若云止水
nginx
staticchar*ngx_http_core_server(ngx_conf_t*cf,ngx_command_t*cmd,void*dummy){char*rv;void*mconf;size_tlen;u_char*p;ngx_uint_ti;ngx_conf_tpcf;ngx_http_module_t*module;structsockaddr_in*sin;ngx_http_conf
- echarts 3d饼状图_给小程序加上漂亮的可视化echarts图表
Sleep No More 上海
echarts3d饼状图
最近刚发布的古人云推送小程序,采用了echarts图表库进行数据的可视化处理展示。如折线图、饼状图、条形图等。现在我进行简单总结,教大家如何在自己的小程序中安装使用这个组件,为自己的小程序扩展更高级功能!安装echarts组件首先,我们需要从github下载echarts-for-weixin这个项目源码(公众号回复11获取项目链接)然后进行解压,复制出源码目录里边的ec-canvas目录,存放到
- 为什么String要定义成不可变的?
java干货仓库
八股文汇总java面试java
在Java中,String类被设计为final类型,主要基于以下关键原因,涵盖安全性、性能优化和设计哲学:1.不可变性(Immutability)的核心保障禁止继承:final修饰的类无法被继承,防止子类通过继承破坏String的不可变性(如重写方法修改内部字符数组value)。实例不可变:String内部存储字符的char[]value也是final的,确保一旦创建,引用和内容均不可变。示例:p
- 自定义类型:结构体(1)
zzzh1216
c语言
1.结构体回顾结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。1.1结构的声明structtag{member-list;}variable-list;例如描述一个学生:structStu{charname[20];intage;charsex[5];};1.2结构体变量的创建和初始化#includestructStu{charname[20];intage;char
- 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