台湾

【版本管理】windows上搭建git+apache服务器 1

git服务器最大的特点是分布式版本控制,而且更为强大的是合并功能,这点也是常用的。就抛弃svn了。在windows上面搭建svn很容易,下次再说。在windows上面搭建git版本服务器,常用msysGit +Cygwin来搭建,曾经用此种方法搭建过一次,繁琐的很,这次用git+apache来搭建,搭建很容易的。准备软件msysgit&nbsp;http://code.google.com/p/msysgit/downloads/listapache serverhttp://httpd.apache.org/download.cgi&nbsp;&nbsp;&nbsp;&nbsp; 下载包含OpenSSL的版本tortoisegit&nbsp; http://code.google.com/p/tortoisegit/downloads/list&nbsp; 和tortoisesvn一样的客户端工具,操作方便,推荐使用操作步骤1.安装msysGit&nbsp;&nbsp;&nbsp; 我安装在D:serverGit&nbsp;&nbsp;&nbsp; 注:图中请选择Run git from the Windows Command prompt&nbsp;&nbsp;&nbsp; 2.复制dll文件&nbsp;&nbsp;&nbsp; 在git中的D:serverGitlibexecgit-coregit-http-backend.exe是用来处理HTTP 请求的,直接运行会出现错误。&nbsp;&nbsp;&nbsp; 缺少libiconv-2.dll,libiconv-2.dll位于D:serverGitbinlibiconv-2.dll,将D:serverGitbinlibiconv-2.dll复制到D:serverGitlibexecgit-core,再次运行git-http-backend.exe就不会出现错误。&nbsp;&nbsp;&nbsp; git分就算是完成了。3.安装apache服务器&nbsp;&nbsp;&nbsp; 我安装在D:serverApache2.2,正常完成后,apache会自动启动,并且占用80端口,打开浏览器,进入http://localhost ,如果出现“It works!”,就说明apache服务器安装成功了。4.配置用户帐号&nbsp;&nbsp;&nbsp; 使用命令提示符进入D:serverApache2.2bin目录,输入命令:htpasswd -cmb htpassword dapeng dapeng&nbsp;&nbsp;&nbsp; 执行成功后,就会在当前目录下生成htpassword 文件,内容如下,用户名 :dapeng&nbsp; 密码:dapeng,密码是加密过的。dapeng:$apr1$uF7Kv.a9$iHcUdyOeGA7GnWWWjkd3T/             复制htpassword到D:GitRepos,D:GitRepos是作为版本库的地方。5.配置Apache服务器    进入D:serverApache2.2conf,用文本编辑器打开httpd.conf,找到 <directory />,修改如下:<directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowAllow from all</directory>然后在 httpd.conf 文件末尾追加:# Set this to the root folder containing your Git repositories.# 指定 Git 版本库的位置SetEnv GIT_PROJECT_ROOT C:/workspace# Set this to export all projects by default (by default,# git will only publish those repositories that contain a# file named “git-daemon-export-ok”# 该目录下的所有版本库都可以透过 HTTP(S) 的方式存取SetEnv GIT_HTTP_EXPORT_ALL# Route specific URLS matching this regular expression to the git http server.# 令 Apache 把 Git 相关 URL 导向给 Git 的 http 处理程序ScriptAliasMatch"(?x)^/(.*/(HEAD |info/refs |objects/(info/[^/]+ |[0-9a-f]{2}/[0-9a-f]{38} |pack/pack-[0-9a-f]{40}.(pack|idx)) |git-(upload|receive)-pack))$""D:/server/Git/libexec/git-core/git-http-backend.exe/$1"<Location />AuthType BasicAuthName "GIT Repository"AuthUserFile "D:/GitRepos/htpasswd"Require valid-user</Location>上面修改内容中,第一个指令设置 Git 的版本库位置;第二个指令表示,该目录下的所有版本库都可以通过 HTTP(S) 的方式存取;第三个指令则是让 Apache 把 Git 相关 URL 导向给 Git 的 HTTP 处理程序,也就是我们前面提到的 git-http-backend.exe。最后的 <Location /> 区段设定了虚拟根路径 "/" 的验证规则;D:/GitRepos/htpasswd 是账号密码文件,该文件可以在任何位置,也可以使任何名字,只要在这里指定即可。在httpd.conf大概46行,配置Apache的端口,默认是80,我修改为801完成上述修改之后,重启 Apache 服务。如果你希望将来透过远端存取版本库时,一律使用 http://my-server/git/* 开头的 URL,则可将 ScriptAliasMatch 指令改为 "(?x)^/git/(.*/(HEAD | ……." 6.初始化版本库…

