js数组元素相关方法
var arr = new Array();
arr[0] = "aaa";
arr[1] = "bbb";
arr[2] = "ccc";
//alert(arr.length);//3
arr.pop();
//alert(arr.length);//2
//alert(arr[arr.length-1]);//bbb
arr.pop();
//alert(arr[arr.length-1]);//aaa
//alert(arr.length);//1
var arr2 = new Array();
//alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
//alert(arr2.length);//2
arr2.pop();
//alert(arr2.length);//1
arr2 = arr2.slice(0,arr2.length-1);
//alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
arr2[2] = "ccc";
arr2 = arr2.slice(0,1);
alert(arr2.length);//1
alert(arr2[0]);//aaa
alert(arr2[1]);//undefined
shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1
unshift:将参数添加到原数组开头,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7
注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。
pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5 //不用返回的话直接调用就可以了
push:将参数添加到原数组末尾,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7
concat:返回一个新数组,是将参数添加到原数组中构成的
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]
splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]
var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length; //同unshift
var b = a.splice(a.length-1,1); //同pop
a.splice(a.length,0,6,7); var b = a.length; //同push
reverse:将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
sort(orderfunction):按指定的参数对数组进行排序
var a = [1,2,3,4,5];
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]
slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
var a = [1,2,3,4,5];
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"
工具软件
2.FTP上传软件,FlashFXP、LeapFTP、CuteFTP比较好但是要收费,FileZilla是个免费的不错的一个FTP工具,其下载地址如下:
域名空间
网站建设
想学习建站还是需要进行系统学习,网上提供很多相关的视频教程,这里推荐一个学习地址
网易学院《网站设计系列多媒体教程》,但是如果不是想学习网页编程可通过一些现成的cms系统+模板方式进行建站,这样相对方便容易也大大减少了学习成本和建站时间,现在比较流行的cms系统有wordpress、J2CMS、phpcms、DEDECMS、Drupal,以下以wordpress为例讲解一下建站流程
1.下载wordpress 下载地址:http://cn.wordpress.org/wordpress-3.5.1-zh_CN.zip
2.将下载的wordpress-3.5.1-zh_CN.zip解压后,通过FTP软件上传到空间
3.输入你的域名访问,可进入wordpress的安装向导页面,按照提示一步一步操作,直到安装完成(过程相当简单,大约5分钟完成)。
4.安装完成后你的网站就可以访问了,通过访问你的域名加wp-login.php例如:http://www.test.com/wp-login.php可进入后台管理,这里可以修改网站的主题,在主题页面可免费下载非常漂亮的完整主题模板,选择好自己喜欢的主题模板后安装,在看看自己的网站,是不是非常漂亮,到此结束网站制作完成,之后只需要登陆后台进行文章发布就可以了。
奥尚软件(Aosunsoft),是一家
南充软件定制开发商,专业致力于企业管理信息化建设与服务,为企业提供网站建设,信息系统设计,网站建设设计以及网络营销解决方案。公司成立于2012年。公司是以向广大企业用户提供全面的ERP信息化解决方案、企业内部办公平台(OA)和网站发布系统搭建为主要业务的高科技企业。公司拥有一支团结协作、素质过硬、技术一流的研发与实施的团队,更好的为企业实现信息化管理。
所谓设计师,是那个站在时代前沿,必须具备敏锐洞察力的职业,他们应该具备鹰一般的眼睛,随时注视着周围环境的瞬息万变。
潜规则说得好,先一统人心,再集体办事。引导客户的终极目的也在于此,先拉其入帮,同化其思想,更有助于后续工作的开展。那么,人都是有思想的,因此你的介入性引导,也有可能不会得到预期的效果,这都依靠你在引导过程中的经验和手法。这就像你去按摩一样,第一次总是觉得像被揍,以后越来越舒服,都是一个技术层面的东西。
1. 试图同客户站在同一战线
客户一定是有底线的,你的设计不能太好,也不能太坏,不能太贵,也不能太贱,这是一个拿捏的过程。如何了解客户的底线?去拜访客户,去到他的地盘看他的山头插的什么旗。
公司的规模,人员的素质,前台的相貌,会议室多大,客户的西装什么牌子,他们的市场在哪里,他们是否有专业的产品经理…这一切都在透露着客户的底线和心理价位,最重要的,还有对设计的认知程度。
甲方与你直接对接的人,是对方的一把手,还是只是经办人?如果只是经办人,他是什么样的职位?在甲方单位中占据多少重量?他经办该项目是身负重担势必圆满完成否则有身家性命的风险,还是只想敷衍了事应付他们boss?甚至,该经办人是否潜规则了一点回扣?
有时候你的客户并不是一手客户,他的背后还有人,因此你还要深入的观察和询问真正对设计有着决定和执行权的那层,或许他们的信息才是真正需要在设计中实践的部分 — 所以我强调,对于设计合作的引导应该从最高层的领导开始,或者从对项目有着决定意义的单位开始。
这都是些什么?这与项目有关吗?这与设计师有关吗?答案是:有!而且这些问题应该是设计师在项目着手前应当去了解的事情。所谓设计师,是那个站在时代前沿,必须具备敏锐洞察力的职业,他们应该具备鹰一般的眼睛,随时注视着周围环境的瞬息万变。
某设计师曾经手过这样一个网站设计项目,经办人有着很多甲方那不可一世傲慢,丝毫不听取设计师的专业性建议,从项目一开始便对乙方有着敌对情绪,这样对项目的开展是很不利的。尔后设计师获取到这样的信息:对接人是甲方该项目的项目经理,曾说服其boss开展该项目,遂找到设计方进行项目开发。那这代表着什么?他属于什么类型?他希望得到什么,害怕发生什么?很显然,如果这项目搞砸了,他必当身败名裂,这就是他所害怕发生的。此时,本来设计师只用针对情况稍加引导便能水到渠成,可该客户极其主观,仍是一意孤行,他的很多决策甚至触犯了很多设计的大忌和原则。
此时,放在设计师面前的只有两条路,一是继续抗争,可这条路如果把握不当,轻者延误项目进度,加重双方的敌对情绪,重者遭到投诉甚至导致项目终止。二是逆来顺受,你爱怎么做,我就怎么做,只要项目顺利验收,无非就是多搞出了个垃圾项目而已。
对,垃圾项目,相信每一个设计师都不愿意这样的事情发生,那么,此时他该如何去抗争,如何去扭转现状?
那日,设计师借双方闲聊的机会,推心置腹的说道:“我一年要经手很多的项目,搞砸一个,对我来说并没有什么,更何况如果项目正常验收,理论上我也不算做砸,而你不一样,我也在和你类似的公司工作过,也负责过很多项目,我很理解你现在的心情,我知道你也很想把项目做好,等等这些,是我结合多年的设计经验给你的针对性建议,很多都是有实际数据证明的,希望你能够听取……”
尔后,双方成了朋友,项目也顺利完成,后来甲方借助该平台,业务开展得如火如荼,当然这和甲方自身强大的实力与丰富的资源密不可分,这是后话。
从客户的角度出发,生活中也有不少的例子,比如你去餐馆吃饭,无良的餐馆的服务生总是会推荐餐牌上的招牌菜多半是价格昂贵的,而有一点同理心的餐馆会从客户角度出发建议你点什么,点多少,甚至我还遇到过根据你的用餐目的来定制点菜和服务的。
同客户站在同一战线,是赢取客户信任的第一步,也是引导的第一个开端。
2. 不要扮演商务人员的角色
有部分刚被一脚踢进社会的设计师,不小心误入了山寨的路线,认为“引导客户”就是和客户“搞关系”,有部分很不幸,真的搞出了关系。。。。。。陪吃陪喝,风花雪月其实不是我们设计师的擅长,也不必要。
设计师必然是需要一些格调的,你和客户打成一片其实也未必就能让他对你的设计俯首称臣,设计需要交际,但是也需要挑客,你不能是个菜就捡进篮子里 — 我这么说确实现实了点,但现实远比这还卑鄙。
如果你坚持要做设计行业的口碑,就绝对不要和山寨客户坐到一桌推杯换盏 — 但是我还是想赚他们的钱怎么办?请雇佣专业的商务人士出面解决你的尴尬。
3. 强行引导会有反效果
什么叫强行引导呢?我相信客户方最有发言权,就是一个不怎么样的设计师和公司来推荐,或者不太成熟的内部团队做演示,设计出来的玩意外行看了都认为有点问题,他们自己还在说得眉飞色舞,什么“国际化风格”,“大气磅礴”,“精美绝伦”能用上的花言巧语全用上了,最后让人感觉像个小丑。
引导的过程中,从见面的第一刻起就回避客户的眼光,或者看得要把客户吃掉一样,客户一有意见就说“根据我们的成功经验,你的这个看法是。。。。。”,基本上这种作风的引导方式只会带来恶劣的反效果。自信应该表现在做人做事的细节和缜密,而不是行为和语言的攻击性上。
4. 客户关注的也许是设计以外的事
也许你不相信,大多数传统行业客户在听你的设计提案的时候,根本搞不清你在干嘛,他们关注的是你的语言流畅程度,关注你用什么笔记本电脑,关注你的着装,关注你的自我介绍……直到,对,直到你提及他们的产品名称,价格,市场占有率,利润率,品牌影响程度和深度的时候,他们的耳朵才会竖起来。
设计师放了太多精力在我们的设计过程中了,其实客户更关心的是“你这个设计究竟是怎么得来的?”“为什么要这么设计?”“用了这个设计产品就能好卖么?”“你的设计为什么这么贵?” — 好了,这同你去旅游一样,如果景色不磅礴,路途不遥远,人烟不稀少,文化不异域,你会认为旅行的意义没有那么的厚重。
5. 你的设计可能没有那么好
当然,你的客户未必都是不懂设计的,所谓没吃过猪肉也见过猪跑,如果你的客户花费了3个月,看尽了各种花俏的提案,参加了上百场的设计推荐会后,相信他的审美和设计理解也可以有一点改观和提升。那么,你在小处着眼的那些花花肠子不见得能起作用了,作为设计师,你至少应该保证自己的见识和作品是客户“意料以外”的,有时候引导客户的关键就在于作品创意和客户认知之间的落差。
如果可以的话,你想法了解一下共同争取客户的竞争对手的作品,找一找自己的差距,在任何方法都失效的情况下,也许问题就出在自己的身上,这是我们可以接受,并且要修正的。
本文转载自网页教学网!
http://www.sealee.com/design/design-5089.html
找了一个小东西,叫朋友帮忙改了一下,呵呵
wallpapers.rar
MANIFEST中的配置信息共有下面几类:
一. 一般属性
1. Manifest-Version
用来定义manifest文件的版本,例如:Manifest-Version: 1.0
2. Created-By
声明该文件的生成者,一般该属性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1
3. Signature-Version
定义jar文件的签名版本
4. Class-Path
应用程序或者类装载器使用该值来构建内部的类搜索路径
二. 应用程序相关属性
1. Main-Class
定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。
三. 小程序(Applet)相关属性
1. Extendsion-List
该属性指定了小程序需要的扩展信息列表,列表中的每个名字对应以下的属性
2. <extension>-Extension-Name
3. <extension>-Specification-Version
4. <extension>-Implementation-Version
5. <extension>-Implementation-Vendor-Id
5. <extension>-Implementation-URL
四. 扩展标识属性
1. Extension-Name
该属性定义了jar文件的标识,例如Extension-Name: Struts Framework
五. 包扩展属性
1. Implementation-Title 定义了扩展实现的标题
2. Implementation-Version 定义扩展实现的版本
3. Implementation-Vendor 定义扩展实现的组织
4. Implementation-Vendor-Id 定义扩展实现的组织的标识
5. Implementation-URL : 定义该扩展包的下载地址(URL)
6. Specification-Title 定义扩展规范的标题
7. Specification-Version 定义扩展规范的版本
8. Specification-Vendor 声明了维护该规范的组织
9. Sealed 定义jar文件是否封存,值可以是true或者false
六. 签名相关属性
签名方面的属性我们可以来参照JavaMail所提供的mail.jar中的一段
Name: javax/mail/Address.class
Digest-Algorithms: SHA MD5
SHA-Digest: AjR7RqnN//cdYGouxbd06mSVfI4=
MD5-Digest: ZnTIQ2aQAtSNIOWXI1pQpw==
这段内容定义类签名的类名、计算摘要的算法名以及对应的摘要内容(使用BASE64方法进行编码)
CAPTCHA,全称为“Complwwetely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)。简单来说就是人类验证。当我们注册邮箱或到一些网站留言的时候,都需要输入验证码,一般的验证码是扭曲或模糊的数字,或一道简单的四则运算。CAPTCHA的作用是防止计算机自动完成注册、留言等操作。
telnet
open 192.168.1.11
root
password
cd /websphere/siyn 目录跳转
ls 列表
mkdir test1 创建目录
mkdir test2
mkdir test3
rmdir test3 删除目录
ln /websphere/siyn/test2 /websphere/siyn/test1 在test1下建立了一个test2的软连接
rm /websphere/siyn/test1/test2 删除软连接
1.1数据库
①创建数据库
mysql:
查看数据库:show databases;
创建数据库:create database siyn;
②连接数据库
mysql: use siyn;
oracle:
③删除数据库
mysql:drop database siyn;
1.2表
①创建表(临时表,复制表)
mysql:
查看表:show tables;
创建表:
create table t_users(
id int,
name varchar(20),
sex char(1),
password varchar(20)
);
②删除表 drop table t_users;
③修改表结构,默认值,自增长
mysql:
查看表结构:desc t_users;
④约束与数据完整性(主键,外键,非空,唯一,检查)[添,删,改]
1.3视图
......
1.4
①索引
②序列
③触发器
摘要: 来源:http://www.cn-java.com/www1/?action-viewnews-itemid-3384
JDK为程序员提供了大量的类库,而为了保持类库的可重用性,可扩展性和灵活性,其中使用到了大量的设计模式,本文将介绍JDK的I/O包中使用到的Decorator模式,并运用此模式,实现一个新的输出流类。...
阅读全文
摘要: 原帖:http://www.bugcode.com/diary/10322
(1)、浮点数精确计算
每次报表统计的物资金额和实际的金额要差那么几分钱,和实际金额不一致,让客户觉得总是不那么舒服,原因是因为我们使用java的浮点类型double来定义物资金额,并且在报表统计中我们经常要进行一些运算,但Java中浮点数(double、float)的计算是非精确计算,请看下面一个例子:
...
阅读全文
function getUrlParam(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
//alert(reg);
var r = window.location.search.substr(1).match(reg);
if(r!=null) return unescape(r[2]);
return null;
}
hql.append(" select new Map( ");
hql.append(" student.nj.njmc as njmc ");//年级名称
hql.append(" , student.sszy.zymc as zymc ");//专业名称
hql.append(" , student.bj.jxd.name as jxdmc ");//教学点名称
hql.append(" , student.bj.bjmc as bjmc ");//班级名称
hql.append(" , sum( case when student.xb = 1 then 1 else 0 end ) as male");//男
hql.append(" , sum( case when student.xb = 2 then 1 else 0 end ) as famale");//女
hql.append(" ) ");
hql.append(" from Student student where 1=1 ");
hql.append(" and student.nj.id > ? ");
hql.append(" and student.nj.id <= ? ");
hql.append(" and student.pycc.id = ? ");
hql.append(" group by student.nj.njmc , student.sszy.zymc , student.bj.jxd.name , student.bj.bjmc ");
hql.append(" order by student.nj.njmc desc , student.sszy.zymc , student.bj.jxd.name , student.bj.bjmc ");
摘要: 序号
内容类型
文件扩展名
描述
...
阅读全文
showModalDialog和showModelessDialog使用:
1.让在showModalDialog和showModelessDialog的超连接不弹出新窗口
在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的。
2.刷新showModalDialog和showModelessDialog里的内容
<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload</a>
3.showModalDialog和showModelessDialog数据传递
传递方式:
window.showModalDialog("filename.htm",window)
读取和设置:
alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量
摘要: struts2的验证器是用的xwork里面的验证,自定义验证器就是根据源码继承已有的字段验证器而来。具体步骤如下:
1.展开xwork-2.0.4.jar,com.opensymphony.xwork2.validator.validators目录下有个default.xml,将它复制到项目根目录下改名叫validators.xml。
验证框架首先在根目录下找validators.xml文件,...
阅读全文
native2ascii_bat.bat
del package_zh_CN.properties
copy package.properties package_zh_CN.properties.utf8
native2ascii -encoding utf-8 package_zh_CN.properties.utf8 package_zh_CN.properties
del package_zh_CN.properties.utf8
del *.bak
# $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
### START SNIPPET: complete_file
### Struts default properties
###(can be overridden by a struts.properties file in the root of the classpath)
### Struts的默认属性
###(可以通过在classpath根目录下新建一个struts.properties文件来重载此文件中的属性)
###
### Specifies the Configuration used to configure Struts
### one could extend org.apache.struts2.config.Configuration
### to build one's customize way of getting the configurations parameters into Struts
### 指定用于struts的配置类
### 一个继承于 org.apache.struts2.config.Configuration 的类
### 建立一个自定义的方式获得Struts的配置参数
# struts.configuration=org.apache.struts2.config.DefaultConfiguration
### This can be used to set your default locale and encoding scheme
### 这可以用来设置您的默认区域设置和编码方案
# struts.locale=en_US
struts.i18n.encoding=UTF-8
### if specified, the default object factory can be overridden here
### Note: short-hand notation is supported in some cases, such as "spring"
### Alternatively, you can provide a com.opensymphony.xwork2.ObjectFactory subclass name here
### 如果指定的话,在这里默认对象的工厂类可以被重载
### Note: 在某些情况下可以支持缩写, 例如 "spring"
### 另外,您也可以在这里提供一个com.opensymphony.xwork2.objectfactory的子类名
# struts.objectFactory = spring
### specifies the autoWiring logic when using the SpringObjectFactory.
### valid values are: name, type, auto, and constructor (name is the default)
### 指定自动装配的方式,当使用springobjectfactory 。
### 有效值有: name, type, auto, and constructor (name 是默认值)
struts.objectFactory.spring.autoWire = name
### indicates to the struts-spring integration if Class instances should be cached
### this should, until a future Spring release makes it possible, be left as true
### unless you know exactly what you are doing!
### valid values are: true, false (true is the default)
### spring是否使用自身的cache
struts.objectFactory.spring.useClassCache = true
### if specified, the default object type determiner can be overridden here
### Note: short-hand notation is supported in some cases, such as "tiger" or "notiger"
### Alternatively, you can provide a com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation name here
### Note: By default, com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer is used which handles type detection
### using generics. com.opensymphony.xwork2.util.GenericsObjectTypeDeterminer was deprecated since XWork 2, it's
### functions are integrated in DefaultObjectTypeDeterminer now.
### To disable tiger support use the "notiger" property value here.
#struts.objectTypeDeterminer = tiger
#struts.objectTypeDeterminer = notiger
### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data
# 专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用)
# struts.multipart.parser=cos
# struts.multipart.parser=pell
struts.multipart.parser=jakarta
# uses javax.servlet.context.tempdir by default
#设置存储上传文件的目录夹
struts.multipart.saveDir=
#multipart请求信息的最大尺寸(文件上传用)
struts.multipart.maxSize=2097152
### Load custom property files (does not override struts.properties!)
### 加载附加的配置文件的位置(不重载struts.properties文件中的属性)
# struts.custom.properties=application,org/apache/struts2/extension/custom
### How request URLs are mapped to and from actions
### 如何将请求的URL映射到action类和从action类映射到URL
#struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper
### Used by the DefaultActionMapper
### You may provide a comma separated list, e.g. struts.action.extension=action,jnlp,do
### 用URL扩展名来确定是否这个请求是被用作Struts action,其实也就是设置 action的后缀如login.do的'do'
### 你可以提供一个逗号分隔的列表,例如:struts.action.extension=action,jnlp,do
struts.action.extension=action
### Used by FilterDispatcher
### If true then Struts serves static content from inside its jar.
### If false then the static content must be available at <context_path>/struts
struts.serve.static=true
### Used by FilterDispatcher
### This is good for development where one wants changes to the static content be
### fetch on each request.
### NOTE: This will only have effect if struts.serve.static=true
### If true -> Struts will write out header for static contents such that they will
### be cached by web browsers (using Date, Cache-Content, Pragma, Expires)
### headers).
### If false -> Struts will write out header for static contents such that they are
### NOT to be cached by web browser (using Cache-Content, Pragma, Expires
### headers)
struts.serve.static.browserCache=true
### Set this to false if you wish to disable implicit dynamic method invocation
### via the URL request. This includes URLs like foo!bar.action, as well as params
### like method:bar (but not action:foo).
### An alternative to implicit dynamic method invocation is to use wildcard
### mappings, such as <action name="*/*" method="{2}" class="actions.{1}">
### 是否允许动态方法调用
struts.enable.DynamicMethodInvocation = true
### Set this to true if you wish to allow slashes in your action names. If false,
### Actions names cannot have slashes, and will be accessible via any directory
### prefix. This is the traditional behavior expected of WebWork applications.
### Setting to true is useful when you want to use wildcards and store values
### in the URL, to be extracted by wildcard patterns, such as
### <action name="*/*" method="{2}" class="actions.{1}"> to match "/foo/edit" or
### "/foo/save".
### 这个属性设为true以后,action的名字中就可以使用斜杠了。
### Struts2的默认设置是不允许action的名字中出现斜杠的,需要用package来分割命名空间。
struts.enable.SlashesInActionNames = false
### use alternative syntax that requires %{} in most places
### to evaluate expressions for String attributes for tags
### 是否可以用替代的语法替代tags
struts.tag.altSyntax=true
### when set to true, Struts will act much more friendly for developers. This
### includes:
### - struts.i18n.reload = true
### - struts.configuration.xml.reload = true
### - raising various debug or ignorable problems to errors
### For example: normally a request to foo.action?someUnknownField=true should
### be ignored (given that any value can come from the web and it
### should not be trusted). However, during development, it may be
### useful to know when these errors are happening and be told of
### them right away.
### 是否为struts开发模式
struts.devMode = false
### when set to true, resource bundles will be reloaded on _every_ request.
### this is good during development, but should never be used in production
### 是否自动加载国际化信息
struts.i18n.reload=false
### Standard UI theme
### Change this to reflect which path should be used for JSP control tag templates by default
# 默认的UI template主题
struts.ui.theme=xhtml
# UI templates的目录夹
struts.ui.templateDir=template
#sets the default template type. Either ftl, vm, or jsp
#设置默认模板类型. ftl, vm, jsp三个中的一个
struts.ui.templateSuffix=ftl
### Configuration reloading
### This will cause the configuration to reload struts.xml when it is changed
### 是否自动加载xml配置
### 这将导致配置重新载入struts.xml当它被改变
struts.configuration.xml.reload=false
### Location of velocity.properties file. defaults to velocity.properties
struts.velocity.configfile = velocity.properties
### Comma separated list of VelocityContext classnames to chain to the StrutsVelocityContext
struts.velocity.contexts =
### Location of the velocity toolbox
struts.velocity.toolboxlocation=
### used to build URLs, such as the UrlTag
struts.url.http.port = 80
struts.url.https.port = 443
### possible values are: none, get or all
struts.url.includeParams = get
### Load custom default resource bundles
### 加载附加的国际化属性文件(不包含.properties后缀)
# struts.custom.i18n.resources=testmessages,testmessages2
### workaround for some app servers that don't handle HttpServletRequest.getParameterMap()
### often used for WebLogic, Orion, and OC4J
struts.dispatcher.parametersWorkaround = false
### configure the Freemarker Manager class to be used
### Allows user to plug-in customised Freemarker Manager if necessary
### MUST extends off org.apache.struts2.views.freemarker.FreemarkerManager
#struts.freemarker.manager.classname=org.apache.struts2.views.freemarker.FreemarkerManager
### Enables caching of FreeMarker templates
### Has the same effect as copying the templates under WEB_APP/templates
### 是否缓存freemarker模版
struts.freemarker.templatesCache=false
### See the StrutsBeanWrapper javadocs for more information
struts.freemarker.wrapper.altMap=true
### configure the XSLTResult class to use stylesheet caching.
### Set to true for developers and false for production.
### 是否缓存XSLT模版
struts.xslt.nocache=false
### A list of configuration files automatically loaded by Struts
### struts自动加载的配置文件列表
struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml
### Whether to always select the namespace to be everything before the last slash or not
###
struts.mapper.alwaysSelectFullNamespace=false
### END SNIPPET: complete_file
JS中,执行字符串的函数 老是忘,写这里了。
eval(s);
摘要: 一个FooService类 有一个add方法
public class FooServiceImpl implements IFooService
{
private IFooDAO fooDAO = null;
p...
阅读全文
摘要: GreatNumber.java实现了两个超大数值(整数或浮点数都可以)的相加,也可以进行精度控制。
package org.siyn.util;
/** *//**
* “超大数”实用类
* @author siyn
* @date 2008-04-27...
阅读全文
同人类任何语言一样,Java为我们提供了一种表达思想的方式。如操作得当,同其他方式相比,随着问题变得愈大和愈复杂,这种表达方式的方便性和灵活性会显露无遗。
假如你能记住运算符优先次序表(我从来记不住),那么就可以写出更“聪明”的代码。但再深入想一层,那也会使代码的读者/维护者感到困扰。所以忘了那些次序吧,在拿不准的时候加上括号即可。
根据以下线索,确定“谁养猫?”
1,红房子在蓝房子的右边、白房子的左边(不一定紧邻)。
2,黄房子的主人来自香港,而且他的房子不在最左边。
3,爱吃比萨饼的人住在爱喝矿泉水的人的隔壁。
4,来自北京的人爱喝茅台,住在来自上海的人的隔壁。
5,吸希尔顿香烟的人住在养马的人的右边隔壁。
6,爱喝啤酒的人也爱吃鸡。
7,绿房子的人养狗。
8,爱吃面条的人住在养蛇的人的隔壁。
9,来自天津的人的邻居(紧邻)一个爱吃牛肉,另一个来自成都。
10,养鱼的人住在最右边的房子里。
11,吸万宝路香烟的人住在吸希尔顿香烟的人和吸“555”香烟的人的中间(紧邻)。
12,红房子的人爱喝茶。
13,爱喝葡萄酒的人住在爱吃豆腐的人的右边隔壁。
14,吸红塔山香烟的人既不住在吸健牌香烟的人的隔壁,也不与来自上海的人相邻。
15,来自上海的人住在左数第二间房子里。
16,爱喝矿泉水的人住在最中间的房子里。
17,爱吃面条的人也爱喝葡萄酒。
18,吸“555”香烟的人比吸希尔顿香烟的人住得靠右。
01 02 03 04 05
------------------------------------------------------------------------
北京人 上海人 香港人 天津人 成都人
③(4)(16) ①(15) [⑩+1] ⑨ ⑩
------------------------------------------------------------------------
吸健牌香烟 吸希尔顿香烟 吸万宝路香烟 吸“555”香烟 吸红塔山香烟
② ② ② ② ②
------------------------------------------------------------------------
喝茅台 葡萄酒 喝矿泉水 茶 啤酒
③(4)(16) [⑦+1] ①(16) [⑧+2] [⑧+1]
------------------------------------------------------------------------
养马 狗 蛇 猫 养鱼
③(②)(5) [⑧+6] [⑦+1] (*) ①(10)
------------------------------------------------------------------------
蓝房子 绿房子 黄房子 红房子 白房子
④ [⑧+5] [⑩+2] [⑧+3] [⑧+4]
------------------------------------------------------------------------
豆腐 面条 牛肉 比萨 鸡
⑦ ⑦ ⑥ ⑦ ⑧
------------------------------------------------------------------------
①
②(11)(18)+(14)(15)
③(4)(16)
③(5)(②)
④(1红白不在最左)(2黄不在最左)(③+7绿不在最左)
⑤(6吃鸡不在中间)(3+16比萨不在中间)(16+17面条不在中间)-->只有豆腐牛肉可能在中间
[_?⑥_]假设豆腐在中间-->[_?⑦_](16+17面条在04位)
-->[_?⑧_]([_?⑦+3比萨在02位)
-->[_?⑨_](③+6鸡不在01位)
-->[_?⑩_]([_?⑥_]+[_?⑦_]+[_?⑧_]+[_?⑨_]牛肉在01位)
-->
-->([_?⑩_]+9+15矛盾了)
⑥(⑤+[_?⑥_])
⑦(③+6鸡不在01位)(16+17豆腐面条相连)(3)
⑧(⑥+⑦)
⑨(⑥+9+15)
⑩(⑨+15)
http://wjc414.blog.163.com/blog/static/1996079820086139273844/
周围是一片充满沼气的森林
人们在其中漫无目的的走着
还有几个人坐卧在地上
恶魔缠身般,挣扎着像是想摆脱恐惧
在远处,透着阳光的地方
有一群人的背影乎现乎隐
噢,有人跌倒了
朋友们跑过来,看这他恐慌的脸
伸出手把他扶起
这人脸色渐渐好转,从恐惧中缓过神来
继续前进...
...
在森林的一角
小孩子们在树上搭上秋千
有的则爬向那有鸟窝的树枝
ps脑子里莫名的闪出这样一个画面,于是把他写了下来
国外开发者博客中有一篇有趣的文章,将程序员按水平像软件版本号那样划分为不同的版本。相对于在招聘时分为初级,中级,高级程序员,直接表明需要某种语言N版本的程序员或许更方便直接。根据作者的观点,可将WEB开发者大致分为以下几个版本:
Alpha:阅读过一些专业书籍,大多数能用Dreamweaver或者FrontPage帮朋友制作一些Web页面。但在他们熟练掌握HTML代码以前,你大概不会雇佣他们成为职业的WEB制作人员。
Beta:已经比较擅长整合站点页面了,在HTML技巧方面也有一定造诣,但还是用Tables来制作页面,不了解CSS,在面对动态页面或数据库连接时还是底气不足。
Pre Version 1 (0.1):比Beta版的开发者水平要高。熟悉HTML,开始了解CSS是如何运作的,懂一点JavaScript,但还是基于业余水准,逐步开始关心动态站点搭建和数据库连接的知识。这个版本的WEB开发人员还远不能成为雇主眼中的香饽饽。
1.0: 能够基本把控整个站点开发,针对每个问题尽可能的找到最直接的解决办法。但对可测性,可扩展性以及在不同(层)框架下如何选择最合适的WEB设计工具尚无概念。这个版本的WEB开发者有良好的技术基础,需要有进一步的帮助和指导。
2.0:懂面向对象的编程语言,理解分层开发的必要性,关注代码分离,对问题寻找更完美的解决方法,偶然也会考虑设计模式的问题,但对此仍然概念不清。属于优秀的初级开发者,能完成较松散的代码开发(相对大型严谨的站点开发而言),在面对较复杂问题寻找解决办法时需要周边人的帮助。
3.0:开始较为深入的理解面向对象编程和设计模式,了解他们的用途,当看到好的设计模式时能看透其本质,逐步关注分层的架构解决办法和可测试性。理解不同的开发语言并能说出他们的异同(例如各自的优势)。属于优秀的中级别开发者,雇主也确信他们最终能找到问题的解决办法,这个版本的人可以给1.0和2.0的开发者以指导。但他们对架构的理解仍然不够清晰,值得一提的是,只要给予一些指导,他们能很快理解并熟记做出的决定,以及选定方案的优势所在。
4.0:理解模式,重视用户的反馈。着手研究方法论,架构设计和软件开发的最佳入口。头脑中已经形成了超越开发语言,技术架构的整体方案,可根据需求解构程序。能从理论的角度,不同模式如何融合成最佳形态,将多种X-驱动的模式应用到不同的方案中。是精通多语言的高手,理解不同系统和方法论的细微差别,属于高级程序员。这个级别的人能够轻易的辅导2.0和3.0的程序员,将他们推向更高的级别。
5.0:从系统的角度考虑问题。对各种系统结构有深入研究,能对整个代码架构中的问题进行改进。在团队粘合性以及代码安全性方面有杰出贡献。对1.0到4.0版本的开发人员出现的问题能及时察觉,让整个团队保持积极性且保持兴奋的状态创建软件解决办法。举例来说,他们总是对新的技术和信息保持饥渴状态,试图用最简便的方案解决开发任务。在整个IT团队中获得信任,属于高级程序员和架构师。
那么,您属于哪个版本的程序员呢?
1。在一条街上,有5座房子,喷了5种颜色。
2。每个房子里住着不同国籍的人。
3。每个人喝着不同的饮料,抽不同品牌的香烟,养不同的宠物。
问题是:谁养鱼?
提示:
1、英国人住红色房子。
2、瑞典人养狗。
3、丹麦人喝茶。
4、绿色房子在白色房子左面。
5、绿色房子主人喝咖啡。
6、抽Pall Mall香烟的人养鸟。
7、黄色房子主人抽Dunhill香烟。
8、住在中间房子的人喝牛奶。
9、挪威人住第一间房。
10、抽Blends香烟的人住在养猫的人隔壁。
11、养马的人住抽Dunhill香烟的人隔壁。
12、抽Blue Master的人喝啤酒。
13、德国人抽Prince香烟。
14、挪威人住蓝色房子隔壁。
15、抽Blends香烟的人有一个喝水的邻居。
**以下内容为网上收集后整理而成,如有错误或描述不准确的地方或是别的请多指教.
当你使用Tomcat作为Web Server的时候,是不是会想过这样的一个问题:如何利用Tomcat建立多个Web应用 呢?
要实现这一点是很简单的,也有多种方法。(以下说明使用%tomcat_home%代表Tomcat安装目录)。
一.首先介绍一下Tomcat及server.xml.
Tomcat服务器是由一系列的可配置的组件构成,tomcat的组件可以在%tomcat_home%/conf/server.xml文件中进行配置,每个Tomcat组件和server.xml文件的一种配置元素对应.
主要分为4类:
1.顶层类元素:包括<Server>和<Service>,他们位于整个配置文件的顶层.
<Server>元素代表整个Catalina Servlet 容器,由org.apache.catalin.Server接口定义.<Server>包含一个或多个<Service>元素.
<Service>元素由org.apache.catalin.Service 接口定义.<Service>包含一个<Engine>元素,及一个或多个<Connector>元素.多个<Connector>元素共享一个<Engine>元素.
2.连接器类元素
连接器类代表了介于客户与服务之间的通信接口,负责将客户的请求发送给服务器,并将服务器的响应结果传递给客户.
<Connector>元素由org.apache.catalin.Connector 接口定义.代表了与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果.
3.容器类元素
容器类元素代表处理客户请求并生成响应的组件.包括<Engine> <Host>和<Context>.
<Engine>元素由org.apache.catalin.Engine 接口定义.每个<Service>只能包含一个<Engine>元素,<Engine>元素处理在同一个<Service>中的所有<Connector>元素收到的客户请求.
<Host>元素由org.apache.catalin.Host 接口定义.一个<Engine>元素中可以包含多个<Host>元素.每个<Host>元素定义了一个虚拟主机,她可以包含一个或多个Web 应用.
<Context>元素由org.apache.catalin.Context 接口定义.代表了运行在虚拟主机上的一个Web 应用.一个<Host>元素可以包含多个<Context>元素
4.嵌套类元素
嵌套类元素代表了可以加到容器中的组件,如<Logger> <Realm>和<Value>.
关于server.xml的更多信息,可以参考Tomcat的文档:/webapps/tomcat-docs/config/index.html
样例:
<Server>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"/>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443"/>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
二.建立多个Web应用方法:
1.通过配置多个<Context>元素(这是最为普遍的方法)
在<Host>下配置多个<Context>元素
<Context path="app1" docBase="E:/workspace/app1/WebRoot" debug="0" reloadable="true"></Context>
<Context path="app2" docBase="E:/workspace/app2/WebRoot" debug="0" reloadable="true"></Context>
然后通过 主机名:端口/应用名 访问,如: http://localhost:8080/app1 或 http://localhost:8080/app2
2.通过配置多个<Host>元素
在<Engine>下配置多个<Host>元素
<Host appBase="webapps" name="192.168.1.110">
<Context path="" docBase="E:/workspace/app1/WebRoot" debug="0" reloadable="true"></Context>
</Host>
<Host appBase="webapps" name="192.168.1.114">
<Context path="" docBase="E:/workspace/app2/WebRoot" debug="0" reloadable="true"></Context>
</Host>
然后通过 主机名:端口 访问,如: http://192.168.1.110:8080 或 http://192.168.1.114:8080
需要注意的是这样需要机器连接到局域网上.
3.通过配置多个<Service>元素(多端口 多应用)
在<Server>下配置多个<Service>元素
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8453" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"/>
<Connector port="8019" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8453"/>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Context path="" docBase="E:/workspace/app1/WebRoot" debug="0" reloadable="true"></Context>
</Host>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
<Service name="Catalina2">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8090" redirectPort="8453" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"/>
<Connector port="8019" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8453"/>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Context path="" docBase="E:/workspace/app2/WebRoot" debug="0" reloadable="true"></Context>
</Host>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
定义了两个Service分别是Catalina和Catalina2,侦听的端口分别是8080和8090
然后通过 主机名:端口 访问,如: http://localhost:8080 或 http://localhost:8090
返回数据库总结目录
| 数据类型 |
参数 |
描述 |
| char(n) |
n=1 to 2000字节 |
定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节) |
| varchar2(n) |
n=1 to 4000字节 |
可变长的字符串,具体定义时指明最大长度n,
这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。
如果数据长度没有达到最大值n,Oracle 8i会根据数据大小自动调节字段长度,
如果你的数据前后有空格,Oracle 8i会自动将其删去。VARCHAR2是最常用的数据类型。
可做索引的最大长度3209。 |
| number(m,n) |
m=1 to 38
n=-84 to 127 |
可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。
如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。
如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。
如:number(3,0),输入575.316,真正保存的数据是575。 |
| date |
无 |
从公元前4712年1月1日到公元4712年12月31日的所有合法日期,
Oracle 8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。
缺省格式为DD-MON-YY,如07-11月-00 表示2000年11月7日。 |
| long |
无 |
可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。
long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。 |
| raw(n) |
n=1 to 2000 |
可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle 8i用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。
raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。 |
| long raw |
无 |
可变长二进制数据,最大长度是2GB。Oracle 8i用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件。
在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。 |
blob
clob
nclob |
无 |
三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。
LOB有几种类型,取决于你使用的字节的类型,Oracle 8i实实在在地将这些数据存储在数据库内部保存。
可以执行读取、存储、写入等特殊操作。 |
| bfile |
无 |
在数据库外部保存的大型二进制对象文件,最大长度是4GB。
这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。
Oracle 8i可以读取、查询BFILE,但是不能写入。
大小由操作系统决定。 |
返回数据库总结目录
表A MySQL 数据类型
|
数据类型
|
描述
|
字节
|
推荐使用
|
|
SMALLINT
|
整数,从-32000到 +32000范围
|
2
|
存储相对比较小的整数。
比如: 年纪,数量
|
|
INT
|
整数,从-2000000000 到 +2000000000 范围
|
4
|
存储中等整数
例如: 距离
|
|
BIGINT
|
不能用SMALLINT 或 INT描述的超大整数。
|
8
|
存储超大的整数
例如: 科学/数学数据
|
|
FLOAT
|
单精度浮点型数据
|
4
|
存储小数数据
例如:测量,温度
|
|
DOUBLE
|
双精度浮点型数据
|
8
|
需要双精度存储的小数数据
例如:科学数据
|
|
DECIMAL
|
用户自定义精度的浮点型数据
|
变量;取决于精度与长度
|
以特别高的精度存储小数数据。
例如:货币数额,科学数据
|
|
CHAR
|
固定长度的字符串
|
特定字符串长度(高达255字符)
|
存储通常包含预定义字符串的变量
例如: 定期航线,国家或邮编
|
|
VARCHAR
|
具有最大限制的可变长度的字符串
|
变量; 1 + 实际字符串长度 (高达 255 字符)
|
存储不同长度的字符串值(高达一个特定的最大限度).
例如:名字,密码,短文标签
|
|
TEXT
|
没有最大长度限制的可变长度的字符串
|
Variable; 2 +聽 actual string length
|
存储大型文本数据
例如: 新闻故事,产品描述
|
|
BLOB
|
二进制字符串
|
变量;2 + 实际字符串长度
|
存储二进制数据
例如:图片,附件,二进制文档
|
|
DATE
|
以 yyyy-mm-dd格式的日期
|
3
|
存储日期
例如:生日,产品满期
|
|
TIME
|
以 hh:mm:ss格式的时间
|
3
|
存储时间或时间间隔
例如:报警声,两时间之间的间隔,任务开始/结束时间
|
|
DATETIME
|
以yyyy-mm-ddhh:mm:ss格式结合日期和时间
|
8
|
存储包含日期和时间的数据
例如:提醒的人,事件
|
|
TIMESTAMP
|
以yyyy-mm-ddhh:mm:ss格式结合日期和时间
|
4
|
记录即时时间
例如:事件提醒器,“最后进入”的时间标记
|
|
YEAR
|
以 yyyy格式的年份
|
1
|
存储年份
例如:毕业年,出生年
|
|
ENUM
|
一组数据,用户可从中选择其中一个
|
1或 2个字节
|
存储字符属性,只能从中选择之一
例如:布尔量选择,如性别
|
|
SET
|
一组数据,用户可从中选择其中0,1或更多。
|
从1到8字节;取决于设置的大小
|
存储字符属性,可从中选择多个字符的联合。
例如:多选项选择,比如业余爱好和兴趣。
|
对于一个完整的列表和详细描述,可以查看MySQL manual。你也可以阅读文章Choosing the Right Type for a Column。