??xml version="1.0" encoding="utf-8" standalone="yes"?> 2.大脑集中_֊最多只?5分钟。这是对成h而言Q所以学?0?0分钟后就应该休息10分钟。你可以利用q段旉做点家务Q?0分钟后再回来l箋(hu)学习(fn)Q效果会(x)更好? 3.大脑需要休息,才能学得快,记得牢。如果你感到很篏Q先拿出20分钟睡一?x)儿再l学?fn)? 4.大脑像发动机Q它需要燃料。大脑是一台珍贵而复杂的机器Q所以你必须l它补充"优质燃料"。垃N品、劣质食品、所有化学制品和防腐剂,不仅损害w体Q还削弱智力。英国一Ҏ(gu)研究昄Q饮食结构媄(jing)响你的智商? 5.大脑是一个电(sh)气化学活动的h。电(sh)和化学物质在水里能更好地动Q如果你脱水Q就无法集中_֊。专家徏议,日常生活要多喝水Q保持n体必需的水分,而且一天最好不要饮用相同的饮料Q可以交换着喝矿泉水、果汁和咖啡{。另外,研究资料昄Q经常性头痛和脱水有关? 6.大脑喜欢问题。当你在学习(fn)或读书过E中提出问题的时候,大脑?x)自动搜索答案,从而提高(sh)的学?fn)效率。从q个角度_(d)一个好的问题胜q一个答案? 7.大脑和n体有它们各自的节奏周期。一天中大脑思维最敏捷的时间有几段Q如果你能在大脑功能最z跃的时候学?fn),p节省很多旉Q会(x)取得很好的学?fn)效果? 8.大脑和n体经怺。如果n体很懒散Q大脑就?x)认Z正在做的事情一炚w不重要,大脑也就不会(x)重视你所做的事情。所以,在学?fn)的时候,你应该端坐、n体稍微前倾,让大脑保持警觉? 9.气味影响大脑。香料对保持头脑清醒有一定功效。薄荗柠檬和桂皮都值得一试? 10.大脑需要氧气。经常到户外走走Q运动运动n体? 11.大脑需要空间。尽量在一个宽敞的地方学习(fn)Q这对你的大脑有好处? 12.大脑喜欢整洁的空间。最q的研究昄Q在一个整z、有条有理的家庭长大的孩子在学业上的表现更好。ؓ(f)什么,因ؓ(f)接受?jin)安排外部环境的训练后,大脑学?x)?jin)组l内部知道的技巧,你的记忆力会(x)更好? 13.压力影响记忆。当你受到压力时Q体内就?x)生皮质醇Q它?x)杀Lv马状Hv里的脑细?yu),而这U大脑侧面脑室壁上的隆v物在处理长期和短期记忆上起主要作用。因此,压力影响记忆。最好的Ҏ(gu)是ȝ? 14.大脑q不知道你不能做哪些事情Q所以需要你告诉它。用自言自语的方式对大脑说话Q但是不要提供消极信息,用积极的话代替它? 15.大脑如同肌肉。无论在哪个q龄D,大脑都是可以训练和加强的。毫无疑问,不要LM借口。不要整天呆在家里无所事事Q这只能使大脑老化的速度加快。专业运动员每天都要训练Q才能有H出表现。所以你一定要"没事找事"Q不要让大脑老闲着? 16.大脑需要重复。每一ơ回记忆间隔的旉短Q记忆的效果好Q因为多ơ看同一事物能加深印象,但只看一ơ却往往Ҏ(gu)忘记? 17.大脑的理解速度比你的阅读速度快。用铅笔或手指辅助阅dQ不Q用眼睛。用这U方法的时候,需要你的眼睛更快地Ud? 18.大脑需要运动。站着办公效率更高? 19.大脑?x)归c,也会(x)联系。如果你正在学习(fn)某种东西Q不妨问问自己:(x)它让我想起了(jin)什么?q样做能帮助你记忆,因ؓ(f)大脑能把你以前知道的知识和新知识联系h? 20.大脑喜欢开玩笑。开?j)和学?fn)效率成正比,?j)情好Q学到的知识p多,所以,让自己快乐v来吧Q?br /> (tng) IT界的技术风潮是不可以追赶的Q而且也没有能力去q赶。我时常?span lang="EN-US"> (tng)见自qDDMM们把课本扔了(jin)Q去卖些h不菲的诸?span lang="EN-US">C#, (tng)VB.Net (tng)q样的大部头Q这让我感到非常痛心(j)?/font> (tng)
.大脑喜欢色彩。^时用高质量的有色笔或用有色纸Q颜色能帮助记忆?/p>
]]>
(tng) (tng) (tng) 而许多搞不清指针是咋回事?span lang="EN-US">BBS站友眉飞色舞的讨?span lang="EN-US">C#里面可以不用指针{等则让我觉得好W?span lang="EN-US">C++p当年?span lang="EN-US">ASP一P?/span>忽如一夜春风来Q千?wi)万树(wi)梨花开?/span>Q结果许多学校的信息学院成了(jin)“Web (tng)学院?/span>?/font> (tng)
(tng) (tng) (tng) 96,97U的不少大学生都dWeb?jin)。当然我没有M歧视某一行业的意识。我只是觉得?span lang="EN-US"> (tng)果他们把q赶q些旉技术的旉多花一点在基础的课E上应该是可以走得更q的?/font> (tng)
(tng) (tng) (tng) 几个误区 (tng)
(tng) (tng) (tng) 初学者对C++风潮的追赶其实也只是学习(fn)q程中经帔R到的几个误区之一。我用一些实际的例子来说明这 (tng)些现象,你可以按部就班的看看自己是不是属于其中的一U或者几U:(x) (tng)
(tng) (tng) (tng) 认ؓ(f)计算机技术等于编E技?/font>: (tng)
(tng) (tng) (tng) 有些人即使没有这个想法,在潜意识中也有这L(fng)冲动。让我奇怪的是,许多信息学院的学生也有这L(fng)念头。认机专业是~程专业Q与~程无关的,或者不太相关的评他统l都不管Q极端的学生只要书上没带?/span>~程?/span>两个字他׃看?/font> (tng)
(tng) (tng) (tng) 其实~程只是计算机技术应用过E中一U复杂性最低的力_Q这是Z?span lang="EN-US">IT业最底层的h是程序员Q?span lang="EN-US"> (tng)CODERQ。计机技术包括了(jin)多媒体,计算机网l,人工Q模式识别,理信息pȝ{等q些斚w?/font> (tng)
(tng) (tng) (tng) ~程工作只是在这些具体技术在理论研究或者工E实늚q程中表辄法的q程。编E的Z一定对计算机技术的?jin)解׃定很高。而一个有的现象是,不少大师U的计算机技术研I者是不懂~程的。网上的炒作和现实中良好的工作待遇把~程q种力_秘化了(jin)。其实每一个程序员?j)里都明白,自己q些东西Q学的时候ƈ不比其它专业难,所以自然也不会(x)高档到哪里去?span lang="EN-US"> (tng)
: (tng)
(tng) (tng) (tng) 我见q一本女生的《计机|络原理》教材,q个女生象小学生一样在书上划满?jin)横杠杠Q笔记做得满满的Q打印出来一定比教材q厚。我不明白的是,象计机|络原理q样的课E有必要做笔讎ͼ我们的应试教育的害?jin)不学生,在上《原理》这一c课E的时候许多学生象学《马列原理》一样逐字背诵记忆?/font> (tng)
(tng) (tng) (tng) q乃是我见过的最愚蠢的行为。所谓《原理》,x(chng)需要掌握它Z么这样做Q学?span lang="EN-US">whyQ而不?span lang="EN-US">howQ怎样做)(j)。极端认真的学生背下以太|的|线最大长度,数据帧的长度Q每个字D늚意义Q?span lang="EN-US">IP报头的格式等{,但是忘(sh)(jin)路由的原则,忘(sh)(jin)TCP/IP协议设计的宗旨。M许多?jin)大量的旉把书背得滚瓜烂熟却等于什么也没学?/font> (tng)
(tng) (tng) (tng) 在学?fn)编E的时候这些学生也是这P他们切的记?span lang="EN-US">C++语法的各个细节。看完了(jin)C++教程后看?span lang="EN-US">Thinking (tng)in (tng)C++》(实是好书)(j)Q?span lang="EN-US">Inside (tng)C++》,?span lang="EN-US">C++ (tng)reference》,this (tng)C++,thatC++…?/span>Q然后是|上各种各样的关?span lang="EN-US">C++语法的奇闻怺Q然后发现自己又忘(sh)(jin)C++的一些语法,最后回头l恶?span lang="EN-US">?/span>。有个师弟就跟我_(d)(x)“C++ (tng)太难?jin),学?jin)q里忘(sh)(jin)那里Q学?jin)承忘(sh)(jin)模ѝ?span lang="EN-US">?/span>我的回答道:(x)?/span>你不d容易了(jin)?/span>。我q没有教坏他Q只是告诉他Q死?span lang="EN-US">C++的语法就和孔已己炫耀茴香豆的茴字有几U写法一h无意义。你Ҏ(gu)不需要对?span lang="EN-US">C++语法太关?j),动手~程是?jin),有不记得的地方一?span lang="EN-US">MSDNq马搞定。我有个l论是Q实际的开发过E中对程序语法的?jin)解是最微不道的知识。这是ؓ(f)什么我在ؓ(f)同学?span lang="EN-US">BasicQ我以前从没有学q它Q写一个小E序的时候,只花?jin)半个小时看了(jin)看语法Q然后再用半个小时完成了(jin)E序Q而一个小时后我又完全忘记?span lang="EN-US">Basic (tng)的所有关键字?/font> (tng)
(tng) (tng) (tng) 不顾基础Q盲目追赶时髦技术:(x) (tng)
(tng) (tng) (tng) l于点到题目上来?jin)。大多数的h都希望自q东西能够马上跑v来,变成钱。这U想法对一个已l进入职业领域的E序员或者项目经理来说是合理的,而且IT技术进步是如此的快Q不跟进是׃。但是对于初学者来_(d)其是时间充裕的大中专在校生Q,q种x(chng)是另解的。一个ƈ未进入到行业竞争中来的初学者最大的资本便是他有_的时间沉下心(j)来学?fn)基性的东西Q学?span lang="EN-US">why (tng)而不?span lang="EN-US">how。时髦的技术往往Ҏ(gu)掌握Q而且来容易掌握,q是商业利益的驱使,Z(jin)最大化的降低Y件开发的成本。但?span lang="EN-US">IT领域内的现实是q样Q越Ҏ(gu)掌握的东西,学习(fn)的h多Q而且淘汰得越快。每一ơ新的技术出来,都有许多初学者跟q,q些初学者由于缺乏必要的基础而得自己在跟进的过E中p大量的时_(d)而等他学?x)?jin)Q这U技术也快淘C(jin)。基的课E,比方数据l构Q操作系l原理等{虽然不能让你立马就实现一?span lang="EN-US">linuxQ这是许多h嘲笑理论评无用的原因)(j)Q但它们能够显著的减你在学?fn)新技术时学习(fn)曲线的坡度。而且对于许多关键的技术(比方Win32 (tng)SDK (tng)E序的设计,DDK的编E)(j)来说甚至是不可或~的?/font> (tng)
(tng) (tng) (tng) 一个活生生的例子是我和我的一个同学,在大一时我q找不到开机按U,他已l会(x)写些单的汇编E序?jin)。我把大二的所有时间花在了(jin)汇编Q计机体系l构Q数据结构,操作pȝ原理{等q些评的学?fn)上Q而他则开始学?span lang="EN-US">HTML?span lang="EN-US">VBQƈq赶ASP的潮?hu)。大三的时候我开始学?span lang="EN-US">Windows (tng)操作pȝ原理Q学?span lang="EN-US">SDK~程Q时间是漫长的,q时我才能够?span lang="EN-US">VC开发出象模象样的应用程序。我曾一度因为同学的E序已经能够q行而自p在学?fn)如何创建对话框而懊gԌ但(f)到毕业才发现自己的选择是何{的正确。和我谈判的公司开出的薪水是他的两倍还多。下面有一个不很恰当的比方Q假讑֭?span lang="EN-US">VB~程需?span lang="EN-US">4个月Q学?fn)基评?span lang="EN-US">VC的程序设计需?span lang="EN-US">1q。那么如果你先学VBQ再来学?fn)后者,旉不会(x)减少Q还?span lang="EN-US">1q_(d)而反q来Q如果先学习(fn)后者,再来?span lang="EN-US">VBQ也怽只需?span lang="EN-US">1个星期就能学得非常熟l?/font> (tng)
(tng) (tng) (tng) 几个重要的基评 (tng)
(tng) (tng) (tng) 如果你是学生Q或者如果你有充的旉。我你仔l的掌握下面的知识。我的徏议是针对那些希望?span lang="EN-US">IT技术上有所成就的初学者。同时我q列Z(jin)一些书目,q些书应该都q可以在书店买到。说实在的,我在d他h的文章时最大的?j)愿是希望作者列Z个书单?/font> (tng)
(tng) (tng) (tng) 大学pQ不要觉得好W。我极力推荐q门评是因为没有专业文档的阅读能力是不可想象的。中文的译往往在猴q马月才?x)出来,而现在的许多出版Cֹ脆就直接?span lang="EN-US">E文印刷上厅R学?fn)的?gu)是强q自q原版的教材,开始会(x)看不懂,用多?jin)自然熟l。吃得苦下得狠心(j)l对是Q何行业都需要的品质?/font> (tng)
(tng) (tng) (tng) 计算Zpȝ构和汇编语言Q关于体pȝ构的书遍地都是,而且也大同小异,倒是汇编有一本非常好的书。?span lang="EN-US">80x86汇编语言E序设计教程》(清华大学出版C,黑色面Q杨季文著)(j)。你需要着重学?span lang="EN-US">386后保护模式的E序设计。否则你在学?fn)现代操作系l底层的一些东西的时候会(x)觉得是在看天书?/font> (tng)
(tng) (tng) (tng) 计算机操作系l原理-我们的开发L在特定的操作pȝ上进行,如果不是Q只有一U可能:(x)你在自己实现一个操作系l。无论如何,操作pȝ原理是必ȝ。这p我们Z个芯片制作外围设备时Q芯片基本的工作时序是必需?jin)解的。这一cM也很多,我没有发现哪一本书非常Z。只是觉得在看完?jin)这些书后如果有I就应该看看?span lang="EN-US">Inside (tng)Windows (tng)2000?span lang="EN-US">(微Y出版C,我看的是E文版的,中文的书名想必是Windows (tng)2000 (tng)技术内q之cd)。关于学?fn)它的必要性,ZDNET上的另一文章已l有q论q?/font> (tng)
(tng) (tng) (tng) 数据l构和算法-q门评能够军_一个hE序设计水^的高?sh),是一门核?j)课E。我首选的是清华版的(朱战立,刘天Ӟ(j)。很多h喜欢?span lang="EN-US">C++版的Q但我觉得没有必要?span lang="EN-US">C++的语法让法实现q程变得复杂多了(jin)Q而且
(tng) (tng) (tng) 软g工程Q这门课E是到后来p发现它的重要Q虽然刚开始看时就象看马哲一样不知所云。我的徏议是看《实用Y件工E》(黄色Q清华)(j)。不要花太多的时间去记条条框框,看不懂就跌厅R在每次自己完成?jin)一个Y件设计Q务(不管是练?fn)还是工作?j)以后再来回顾回顾Q每ơ都?x)有收获?/font> (tng)
(tng) (tng) (tng) Windows (tng)E序设计Q《北京大学出版社Q?span lang="EN-US">Petzold著》我M企图设计Windows (tng)E序的h在学?span lang="EN-US">VC以前仔细的学完它。而且前面的那本?span lang="EN-US">Inside (tng)Windows (tng)2000》也最好放到这本书的后面读?/font> (tng)
(tng) (tng) (tng) 在这本书中,没有C++Q没?span lang="EN-US">GUIQ没有控件。有的就是如何用原始?span lang="EN-US">C语言来完?span lang="EN-US">Windows (tng)E序设计。在 (tng)学完?jin)它以后Q你才会(x)发现VC其实是很Ҏ(gu)学的。千万不要在没有看完q本书以前提前学?span lang="EN-US">VCQ你最好碰都不要碰。我知道的许多名校甚至都已经用它作ؓ(f)教材q行授课。可见其重要?/font> (tng)
(tng) (tng) (tng) 上面的几门课E我认ؓ(f)是必学的重要评Q如果你惛_Windows (tng)E序员)(j)?/font> (tng)
(tng) (tng) (tng) 对于其它的课E有q样单的选择Ҏ(gu)Q如果你是计机pȝQ请学好你所有的专业基础课。如果不是,请参照计机pȝ评表。如果你发现自己看一本书时无法看下去?jin),L(fng)C的最后,看看它的参考文献,扑ֈ它们q学?fn)它们,再回头看q本书。如果一本书的书名中带有?/span>原理?/span>两个字,你一定不要去记忆它其中的l节Q你应该以一天至?span lang="EN-US">50늚速度掌握其要领。尽可能多的在计机上实践一U理论或者算法?/font> (tng)
(tng) (tng) (tng) 你还可以?span lang="EN-US">CSDN上阅d许多书评。这些书评能够帮助你军_M么样的书?/font> (tng)
(tng) (tng) (tng) (tng) 日三省乎?/font> (tng)
(tng) (tng) (tng) 每天ȝ书太多,Ҏ(gu)让hq失方向。一定要在每天晚上想惌己学?jin)些什么,q有些什么相关的东西需要掌握,自己对什么最感兴,在一本书上花的时间太长还是不够等{。同时也应该多想x(chng)来最有可能出现的应用Q这栯够让你不是追赶技术潮?hu)而是引领技术潮?hu)。同Ӟ努力使用现在已经掌握的技术和理论d作具有一定新意的东西。坚持这样做能够让你真正成ؓ(f)一个Y?span lang="EN-US">?/span>研发?span lang="EN-US">?/span>而不仅仅是一?span lang="EN-US">CODER?span lang="EN-US"> (tng)
(tng)
(tng) (tng) (tng) q是对初学者最后的忠告。把每个星期?span lang="EN-US">SC或?span lang="EN-US">CS的时间压~到最,不玩它们是最好的。同Ӟ如果你的ASP技术已l能够来钱,甚至有公司请你兼职的话,q就证明你的天䆾能够保证你在努力的学?fn)之后取得更好的收益Q你应该d更复杂的东西。眼光放长远一些,q无论是对谁都是适用的?/font> (tng)
(tng) (tng) (tng) 怿你已l能够决定是否学?span lang="EN-US">CQ或者什么时候去学它?jin)?/font>
]]>
import java.io.*;
import java.util.List;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
/**
(tng)* q个cL供一?JDom 对象常用的方法?br /> (tng)*
(tng)*/
public class JDomUtil {
(tng)/**
(tng) * Ҏ(gu)指定路径的XML文g建立JDom对象
(tng) *
(tng) * @param filePath
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) XML文g的\?br /> (tng) * @return q回建立的JDom对象Q徏立不成功q回null ?br /> (tng) */
(tng)public static Document buildFromFile(String filePath) {
(tng) (tng)try {
(tng) (tng) (tng)SAXBuilder builder = new SAXBuilder();
(tng) (tng) (tng)Document anotherDocument = builder.build(new File(filePath));
(tng) (tng) (tng)return anotherDocument;
(tng) (tng)} catch (JDOMException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)} catch (NullPointerException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)} catch (IOException e) {
(tng) (tng) (tng)// TODO 自动生成 catch ?br /> (tng) (tng) (tng)e.printStackTrace();
(tng) (tng)}
(tng) (tng)return null;
(tng)}
(tng)/**
(tng) * Ҏ(gu)XML 字符?建立JDom对象
(tng) *
(tng) * @param xmlString
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) XML格式的字W串
(tng) * @return q回建立的JDom对象Q徏立不成功q回null ?br /> (tng) */
(tng)public static Document buildFromXMLString(String xmlString) {
(tng) (tng)try {
(tng) (tng) (tng)SAXBuilder builder = new SAXBuilder();
(tng) (tng) (tng)Document anotherDocument = builder
(tng) (tng) (tng) (tng) (tng).build(new StringReader(xmlString));
(tng) (tng) (tng)return anotherDocument;
(tng) (tng)} catch (JDOMException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)} catch (NullPointerException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)} catch (IOException e) {
(tng) (tng) (tng)// TODO 自动生成 catch ?br /> (tng) (tng) (tng)e.printStackTrace();
(tng) (tng)}
(tng) (tng)return null;
(tng)}
(tng)/**
(tng) * Ҏ(gu)Dom对象建立JDom对象
(tng) *
(tng) * @param Dom
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) org.w3c.dom.Document对象
(tng) * @return q回建立的JDom对象Q徏立不成功q回null ?br /> (tng) */
(tng)public static Document buildFromDom(org.w3c.dom.Document Dom)
(tng) (tng) (tng)throws JDOMException, IOException {
(tng) (tng)org.jdom.input.DOMBuilder builder = new org.jdom.input.DOMBuilder();
(tng) (tng)Document jdomDoc = builder.build(Dom);
(tng) (tng)return jdomDoc;
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)使用XMLOutputer一个JDom对象输出到标准输?gu)备,使?GBK ~码
(tng) *
(tng) * @param myDocument
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要被输出的JDom对象
(tng) */
(tng)public static void outputToStdout(Document myDocument) {
(tng) (tng)outputToStdout(myDocument, "GBK");
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)使用XMLOutputer一个JDom对象输出到标准输?gu)?br /> (tng) *
(tng) * @param myDocument
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要被输出的JDom对象
(tng) * @param encoding
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 输出使用的编?br /> (tng) */
(tng)public static void outputToStdout(Document myDocument, String encoding) {
(tng) (tng)try {
/* (tng) (tng) (tng)XMLOutputter outputter = new XMLOutputter();
(tng) (tng) (tng)Format fm = Format.getRawFormat();
(tng) (tng) (tng)fm.setEncoding(encoding);
(tng) (tng) (tng)outputter.setFormat(fm);*/
(tng) (tng) (tng)XMLOutputter outputter = new XMLOutputter("",true,encoding);
(tng) (tng) (tng)outputter.output(myDocument, System.out);
(tng) (tng)} catch (java.io.IOException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)}
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)JDom对象转换字符?
(tng) *
(tng) * @param document
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要被{换的JDom对象
(tng) */
(tng)public static String outputToString(Document document) {
(tng) (tng)return outputToString(document, "GBK");
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)JDom对象转换字符?
(tng) *
(tng) * @param document
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要被{换的JDom对象
(tng) * @param encoding
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 输出字符串用的~码
(tng) */
(tng)public static String outputToString(Document document, String encoding) {
(tng) (tng)ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
(tng) (tng)/* (tng) (tng) (tng)XMLOutputter outputter = new XMLOutputter();
(tng) (tng)Format fm = Format.getRawFormat();
(tng) (tng)fm.setEncoding(encoding);
(tng) (tng)outputter.setFormat(fm);*/
(tng) (tng)XMLOutputter outputter = new XMLOutputter("",true,encoding);
(tng) (tng)try {
(tng) (tng) (tng)outputter.output(document, byteRep);
(tng) (tng)} catch (Exception e) {
(tng) (tng)}
(tng) (tng)return byteRep.toString();
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)List对象转换字符?
(tng) *
(tng) * @param document
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要被{换的JDom对象
(tng) */
(tng)public static String outputToString(List list) {
(tng) (tng)return outputToString(list, "GBK");
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)List对象转换字符?
(tng) *
(tng) * @param document
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要被{换的JDom对象
(tng) * @param encoding
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 输出字符串用的~码
(tng) */
(tng)public static String outputToString(List list, String encoding) {
(tng) (tng)ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
(tng) (tng)/* (tng) (tng) (tng)XMLOutputter outputter = new XMLOutputter();
(tng) (tng)Format fm = Format.getRawFormat();
(tng) (tng)fm.setEncoding(encoding);
(tng) (tng)outputter.setFormat(fm);*/
(tng) (tng)XMLOutputter outputter = new XMLOutputter("",true,encoding);
(tng) (tng)try {
(tng) (tng) (tng)outputter.output(list, byteRep);
(tng) (tng)} catch (Exception e) {
(tng) (tng)}
(tng) (tng)return byteRep.toString();
(tng)}
(tng)public static org.w3c.dom.Document outputToDom(org.jdom.Document jdomDoc)
(tng) (tng) (tng)throws JDOMException {
(tng) (tng)org.jdom.output.DOMOutputter outputter = new org.jdom.output.DOMOutputter();
(tng) (tng)return outputter.output(jdomDoc);
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)使用XMLOutputterJDom对象输出到文?br /> (tng) *
(tng) * @param myDocument
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要输出的JDom对象
(tng) * @param filePath
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要输出到的盘路径
(tng) */
(tng)public static void outputToFile(Document myDocument, String filePath) {
(tng) (tng)outputToFile(myDocument, filePath, "GBK");
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)使用XMLOutputterJDom对象输出到文?br /> (tng) *
(tng) * @param myDocument
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要输出的JDom对象
(tng) * @param filePath
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要输出到的盘路径
(tng) * @param encoding
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) ~码方式
(tng) */
(tng)public static void outputToFile(Document myDocument, String filePath,
(tng) (tng) (tng)String encoding) {
(tng) (tng)//setup this like outputDocument
(tng) (tng)try {
(tng) (tng) (tng)//XMLOutputter outputter = new XMLOutputter(" ", true,encoding);
(tng) (tng) (tng)/* (tng) (tng) (tng)XMLOutputter outputter = new XMLOutputter();
(tng) (tng) (tng)Format fm = Format.getRawFormat();
(tng) (tng) (tng)fm.setEncoding(encoding);
(tng) (tng) (tng)outputter.setFormat(fm);*/
(tng) (tng) (tng)XMLOutputter outputter = new XMLOutputter("",true,encoding);
(tng) (tng) (tng)//output to a file
(tng) (tng) (tng)FileWriter writer = new FileWriter(filePath);
(tng) (tng) (tng)outputter.output(myDocument, writer);
(tng) (tng) (tng)writer.close();
(tng) (tng)} catch (java.io.IOException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)}
(tng)}
(tng)/**
(tng) * q个Ҏ(gu)JDom对象通过样式单{?
(tng) *
(tng) * @param myDocument
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 要被{换的JDom对象
(tng) * @param xslFilePath
(tng) * (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) XSL文g的磁盘\?br /> (tng) */
(tng)public static void executeXSL(Document myDocument, String xslFilePath,
(tng) (tng) (tng)StreamResult xmlResult) {
(tng) (tng)try {
(tng) (tng) (tng)TransformerFactory tFactory = TransformerFactory.newInstance();
(tng) (tng) (tng)// Make the input sources for the XML and XSLT documents
(tng) (tng) (tng)org.jdom.output.DOMOutputter outputter = new org.jdom.output.DOMOutputter();
(tng) (tng) (tng)org.w3c.dom.Document domDocument = outputter.output(myDocument);
(tng) (tng) (tng)javax.xml.transform.Source xmlSource = new javax.xml.transform.dom.DOMSource(
(tng) (tng) (tng) (tng) (tng)domDocument);
(tng) (tng) (tng)StreamSource xsltSource = new StreamSource(new FileInputStream(
(tng) (tng) (tng) (tng) (tng)xslFilePath));
(tng) (tng) (tng)//Get a XSLT transformer
(tng) (tng) (tng)Transformer transformer = tFactory.newTransformer(xsltSource);
(tng) (tng) (tng)//do the transform
(tng) (tng) (tng)transformer.transform(xmlSource, xmlResult);
(tng) (tng)} catch (FileNotFoundException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)} catch (TransformerConfigurationException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)} catch (TransformerException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)} catch (org.jdom.JDOMException e) {
(tng) (tng) (tng)e.printStackTrace();
(tng) (tng)}
(tng)}
(tng)//Main 函数Q局部测试用?br /> (tng)public static void main(String argv[]) {
// (tng) (tng)Document dom = JDomUtil.buildFromFile("f:/web.xml");
// (tng) (tng)List list=dom.getRootElement().getChildren("servlet");
// (tng) (tng)String vs_dom = JDomUtil.outputToString(list,"gb2312");
// (tng) (tng)System.out.println(vs_dom);
(tng) (tng)String xmlString = "<record><row f1=\"111\" f2=\"111\"/><row f1=\"222\" f2=\"222\"/></record>";
(tng) (tng)Document dom = JDomUtil.buildFromXMLString(xmlString);
(tng) (tng)List list=dom.getRootElement().getChildren("row");
(tng) (tng)int num = list.size();
(tng) (tng)for(int i=0;i<num;i++){
(tng) (tng) (tng)Element element = (Element)list.get(i);
(tng) (tng) (tng)System.out.println(element.getAttributeValue("f1"));
(tng) (tng) (tng)System.out.println(element.getAttributeValue("f2"));
(tng) (tng)}
(tng)}
}
(tng)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
(tng)* @author dengdahong214
(tng)*
(tng)* TODO 要更Ҏ(gu)生成的类型注释的模板Q请转至 H口 Q?首选项 Q?Java Q?代码样式 Q?代码模板
(tng)*/
public class DateUtil {
(tng) (tng) (tng) public static final int MILLISECONDS_PER_SECOND = 1000;
(tng) (tng) (tng) public static final int MILLISECONDS_PER_DAY = 86400000;
(tng) (tng) (tng) public static final int MILLISECONDS_PER_HOUR = 3600000;
(tng) (tng) (tng) public static final int MILLISECONDS_PER_MINUTE = 60000;
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 日期按指定格式{化成字符?br /> (tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static String dateToStr(String aMask,Date date){
(tng) (tng) (tng) (tng) (tng) (tng) (tng) SimpleDateFormat df = new SimpleDateFormat(aMask);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) String dateAsString = df.format(date);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return dateAsString;
(tng) (tng) (tng) }
(tng) (tng) (tng) public static String getCurrentTime(){
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return getToday("HH:mm:ss");
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 按指定格式返回当天日期的字符串Ş?br /> (tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static String getToday(String aMask){
(tng) (tng) (tng) (tng) (tng) (tng) (tng) Date today = new Date();
(tng) (tng) (tng) (tng) (tng) (tng) (tng) String todayAsString = dateToStr(aMask,today);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return todayAsString;
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 按默认格式返回当天日期的字符串Ş?br /> (tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static String getToday(){
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return getToday("yyyy-MM-dd");
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 把字W串按指定格式{化成Date
(tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static Date strToDate(String aMask,String strDate) {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) SimpleDateFormat format = new SimpleDateFormat(aMask);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) Date date = null;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) try {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) date = format.parse(strDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) } catch (ParseException e) {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) e.printStackTrace();
(tng) (tng) (tng) (tng) (tng) (tng) (tng) }
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return date;
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 把字W串按默认格式{化成Date
(tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static Date strToDate(String strDate) {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return strToDate("yyyy-MM-dd",strDate);
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 日期相减得到的毫U数
(tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static long sub(String aMask,String strBeginDate, String strEndDate) {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) long dateRange=0;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) int num = 0;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) Date beginDate = strToDate(aMask,strBeginDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) Date endDate = strToDate(aMask,strEndDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) dateRange = endDate.getTime() - beginDate.getTime();
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return dateRange;
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 日期相减得到的毫U数
(tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static long sub(String strBeginDate, String strEndDate) {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) long dateRange=0;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) int num = 0;
(tng) (tng) (tng) (tng) (tng) (tng) (tng) Date beginDate = strToDate(strBeginDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) Date endDate = strToDate(strEndDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) dateRange = endDate.getTime() - beginDate.getTime();
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return dateRange;
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 日期相减得到的天?br /> (tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static String subToDay(String strBeginDate, String strEndDate){
(tng) (tng) (tng) (tng) (tng) (tng) (tng) String dayNum = "";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) long dateRange = sub(strBeginDate,strEndDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) dayNum = ""+(dateRange/MILLISECONDS_PER_DAY);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return dayNum;
(tng) (tng) (tng) }
(tng) (tng) (tng) /*
(tng) (tng) (tng) (tng) * 日期相减得到的秒?br /> (tng) (tng) (tng) (tng) */
(tng) (tng) (tng) public static String subToSecond(String aMask,String strBeginDate, String strEndDate){
(tng) (tng) (tng) (tng) (tng) (tng) (tng) String secNum = "";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) long dateRange = sub(aMask,strBeginDate,strEndDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) secNum = ""+(dateRange/MILLISECONDS_PER_SECOND);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return secNum;
(tng) (tng) (tng) }
(tng) (tng) (tng) public static String subToSecond(String strBeginDate, String strEndDate){
(tng) (tng) (tng) (tng) (tng) (tng) (tng) String secNum = "";
(tng) (tng) (tng) (tng) (tng) (tng) (tng) long dateRange = sub("yyyy-MM-dd HH:mm:ss",strBeginDate,strEndDate);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) secNum = ""+(dateRange/MILLISECONDS_PER_SECOND);
(tng) (tng) (tng) (tng) (tng) (tng) (tng) return secNum;
(tng) (tng) (tng) }
(tng) (tng) (tng) public static void main(String[] args) {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) System.out.println("按默认格式返回今天日?"+getToday());
(tng) (tng) (tng) (tng) (tng) (tng) (tng) System.out.println("按指定格式返回今天日?"+getToday("yyyy-MM-dd HH:mm:ss"));
(tng) (tng) (tng) (tng) (tng) (tng) (tng) System.out.println("日期相差天数:"+subToDay("2006-08-02 23:02:01", "2006-08-03 01:02:01"));
(tng) (tng) (tng) (tng) (tng) (tng) (tng) System.out.println("日期相差U数:"+subToSecond("2006-08-02 23:02:01", "2006-08-03 01:02:01"));
(tng) (tng) (tng) (tng) (tng) (tng) (tng) System.out.println("当前旉:"+getCurrentTime());
(tng) (tng) (tng) }
}
在javascript中?amp;&、||?来实现逻辑q算Q其基本用法怿大家已经熟知Q本文将深入介绍其工作机Ӟ怿对大家更加灵zȝ使用javascript?x)用帮助?br />
每个逻辑表达式都是有q回值的Q但q个值ƈ不一定是布尔变量Q下面分别介l:(x)
Q?Q与操作W(&&Q?/strong>
与操作符的执行过E如下:(x)JavaScript依次获取每一个操作数Q将它们转换为布?yu)(dng)变量,如果是falseQ则直接q回q个操作数的|注意Q返回的是{换前的原|不一定是布尔cdQ,中断后面操作数的处理Q否则l处理下一个操作数。如果直到最后一个操作数仍然对应布尔变量trueQ则q回最后这个操作数的|下面的代码演CZ(jin)其执行原理:(x)
Q?Q或操作W(||Q?/strong>
或操作符的这一性质在开发中l常?x)用到?br />Q?Q非操作W(!Q?/strong>
和与操作W类|或操作符的执行过E如下:(x)JavaScript依次获取每一个操作数Q将它们转换为布?yu)(dng)变量,如果是trueQ则直接q回q个操作数的|中断后面操作数的处理Q否则l下一个操作数。如果知道最后一个操作数仍然对应布尔变量falseQ则q回q个操作数的倹{下面的代码演示?jin)其执行原理Q?/p>
alert(a); (tng) (tng)//可见a的值是"abc"
var (tng)b=false (tng)|| (tng)"" (tng)|| (tng)0;
alert(b); (tng) (tng)//可见a的值是0
和前两种操作W不同,非操作符始终q回布尔cd的变量,例如Q?/p>
alert(a); (tng) (tng)//昄a的gؓ(f)false
]]>
1?span style="FONT: 7pt 'Times New Roman'"> (tng) ?/span> jboss 中配|数据源Q?/span> ( 一?/span> *-ds.xml 文g配置一个数据源 )
A
、从
D:\jboss-
?/span>
D:\rone3\jboss-
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
(tng) <local-tx-datasource>
(tng) (tng) (tng) <jndi-name>test/jndi</jndi-name>
(tng) (tng) (tng) <connection-url>jdbc:oracle:oci:@rone</connection-url>
(tng) (tng) (tng) <driver-class>oracle.jdbc.driver.Oracle Driver</driver-class>
(tng) (tng) (tng) <user-name>test</user-name>
(tng) (tng) (tng) <password>test</password>
(tng)<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-class-name>
(tng) (tng) (tng) (tng) (tng) <metadata>
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) <type-mapping>Oracle9i</type-mapping>
(tng) (tng) (tng) (tng) (tng) </metadata>
(tng) </local-tx-datasource>
</datasources>
在应用中配置数据?把应用部|?/span>
?/span>
D:\jboss-
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE jboss-web
(tng) (tng) (tng) PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"
(tng) (tng) (tng) "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
<jboss-web>
<context-root>/</context-root> //可以 ?/span> test 应用指向根\?/span>
<resource-ref>
(tng) (tng) (tng) (tng) (tng) (tng) (tng) <res-ref-name>test/jndi</res-ref-name>
(tng) (tng) (tng) (tng) (tng) (tng) (tng) <jndi-name>java:test/jndi</jndi-name>//对应jboss服务器上讄的jndi
</resource-ref>
</jboss-web>
q确?/span> web.xml 中有如下代码D:(x)
(tng) <resource-ref id="ResourceRef_1">
(tng) (tng) (tng) <res-ref-name>test/jndi</res-ref-name>//对应jboss-web.xml中的res-ref-name
(tng) (tng) (tng) <res-type>javax.sql.DataSource</res-type>
(tng) (tng) (tng) <res-auth>Container</res-auth>
(tng) </resource-ref>
备注:
a.要把数据库驱动程?/span> ojdbc4.jar 攑օ default/lib ?
b.OCI 驱动注意事项Q需?/span> oralce 客户端;?/span> MyEclipse 中启?/span> JBOSS Q需要把 C:\oracle\ora92\bin 路径下的 ocijdbc9.dl l 文g拯?/span> jdk 安装目录下的 bin 文g夹下。否则会(x)出现找不到数据源的错?
2.jboss应用q问题,更改D:\jboss-4.0.0\server\default\deploy\jboss文gweb-tomcat50.sar\server.xml:
(tng) (tng) (tng) (tng) <Connector port="8080" address="${jboss.bind.address}"
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) enableLookups="false" redirectPort="8443" acceptCount="100"
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>