13个代码注释的小技巧

13个代码注释的小技巧&nbsp;这篇文章是由Jos&eacute; M. Aguilar在他卓越的博客中以西班牙语的形式首发,其后Timm Martin在获得Aguilar先生的授权下,对该文章进行翻译、修改,并且在DevTopics上发布。以下13个小技巧可以使得你的代码在长时间内依然能够保持容易理解和维护。1. 对不同级别的代码进行注释对于不同级别的代码块,要使用统一的方法来进行注释。例如:对于每一个类,需要包含一段简明扼要的描述,作者和上一次修改的时间对于每一个方法,需要包含这个方法的用途,功能,参数以及返回结果当你在一个团队里面的时候,采用一套注释的标准是非常重要的。当然,使用一种大家都认可的注释约定和工具(例如C#的XML注释和Java的Javadoc)在一定程度上能推动这项任务。2. 使用段落注释首先把代码块分解成多个“段落”,每一个段落都执行单一的任务;然后在每一个“段落”开始之前添加注释,告诉阅读代码的人接下来的这段代码是干什么用的复制内容到剪贴板代码:// 检查所有记录都是正确的foreach (Record record in records){&nbsp;&nbsp;&nbsp; if (rec.checkStatus()==Status.OK)&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . . .&nbsp;&nbsp;&nbsp; }}// 现在开始进行处理Context ctx = new ApplicationContext();ctx.BeginTransaction();. . .3. 对齐注释行对于那些在行末写有注释的代码,应该对齐注释行来使得方便阅读const MAX_ITEMS = 10; // maximum number of packetsconst MASK = 0x1F;&nbsp;&nbsp;&nbsp; // mask bit TCP有些开发人员使用tab来对齐注释,而另外一些人会用空格来对齐。由于tab在不同的编辑器和集成开发环境中会有所不同,所以最佳的方法是使用空格来对齐注释行。4. 不要侮辱阅读者的智慧要避免没用的注释,例如复制内容到剪贴板代码:if (a == 5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果a等于5&nbsp;&nbsp;&nbsp; counter = 0&nbsp;&nbsp;&nbsp; //把counte设为0这不单把时间浪费在写没用的注释上面,同时也在分散读者的注意力。5. 要有礼貌应当避免没有礼貌的注释,例如“要注意一些愚蠢的用户会输入一个负数”,或者“修正由菜鸟工程师写的愚蠢得可怜的代码而导致的副作用”。这样的注释对于代码的写注释的人来说并没有任何好处,同时你永远都不会知道将来这些注释会被谁来阅读,你的老板,一个客户或者是刚才被你数落的愚蠢得可怜的工程师。6. 直截了当不要在注释里面写过多的废话。避免在注释里面卖弄ASCII艺术,写笑话,作诗和过于冗长。简而言之就是保持注释的简单和直接。7. 使用统一的风格有些人觉得注释应该让非程序员也能看懂。另外一些人觉得注释需要面对的读者只是程序员。无论如何,正如Successful Strategies for Commenting Code中所说的,最重要的是注释的风格需要统一,并且总是面向相同的读者。就自己而论,我怀疑非程序员是否会去读代码,所以我觉得注释应该面向程序员来写。8. 在内部使用特殊的标签当你在一个团队里工作的时候,采用一组一致的标签能帮助不同的程序员沟通。例如,很多团队会采用“TODO”标签来表示一段尚未完成的代码复制内容到剪贴板代码:int Estimate(int x, int y){&nbsp;&nbsp;&nbsp; // TODO: implement the calculations&nbsp;&nbsp;&nbsp; return 0;}标签注释并不会解释代码,它们寻求注意或者是传递信息。但是如果适当地使用这种技术,要记住跟进这段代码并且完成该标签传递的任务。9. 在写代码的同时添加注释当你在写代码而且记忆犹新的同时就添加注释。如果等到项目后期才添加注释,会让你事倍功半。“我没有时间写注释”,“我的时间很紧迫”和“项目已经延迟了”,这些都是不写注释的常见借口。有些工程师觉最佳的解决方法是“注释先行”。例如:复制内容到剪贴板代码:public void ProcessOrder(){&nbsp;&nbsp;&nbsp; // Make sure the products are available&nbsp;&nbsp;&nbsp; // Check that the customer is valid&nbsp;&nbsp;&nbsp; // Send the order to the store&nbsp;&nbsp;&nbsp; // Generate bill}10. 把自己想象为注释的读者(事实上就是如此)当你正在给代码写注释的时候,不仅仅为日后维护你的代码的开发者考虑,同时也设想一下如果自己就是注释的读者。Phil Haack曾经说过:“一旦一行代码被敲到文件中, 你就已经要开始维护那一行代码了。”所以,我们自己就是好(或者坏)注释的第一个受益者(或者受害者)。11. 更新代码的时候要更新注释如果注释没有随着代码的修改而更新,那么这些注释将是毫无意义的。代码和注释需要同步,否则注释只会让维护代码的开发者更加痛苦。需要特别注意的是,一些重构的工具会自动更新代码,但是却没有自动更新注释,那么注释就自然而然地过期作废了。12. 良好可读性代码是注释的金科玉律对于很多开发者来说,一个基本的原则就是:让代码自己描述自己。虽然有人怀疑这是由不喜欢写注释的程序员所倡导的一场运动,但是无需解释的代码有很大的好处,这些代码更加容易理解甚至让注释变得没有必要。例如,在我的文章Fluid Interfaces中就给大家展示了什么是清晰的无需解释的代码。复制内容到剪贴板代码:Calculator calc = new Calculator();calc.Set(0);calc.Add(10);calc.Multiply(2);calc.Subtract(4);Console.WriteLine( “Result: {0}”, calc.Get() );在这个例子里面,注释就像是违反了第4条技巧那样,变得毫无必要。要写出可读性好的代码,你需要使用适当的命名方式(在经典的Ottinger’s Rules中有阐述),保证恰当的缩进,并且采用编码风格指导。如果代码不遵守这条技巧,那么注释看起来就好像是为自己不好的代码的写道歉信一样。13. 跟你的同事分享这些技巧虽然从第10条技巧中我们已经知道了自己就是好注释的得益者,但是这些技巧对于所有的开发者来说都是很有帮助的,尤其是整个团队都有相同共识的情况下。因此,大方地跟你的同事去分享这些技巧,让我们写出更加容易理解和维护的代码。

程序猿笑话-巡逻

一晚下班回家,一民警迎面巡逻而来。突然对我大喊:站住!民警:int类型占几个字节?我:4个。民警:你可以走了。我感到很诧异。我:为什么问这样的问题?民警:深夜还在街上走,寒酸苦逼的样子,不是小偷就是程序员。

全国省市信息数据以及模型

全国省市信息数据以及模型两种不同的数据建模方式,各有优点!ORACLE数据库模型一,省市同一张表的,结构如下REGION_IDPROVINCE_NAMEREGION_CODEREGION_EN_NAMEREGION_CN_NAMEREGION_GRADEREGION_ORDERPARENT_REGION_IDREMARK****CREATE_TIME201山东省201 滨州市2 16  202山东省202 菏泽市2 16  203河南省203 郑州市2 17  204河南省204 开封市2 17  &nbsp;create table REGION&nbsp;(&nbsp;&nbsp;REGION_ID NUMBER(6) not null,&nbsp;&nbsp;PROVINCE_NAME VARCHAR2(50),&nbsp;&nbsp;REGION_CODE VARCHAR2(10),&nbsp;&nbsp;REGION_EN_NAME VARCHAR2(25),&nbsp;&nbsp;REGION_CN_NAME VARCHAR2(50),&nbsp;&nbsp;REGION_GRADE NUMBER(1),&nbsp;&nbsp;REGION_ORDER NUMBER(3),&nbsp;&nbsp;PARENT_REGION_ID NUMBER(6),&nbsp;&nbsp;REMARK VARCHAR2(255),&nbsp;&nbsp;CREATE_TIME DATE)&nbsp;模型二,省市分两张表,结构如下CIDCNAMEPID40北京市141天津市242上海市343重庆市444石家庄市545唐山市5&nbsp;create table CITY&nbsp;(&nbsp;&nbsp;CID NUMBER,&nbsp;&nbsp;CNAME VARCHAR2(32),&nbsp;&nbsp;PID NUMBER)create table PROVINCE&nbsp;(&nbsp;&nbsp;PID NUMBER,&nbsp;&nbsp;PNAME VARCHAR2(32))&nbsp;下载地址:http://dl.dbank.com/c02i3dc2dk&nbsp;&nbsp;

简化设计,更切合实际的开发

千层饼的代码,就是过度的封装,当你要明白一句代码的使用的时候,才发现他已经关联好多的代码,你还需要明白这些代码的使用,你不疯才怪。今天还和同事说起mvc的使用,在我们的项目中,mvc的使用,已经有些过度了,过度的强调了设计模式。mvc,模型(model)、视图(view)、控制层(controller)。view对应页面,即html、jsp、其他使用模版引擎的。model对应bean,而bean是数据库表的承载者。controller就是逻辑业务的处理。在目前系统在实际使用中,划分出来Action层、Service层、Dao层。按照定义简单的说Action控制页面跳转,Service控制业务逻辑、Dao控制数据访问存储,层次也是很清楚的。除此之外,还有页面,在当前,页面也是讲究框架分层的,在Service、Dao中有自己接口,有接口的实现,很可能还会有父类的接口或者类的继承,层层相叠,在实际使用,一个很好的思想,可不一定会很好用。我学习mvc分层的时候,很崇拜这些设计思想的,公司的项目中,也有着设计思想的架构,平时搞起没事来,就提这个思想、那个思想,使用久了,就越来越不觉得的,处处的设计思想,反而不好用了。今天在和同事讨论mvc的时候,说道Service层来处理业务的逻辑,我同意这种观点,可Service层就那么好用么?不见得吧!层次分的更多,需要更多的维护,结构更加的复杂。我使用过php的thinkphp,国产的php框架,很推荐这个框架,在他的框架的就没有Service层,直接的Action到Dao。也研究过人人的开源框架paoding,Action到Dao,Dao可以使用注解,简单好用,快速,上手容易。在这里说的两个框架,都属于轻量级的框架,适用于系统快速开发。最终系统的设计架构,都要以实际使用为主,只是提醒各位架构者,设计思想仅仅作为一种知道,过度的设计和使用反而会适得其反。转载一篇关于过度的设计的文章。千层饼代码 任何一个跟计算机专业沾点儿边的人都知道“意大利面条代码(spaghetti code)”指的是什么。很遗憾,这种风格的代码如今还是不少。但现在我们又有了—找不到其它更好的词汇,还是沿用面食的比喻—“千层饼代码(lasagna code)”。 千层饼代码是指代码被一层层的抽象,一层层的对象继承和引用,以及其它一些毫无意义的修饰,最终导致代码臃肿不堪,难于维护,完全跟“清晰”这个词不沾边。看着如今有些代码写成这个样子,我不由抓狂。而当你看到Turbo Pascal v3 的体积是如此的微小,而且明白这是一个功能完整的Pascal语言编译器时,你不能不问,为什么如今的应用程序和编译器会全都如此的巨大。 Turbo Pascal v3的体积小于40k,不错,4万个字节码。今天你还能找到体积这么小的有用的软件吗。大多数人甚至不能编译出一个小于1M的“Hello World”程序,这都是受我们追捧的面向对象编程的恩赐,人们似乎对“代码行数”的要求胜过代码清晰性,对“抽象和对象化”的要求胜过代码的简洁和优雅。 回想起我初进入计算机行业时,我们写很少的代码能完成很多的事。而如今,我们写了成千上万行代码,能完成的事却变少了。如此的悲哀,让人想哭,或无奈的的甩甩手,走开。 还有几点亮光。还有一些人在写短小漂亮的代码。但他们显得越来越稀有,尤其是在最近热衷于写优雅、短小、漂亮的代码的人过世的时候。Dennis Ritchie(C语言的创始人)会告诉你可以用小程序做大事。他强调说:算法是你要解决的问题的核心。创造漂亮和精心设计的东西,值得人们永远研究,就像Thompson版的正则表达式算法! 也许只有像我这样的年龄和天生的坏脾气的人才会这样的抱怨,但这些年来很多系统都让我痛苦。它们写的如此的丑陋,设计的如此糟糕。也有亮点,但少之又少。无怪乎,现在的孩子都不愿意去研究计算机科学。以前我们对各种算法的固有的美丽的追求,现在变成了在键盘上的一痛乱敲,输入成百上千行代码,期望编译器能编译通过。Lisp,Smalltalk或APL等语言的优雅哪里去了?甚至Fortran也比现在的许多受人追捧的那些烂编程语言优雅的多。为什么没有人回去研究那些面向算法的语言、去改进它们? 我曾经对我的孩子说,这么多好的语言如今只剩下C语言,这真是悲哀。不错,一些特定领域还有一些很漂亮很小的语言存在,但会成为主流吗?不会。这就是一场灾难。有些东西,比如Python,如果它不把一个面向对象的系统嵌入到体内,也许它会很不错。唉。译者注:lasagna,字典的解释是,“烤奶酪肉馅面条:通过烘烤带有一层层的番茄汁和填有如奶酪和肉馅等调料的面团而制成的菜肴”,但这解释我听起来更像是月饼沾大酱。这里暂且用一个比较形象的东西:千层饼。原文网址:http://www.aqee.net/lasagna-code/

IT人员如何找到自己的时间?

如何找到自己的时间,应该属于是时间管理的范畴吧!而且不仅仅是IT人员如何找到自己的时间,对于各行各业的人都适用的。有时间了,如何利用时间也很关键的,而更多的时间应该去思考。IT人员如何找到自己的时间?不知道你是不是有和我一样的体会,作为IT人员(软件开发、网络运营、项目管理等等),仿佛我们每天都有做不完的事,写代码、做维护、以及我们最讨厌的,无休止的会议。但是,除了工作,我们也需要生活,也要关心粮食、关心电视,晚上检查一下不热的暖器,或者修一下卫生间不停滴水的水龙头。家人需要你的照顾,你还想看看最新的失恋三十三天,或者追一追美剧、找几个人去踢踢球、打打电子游戏机。以正常上班计算,早上8点半到岗,晚上6点钟下班,再加上路上的时间,还有多少小时能做你自己想做的事呢?经过一段时间的摸索,我找到了几条小技巧,和园子里的各位分享一下,希望能给大家一点启示: 1、注重碎片时间的利用 等车、坐地铁,这样的时间,可以用来收听有声书、收音机你喜爱的节目。 给自己做一个计划,把最近想关注的内容列一下,然后整理成一个列表,把可以通过“听”的方式获取的东西存到你的手机里。随时可以听。 会议、做系统、编译等中间的等待时间,是处理邮件、GR中的未读的好机会。 在手机上安装GR的离线浏览器、EVERNOTE(或者你的知识管理软件),设置每天早上与服务器同步。这样,在一天中,只要有空,你就可以消灭一条未读。关于GR与EVERNOTE建立自己的知识系统的方法,我会在以后的文章中讲到。2、向公司要时间 我们的每个白天都是在公司中度过的,为什么非要把看书和学习的时间安排到晚上呢。其实在中午、或者某个工歇时间,完全可以成为我们消灭一本书的好机会。 中午饭后,与同事们一起打打羽毛球也是不错的选择,连去健身房的时间都省了。3、每天早起半小时 早上的时间最有效率,如果你打算学习一门语言,或者某个方面的知识,早起半小时,充分利用它。白天困怎么办?晚上早睡半小时呗。熬夜对人的健康的损害那么大,为什么 不早睡呢?还可以和家人的时间同步。4、把机械的事让电脑去做 有一些事情,特别是工作中的事,有人喜欢RTX、电话、短信、邮件中问个不停。做一个机器人软件,对于某个关键字的事情自动处理。哈哈哈哈 (比如经常有人让我传给他最新的加密锁号列表及使用方法)5、向别人要时间 我们有一个毛病,总觉得有些事只有自己才能做好,只有自己做才放心 ,其实,完全可以把一些事安排给别人或者委托他人帮你做。怕他做不好?写一个操作手册给他就是了(前提是这是个经常要做的事)。6、买一些时间 打扫卫生、擦窗户这样的家务活,做为新好男人,是周末少不了的活吧。其实,可以打个电话让专业的保洁人员来帮你做,一来做得快,二来你可以用这个时间读一本书,与家人看部电影,或者干脆睡上一觉。如果你说没有时间,向别人买,是来得最快的。算一下你的时间成本,和别人的时间成本,你就想通了。以前我总是想把晚上的时间独立出来,自己去学东西,或者是做自己喜欢的事。结果呢,因为忙了一天,一来身体很累了,需要休息,二来少了与家人的沟通,也感觉很不好。通过以上几条,时间多起来了。原文网站上面的广告一大推,不知道为什么发布到上面去啊!原文网址:http://www.cnblogs.com/ranran/archive/2011/11/13/2247461.html

博客功能升级

周末两天就出去买过两次饭,其他的时间都在调试博客的功能,对原来博客的主题,做的大刀阔斧的修改,在做博客升级之前,我做了一个小计划,把需要的功能分解、分阶段的修改开发,目前博客主题的版本我定义为2.0的预览版,部分功能还都是个摆设,不能用的,增加不少的页面效果,肯定会牺牲性能,毕竟是作为预览版,先实现功能,在准备以后的调整。本次升级了一下的内容:内容页增加随机文章推荐文章增加作者版权介绍文章增加返回链接增加上一页下一页tab页面排名现在位置随机文章推荐栏目增加文字内容评论增加快捷键发布时间到分钟边框圆角增加推荐栏目调整页面颜色为红色、黑色为主题色,背景为白色增加百度分享去掉分类的灰色条增加博客统计汉化修正的部分评论问题&nbsp;&nbsp;&nbsp;还有一些模板自定义、公告等的功能,还在设计中,我是个前端专业酱油,PHP也是半吊子,调试耗费的时候,要比写个东西费时的多的很,不过呢,多写几个,熟能生巧,也在了解了一些东西哈。目前大量的功能都是硬编码,就是功能都是写到后台程序中的,以后的都要把这些实现可定制化的,前台配置一下就ok!

C++的箭头操作符和点操作符[c++]

最近在回顾c++的东西,现在java搞的多,c++的东西忘得也差不多啦!看了一些基础性的东西,整理一下,也算做个笔记吧!c++的重点之一:C++的箭头操作符(->)和点操作符(.)都是用在结构这块的,c++的结构类似于java的对象,但是java毕竟是真正面向对象的,看到的一切都是对象,要有对象,就要用new来创建了。而c++仅仅是支持面向对象,比如c++中的一个例子。class A{&nbsp;&nbsp;&nbsp; private:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a;&nbsp;&nbsp;&nbsp; public:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a = 10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void play()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%d",a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}};int main(){&nbsp;&nbsp;&nbsp; //创建一个指针&nbsp;&nbsp;&nbsp; A *a = new A;&nbsp;&nbsp;&nbsp; a->play();&nbsp;&nbsp;&nbsp;//定义一个变量对象;&nbsp;&nbsp;&nbsp;A b;&nbsp;&nbsp;&nbsp;b.play();}&nbsp;&nbsp;&nbsp;用这个例子的结果都是显示数字10,我们需要得出的结果而是:如果使用指针,那就是用“->”箭头操作符,定义变量那就用“.”点操作符。而使用指针还是定义变量,我认为是是否需要对变量进行数据的改变,如果仅仅是做传值,那就定义变量,如果是做数据改变(比如说这个值需要存贮),那就用指针来做。okay!继续学习。。。

温柔的慈悲

温柔的慈悲[flv width="160" height="32"]http://www.8box.cn/feed/000000_s_531356_/mini.swf[/flv]

在myeclipse中实现struts2的登录例子

  在myeclipse中实现struts2的登录例子  环境:myeclipse 6.0.1 GA  jdk:myeclipse自带  tomcat:6.0  struts2:2.1.6  过程:  1、使用myeclipse建立web工程  2、由于在struts2中使用过滤器调用action的机制,所以需要在web.xml中添加过滤器代码    struts2    org.apache.struts2.dispatcher.FilterDispatcher        struts2  /*    3、将struts2的所需的jar拷到lib目录下  commons-logging-1.1.jar  freemarker-2.3.13.jar  ognl-2.6.11.jar  struts2-core-2.1.6.jar  xwork-2.1.2.jar  在许多教程中都写着,只要有以上5个jar包就可以了,但是我在使用中却不行,添加了commons-fileupload-1.2.1.jar这个jar包以后,才可以正确执行。  4、在src建立struts.xml文件,    http://struts.apache.org/dtds/struts-2.0.dtd        /result.jsp        5、建立LoginAction文件  6、建立login.jsp和result.jsp文件  7、发布