??xml version="1.0" encoding="utf-8" standalone="yes"?>
HttpClient ?Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议?/span>客户?/span>~?/span>E工具包Qƈ且它支持 HTTP 协议最新的版本和徏议。本文首先介l?HTTPClientQ然后根据作者实际工作经验给Z(jin)一些常见问题的解决Ҏ(gu)?/span>
所以打用HttpClient的朋友,可以考虑使用HttpComponents ?jin)?br />HttpComponents 入门Q笔者认?iteye上的一文章写的不错,大家可以参?《HttpComponents入门解析?/a>
]]>
打开basec里面的text font q行~辑?x)弹Z个字体编辑的H口Q?在里面调整字体即可?br />
Ҏ(gu)二:(x)
因ؓ(f)eclipse版本众多Q所以菜单\径也?x)有所差异?q有一U方法可以不用担?j)不同版本的差异Q?br /> 开始先打开菜单 window->preferences 在左上角数据font 回RQ?eclipse׃(x)自动搜烦(ch)出可以设|字体的地方?jin)?接下来打开basec里面的text font q行~辑?x)弹Z个字体编辑的H口Q?在里面调整字体即可?nbsp;
一点小技巧希望对大家能有所帮助?br />
]]>
随着Linux应用的扩展许多朋友开始接触LinuxQ根据学?fn)Windwos的经验往往有一些茫然的感觉Q不知从何处开始学赗作Z?
Linuxpȝ理员,我看?jin)许多有关Linux的文档和书籍Qƈ为学?fn)Linux付出?jin)许多艰苦的努力。当真正获得?jin)一份正式的Linuxpȝ理工作
后,我更加深d理解?jin)Linux的灵:(x)服务与多用户。Linuxpȝ知识是非常广博的Q但是只要掌握了(jin)重点知识Q管理它q没有想象中的那么可怕。在?
面我?x)将作?f)pȝ理员的一些工作心(j)得和ȝ出来的经验系l地介绍l大家?br />
一?学习(fn)的目?br />
通过Linux的学?fn)掌握UNIX的目的想必不用多说了(jin)Q在q个|络人才wh(hun)倍增的年代,想靠技术吃饭又不想掌握|络和编E技术是不明智的。当一人第一?
听说Linuxq跃跃欲试的时候,M(x)提出几个?Q它是什?What)? Z么要用它(Why)?
怎样学习(fn)?How)?做ؓ(f)开放源码运动的主要l成部分QLinux的应用越来越q泛Q从我们qx的娱乐、学?fn),到商业、政府办公,再到大规模计的?
用。ؓ(f)?jin)满h们的需求,各种各样的、基于Linux的应用Y件层ZI只要具备了(jin)LinuX的基本功Qƈh?jin)自学的能力之后Q都可以通过长期的学?
专内容予以掌握?br />
二?从命令开始从基础开?br />
常常有些朋友一接触Linux 是希望构架|站Q根本没有想到要先了(jin)解一下Linux
的基。这是相当困隄。虽然Linux桌面应用发展很快Q但是命令在Linux中依然有很强的生命力。Linux是一个命令行l成的操作系l?_N在命
令行Q无论图形界面发展到什么水q个原理是不会(x)变的QLinux命o(h)有许多强大的功能Q从单的盘操作、文件存取、到q行复杂的多媒体图象和流媒体?
件的制作。这里笔者把它们中比较重要的和用频率最多的命o(h)Q按照它们在pȝ中的作用分成几个部分介绍l大Ӟ通过q些基础命o(h)的学?fn)我们可以进一步理?
LinuxpȝQ?br />
●安装和d命o(h)Qlogin?shutdown?halt?reboot 、mount、umount 、chsh
●文件处理命令:(x)file?mkdir?grep、dd?find?mv 、ls 、diff?cat?ln
●系l管理相兛_令:(x) df?top?free?quota 、at?lp?adduser?groupadd kill?crontab?tar?unzip?gunzip 、last
●网l操作命令:(x)ifconfig?ip 、ping ?netstat 、telnet?ftp?route?rlogin rcp 、finger 、mail 、nslookup
●系l安全相兛_令:(x) passwd 、su?umask 、chgrp?chmod、chown、chattr、sudo?pswho
三?选择一本好的Linux书籍
无论在论坛还是读者反馈中Q我们看到最多的问题往往是某个新手,在安装或使用linux的过E中遇到一个具体的问题开始提问,很多都是重复性的问题Q甚
x不少基本的问题描q都不是很清楚。这说明很多初学linux的hq没有掌握基本功。怎样才能快速提高掌握linux的基本功?
最有效的方法莫q于学习(fn)权威的linux工具书,工具书对于学?fn)者而言是相当重要的。一本错误观늚工具书却?x)让新手整个误入歧途。目前国内关?
linux的书c有很多不过_֓的不多,W者强烈徏议阅d(jing)印本?#8220;o'reilly原版linux图书”Q而且出版C还提供?jin)一个非常好的\U图
?、养成在命o(h)行下工作
一定要L在命令行下工作的?fn)惯Q要知道X-window只是q行在命令行模式下的一个应用程序。在命o(h)行下学习(fn)虽然一开始进度较慢,但是熟?zhn)后,?zhn)未?
的学?fn)之路将是以指数增加的方式增长的。从|管员来_(d)命o(h)行实际上是规则Q它L有效的,同时也是灉|的。即使是通过一条缓慢的调制解调器线路,它也
能操U几千公里以外地q程pȝ?br />
五、用Unix思维思考Linux
׃Linux是参照Unix的思想来设计的Q理解和掌握它就必须以Unix的思维来进行,而不能以Windows思维。不可否认,windows
在市(jng)Z的成功很大一部分在于技术思想的独C处。可是这个创新是在面对个人用L(fng)前提下进行的Q而面对着企业U的服务应用Q它q是有些力不从心(j)。多q来
在计机操作pȝ领域一直是二者独大:(x)unix在服务器领域QW(xu)indows在个人用户领域。由此可见,用户需求决定了(jin)所采用的操作系l。不什么原因,
如果要学?fn)LinuxQ那么首先要思维从Windows?#8220;q个河” 中拖出来Q放入Unix的vz?br />
?、学?fn)shell
对于Shell(中文名称?Q习(fn)惯Windows的读者肯定是非常陌生的,因ؓ(f)Windows只有一?#8220;Shell”(如果可以说是Shell的话)Q?
那就是Windows自己。用一句话Ҏ(gu)理解的解释就是,shell是用戯入命令与pȝ解释命o(h)之间的中介。最直观的说法,一UShell有一套自q
命o(h)。D一个容易理解的例子QLinux的标准Shel是Bash Shel;Solaris的shell是B
shell;Linux的Shell是以命o(h)行的方式表现出来的。读者可能会(x)不理解,W(xu)indows从命令行“q化”C(jin)囑Ş界面Q那么Linux现在q?
使用命o(h)行岂不是一U倒退?
当初我刚刚接触Linux时就曾有q这U想法。可是后来发玎ͼ如果使用囑Ş界面Q那么分配给应用软g的资源就了(jin)Q在h昂贵的服务器上,能够以较低的g配置实现同样的功能是非常重要的?br />
下面举例说明Q一台服务器?GB内存Q假讑օ?12MB用于处理囑Ş界面Q若要安装一个需?84MB内存的数据库软gQ惟一的办法就是扩大内存。但
是如果用命令行Q系l可能只需?4MB内存Q其它的内存可以供数据库Y件用了(jin)。用命令行Q不仅是内存Q而且CPU?qing)硬盘等资源的占用都要节省?
多。所以,作ؓ(f)服务器用命令行是优点而不是缺炏V既然Shell有这么多优点Q就必须要学?fn)它?br />
七、勤于实?br />
要增加自己Linux 的技能,只有通过实践来实C(jin)。所以,赶快找一部计机Q赶快安装一?Linux
发行版本Q然后进入精彩的Linux世界。相信对于你自己?Linux
能力必然大有斩获。此外,不像计算机的盘一P除非盘坏掉?jin)或者是资料被你Ҏ(gu)?jin),否则储存的资料将永远而且立刻的记忆在盘中。在人类记忆的曲
U中Q你必须要不断的重复l习(fn)才会(x)一件事情记得比较熟?br />
同样的,学习(fn) Linux
也一P如果你无法经常学?fn)的话,学?jin)后面的,前面的忘?jin)。你对Linux命o(h)熟?zhn)后你可以开始搭Z个小的Linux|络Q这是最好的实践Ҏ(gu)?
Linux是网l的代名词,Linux|络服务功能非常强大Q不论是邮g服务器、Web服务器、DNS服务器等都非常完善。当然你不需搭徏所有服务,可以
慢慢来。需要说明的是这个Linux|络对于初学者有两三台计机卛_。自己多动手Q不要非要等着别h帮你解决问题?br />
八、学?x)用文?br />
和私有操作系l不同,各个Linux的发行版本的技术支持时间都较短Q这对于Linux初学者是往往不够的。其实当你安装了(jin)一个完整的Linuxpȝ后其
中已l包含了(jin)一个强大的帮助Q只是可能你q没有发现和使用它们的技巧。主Linux发行版都自带非常详细的文?包括手册和FAQ)Q从pȝ安装到系
l安?针对不同层次的h的详文档,仔细阅读文档?0%问题都可在此解决。查阅经典工具书和HowtoQ特别是Howto是全球数以万计的
Linux、Unix的经验ȝ非常有参考h(hun)值通常40%的问题同样可以解冟뀂安装一个新的Y件时先看README,再看INSTALL然后看FAQ,最
后才动手安装,q样遇到问题q道ؓ(f)什么。如果说明文档不?l果Z(jin)问题再去论坛来找{案反而浪Ҏ(gu)间?br />
当查找文档时Q?一定要看文档是在何U版本、何U环境及(qing)何种状态下出现的何U结果。对于文档的有效性,
一时还无法在操作前q道结论如何,那么Ҏ(gu)个专题或问题Q阅ȝ关的多篇文章会(x)节省大量的时_(d)q可以保证尽?#8220;q净”的环境,有效避免因ؓ(f)不同操作
所造成的更多问题。操作时要仔l核对各个步骤及(qing)输出的结果,量保持与文档一致?br />
?ji)、在Linux论坛获取帮助
如果上面的措施没有解决问题,此时你就需要LinuxC的帮助了(jin)。需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会(x)得到到草?
的回{或者根本得不到M{案。越表现出在L帮助前ؓ(f)解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下论坛是否有(zhn)需要的文章。这样可以获
得事半功倍的效果?br />
你需要提供精有效的信息。这q不是要求你单的把成吨的出错代码或者数据完全{储摘录到你的提问中。如果你有庞大而复杂的试条gQ尽量把它剪裁得小
好。可能你?x)遇到这U情况,对于一个问题会(x)出现不同内容回答Q这时你需要通过实践来验证。另外把q个问题攑֜其他LinuxCh帮助也是一U选择?
如果得不到答案,请不要以为我们觉得无法帮助你。有时只是看C问题的h不知道答案Ş?jin)。这时换一个社区是不错的选择?br />
十、学?fn)专业英?br />
如果你想深入学习(fn)Linux,看不懂因为文档实在是太难?jin)。写的最好的,最全面的文档都是英语写?最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文?也都首先译成英语在国际学术杂志和网l上发表?br />
通过man、info{命令,可以从在U帮助中快速地获得所需要的命o(h)和操作方法。不要害怕v量的pȝ帮助Q仔l阅d个man或info文档׃(x)发现Q?
q些帮助几乎都按照固定格式写成一命o(h)名称、参数、参数说明、用例子、参考等。当p成ؓ(f)一U习(fn)惯,׃(x)自觉地查找或订阅互联|上感兴的英文材料。这
P在不知不觉中已l和世界同步?br />
十一、在C׃n你的l验
随着Linux应用的扩展,出现?jin)不LinuxC。其中有一些非怼U的社区:(x)水木清华、其中有一些非怼U的社区:(x)www.linuxforum.net(国内最高水qGNU站点)?a target="_blank">http://www.chinaunix.net/
(中国最大的Unix技术社?Q随着知识的不断积累,可以把自己动手解决一些前人没有遇到的问题写出文档在网l上׃nl其他读者。这个时候,也就成ؓ(f)
?jin)一?#8220;高手”。Linux的用者一般都是专业h士,他们有着很好的电(sh)脑背景且愿意协助他hQLinux高手更具有鼓励新手的文化_?br />
最后是一个笔者的Linux学习(fn)的\U图(roadmap)Q?br />
●了(jin)解Linux 的基知识Q这些包含了(jin)用户理、群l的概念、权限的观念{?
●掌握至?0个以上的常用命o(h);
●掌?tgz?rpm{Y件包的常用安装方?br />
●学?fn)添加外设,安装讑֤驱动E序(比如|卡)
●熟(zhn)Linux文gpȝ 和目录结构?br />
●掌握vi,gcc,gdb{常用编辑器Q编译器Q调试器 ?br />
●理解shell别名、管道、I/O重定向、输入和输出以及(qing)shell脚本~程?br />
●网l的基础包括Q?掌握路由概念、OSI七层|络模型、TCP/IP模型?qing)相x务对应的层次对于Linux学习(fn)非常重要的。然后学?fn)Linux环境下的l网?br />
]]>
AlphaQ阅读过一些专业书c,大多数能用Dreamweaver或者FrontPage帮朋友制作一些Web面。但在他们熟l掌握HTML代码以前Q你大概不会(x)雇䄦他们成ؓ(f)职业的WEB制作人员?/p>
BetaQ已l比较擅长整合站炚w面了(jin)Q在HTML技巧方面也有一定造诣Q但q是用Tables来制作页面,不了(jin)解CSSQ在面对动态页面或数据库连接时q是底气不?/p>
Pre Version 1 (0.1)Q比Beta版的开发者水q高。熟(zhn)HTMLQ开始了(jin)解CSS是如何运作的Q懂一点JavaScriptQ但q是Z业余水准Q逐步开始关?j)动态站Ҏ(gu)建和数据库连接的知识。这个版本的WEB开发h员还q不能成为雇ȝ中的香饽饽?/p>
1.0: 能够基本把控整个站点开发,针对每个问题可能的扑ֈ最直接的解军_法。但对可性,可扩展性以?qing)在不??框架下如何选择最合适的WEB设计工具无概念。这个版本的WEB开发者有良好的技术基Q需要有q一步的帮助和指对{?/p>
2.0Q懂面向对象的编E语aQ理解分层开发的必要性,x代码分离Q对问题L更完的解决Ҏ(gu)Q偶然也?x)考虑设计模式的问题,但对此仍然概念不清。属于优U的初U开发者,能完成较松散的代码开?相对大型严}的站点开发而言)Q在面对较复杂问题寻找解军_法时需要周边h的帮助?/p>
3.0Q开始较为深入的理解面向对象~程和设计模式,?jin)解他们的用途,当看到好的设计模式时能看透其本质Q逐步x分层的架构解军_法和可测试性。理解不同的开发语aq能说出他们的异?例如各自的优?。属于优U的中U别开发者,雇主也确信他们最l能扑ֈ问题的解军_法,q个版本的h可以l?.0?.0的开发者以指导。但他们Ҏ(gu)构的理解仍然不够清晰Q值得一提的是,只要l予一些指|他们能很快理解ƈ熟记做出的决定,以及(qing)选定Ҏ(gu)的优势所在?/p>
4.0Q理解模式,重视用户的反馈。着手研I方法论Q架构设计和软g开发的最?jng)_口。头脑中已经形成?jin)超开发语aQ技术架构的整体Ҏ(gu)Q可Ҏ(gu)需求解构程序。能从理论的角度Q不同模式如何融合成最?jng)_Ş态,多UX-驱动的模式应用到不同的方案中。是_N多语言的高手,理解不同pȝ和方法论的细微差别,属于高E序员。这个别的够轻易的辅导2.0?.0的程序员Q将他们推向更高的别?/p>
5.0Q从pȝ的角度考虑问题。对各种pȝl构有深入研IӞ能对整个代码架构中的问题q行改进。在团队_合性以?qing)代码安全性方面有杰出贡献。对1.0?.0版本的开发h员出现的问题能及(qing)时察觉,让整个团队保持积极性且保持兴奋的状态创Y件解军_法。D例来_(d)他们LҎ(gu)的技术和信息保持饥(f)状态,试图用最便的Ҏ(gu)解决开发Q务。在整个IT团队中获得信任,属于高E序员和架构师?/p>
那么Q?zhn)属于哪个版本的程序员呢?/p>
现阶DBrowserPlusq_所提供的功能包括自桌面拖曳、客L(fng)的图像处理,以及(qing)桌面通知工具{。Yahoo指出QBrowserPlus的最大特色就是可以直接新增或更新服务而不用重新启动浏览器Q甚至不需重新下蝲|页Q对使用者而言Q这代表在执行这些新应用时不用进行安装或受到其他q扰Q开发h员则能透过单一的功能呼叫检视或启动新服务?
Yahoo展示?jin)基于BrowserPlus所设计的应用范例,其中一个ؓ(f)照片上传工具Photo UploaderQ该工具参考了(jin)Flickr Uploader桌面应用E序的功能,用户可以透过览器,从桌面上拖曳照片Qƈq行诸如旋{、改变大以?qing)特效等单的~辑功能?
BrowserPlus属于q来风行的丰富网l应用程序(RIAQ^収ͼYahoo利用该^台替开发h员处理了(jin)复杂的Y件发表及(qing)更新功能Q让开发h员及(qing)使用者皆能从中受益?
Yahoo目前仅允许Yahoo?qing)其合作伙伴使用BrowserPlusQ预计在公开版本发表后才?x)供其他开发h员用。现阶段BrowserPlus支持Windows XP?qing)Mac OS X{操作系l,以及(qing)IE、Firefox?qing)Safari{浏览器Q未来将支持更多的^台?
Yahoo指出QYahoo致力于开发开攄q_Q其中一wҎ(gu)提供开发h员用来开发内容的客户端工PYahoo先前已释出Yahoo用户接口链接库(Yahoo!User Interface LibraryQYUIQ开放源码计划,BrowserPlus则是提供以浏览器为基的网站开发解x案,该^C后也朝开攄目标前进?
丰富|络应用E序q_成ؓ(f)各大业者争相竞逐的领域Q市(jng)ZcM的^台还包括微Y发表的Silverlight、Adobe的AIRQ以?qing)Mozilla基金?x)所开发的Prism{?/p>
需要一个新的框架来开发项目,香港的同事决定用DojoQDWRQ?我开始学?fn)用dojoQ时间很短,但是我还是基本上熟?zhn)了(jin)dojo的基本控件和架构。在此基上搭v?jin)项目的基本框架。这是一个单面Q基于ajax和dojo widget的系l,一切都那么的新奇,又充满挑战,但是既然dojo有这么多后台Q又有香港同事的推荐Q我昑־自信满满?/p>
框架搭徏的同事,也开始后?jin)紧锣密鼓的招兵买马Q一起都像是从零开始。陆陆箋l,招了(jin)5个程序员和一个测试员。开始了(jin)整个目的快速开发,׃需求由香港负责Q而且需求做的比较细_(d)基本上问题很。Dojo 却是ȝ(ch)不断?/p>
首先的一个坏消息是当我们做完?jin)几乎全?00个页面的时候,dojo宣布0.43不在得到支持Q取而代之是完全不同的dojo0.9?而且dojo0.9 q不是稳定的版本Q问题多多,让我们骑虎难下,最后还是决定按兵不动?随之而来Q是dojo1.0Qdojo1.1 的陆l发布,但是一直都无法让我看到希望的曙光?与之相对的是ext在国内的q泛使用和热烈追捧?/p>
Dojo 的控件有很多奇怪的地方Q日期选择控g的行为非常怪异Q与国内的用习(fn)惯很不相同。而且样式极其丑陋Q当字体攑֤~小的时候更是丑陋。显C的格式和保存的格式需要分别指定。我们修改了(jin)大量的代码?/p>
dojo 的下拉框也被用户投诉Q过滤之后一定要再选择一ơ或者按回R才能选定l果Q前台值和后台值分开操作也带来很多不变?/p>
dojo 的验证文本框颜色现实有bugQ我们不得不修改代码
dojo的对话框也有问题Q对话框中无法在弹出对话框。对话框的操作和控制很不灉|?/p>
js代码不利于管理,Ҏ(gu)发生命名冲突?/p>
致命的问题发生在目的后期,在客L(fng)pȝq行试时发现。dojo的性能非常差,在赛?G的电(sh)脑上Q一个页面显C的旉竟然需?7U。简直就是噩梦?/p>
另外使用dojo的对话框时出现cpu占用100%而且一直不回落下来?/p>
面载入完成的时候,它有整个页面重新刷Cơ,又需要花贚w外的5?s旉Q不仅花Ҏ(gu)多的旉Q而且严重影响客户体验?/p>
q有开发过E中到的无数问题,虽然一个一个被解决Q但是无疑是一ơ一ơ痛苦的煎熬?/p>
最后,在性能面前Q我被dojod打|Q如此的速度是Q何客户都无法忍受的,客户不可能ؓ(f)?jin)这个系l全部升U电(sh)脑cpu。而且q有很多未知的问题可能还没有被发觉,不如内存泄露Q可能导致资源耗尽Q内存耗尽。cpu 的占用可能在使用旉长了(jin)之后来高Q等{,q些都是我担?j)的问题?/p>
使用Ajax或者说Rich clientQ一定要谨慎啊。用新的技术和框架Q一定要谨慎Q这是我的教训,希望l同行们一个参考?/p>
也许Q你惛_?jin)个补救?gu)来挽救程?Q就是每ơ在处理完list后,我把它设|ؓ(f)nullQ不让栈帧l引用着它,q写对gc友好的代码,q不p?jin),试试Q?/p>
作用? |
当前c?/td> | 同一package | 子孙c? |
其他package |
public | √ |
√ |
√ |
√ |
protected |
√ |
√ |
√ |
× |
default | √ |
√ |
× |
× |
private | √ |
× |
× |
× |