??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一本到无码av中文字幕 ,风间由美在线亚洲一区,亚洲国产老鸭窝一区二区三区 http://m.tkk7.com/Javaphua/zh-cnSun, 11 May 2025 06:04:51 GMTSun, 11 May 2025 06:04:51 GMT60[转]E序?5岁之前成?2条法?/title><link>http://m.tkk7.com/Javaphua/archive/2007/08/19/137880.html</link><dc:creator>Javaphua</dc:creator><author>Javaphua</author><pubDate>Sat, 18 Aug 2007 16:36:00 GMT</pubDate><guid>http://m.tkk7.com/Javaphua/archive/2007/08/19/137880.html</guid><wfw:comment>http://m.tkk7.com/Javaphua/comments/137880.html</wfw:comment><comments>http://m.tkk7.com/Javaphua/archive/2007/08/19/137880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/Javaphua/comments/commentRss/137880.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Javaphua/services/trackbacks/137880.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em"><strong>一:一个目?/strong> </p> <p style="TEXT-INDENT: 2em">一艘没有航行目标的船,M方向的风都是逆风 </p> <p style="TEXT-INDENT: 2em">1、你Z么是IhQ第一点就是你没有立下成ؓ富h的目?</p> <p style="TEXT-INDENT: 2em">2、你的h生核心目标是什么? </p> <p style="TEXT-INDENT: 2em">杰出人士与^怹辈的Ҏ差别q不是天赋、机遇,而在于有无目标?</p> <p style="TEXT-INDENT: 2em">3、v跑领先一步,人生领先一大步Q?a title=成功技? target=_blank><u><font color=#0000ff>成功</font></u></a>从选定目标开?</p> <p style="TEXT-INDENT: 2em">4、贾金斯式的人永q不会成?</p> <p style="TEXT-INDENT: 2em">Z么大多数人没有成功?真正能完成自p划的人只?%Q大多数Z是将自己的目标舍弃,是沦ؓ~Z行动的空?</p> <p style="TEXT-INDENT: 2em">5、如果你惛_35岁以前成功,你一定在25?0岁之间确立好你的人生目标 </p> <p style="TEXT-INDENT: 2em">6、每日、每月、每q都要问自己Q我是否辑ֈ了自己定下的目标 </p> <p style="TEXT-INDENT: 2em"><strong>二:两个成功基点</strong> </p> <p style="TEXT-INDENT: 2em"><a title=建站交流 target=_blank><u><font color=#0000ff>?/font></u></a>好位|,调正心态,努力冲刺Q?5岁以前成?</p> <p style="TEXT-INDENT: 2em">(一)人生定位 </p> <p style="TEXT-INDENT: 2em">1、h怕入错行Q你的核心竞争力是什么? </p> <p style="TEXT-INDENT: 2em">2、成功者找ҎQ失败者找借口 </p> <p style="TEXT-INDENT: 2em">3、从三百六十行中选择你的最?</p> <p style="TEXT-INDENT: 2em">Zh都可以创业,但却不是Zh都能创业成功 </p> <p style="TEXT-INDENT: 2em">4、寻找自q黄金宝地 </p> <p style="TEXT-INDENT: 2em">(?永恒的真理:心态决定命q,35岁以前的心态决定你一生的命运 </p> <p style="TEXT-INDENT: 2em">1、不满现状的人才能成为富?</p> <p style="TEXT-INDENT: 2em">2、敢于梦惻I勇于梦想Q这个世界永q属于追梦的?</p> <p style="TEXT-INDENT: 2em">3?35岁以前不要怕,35岁以后不要悔 </p> <p style="TEXT-INDENT: 2em">4、出w民,q一辈子是民,只要你永q保持那颗进取的心。中国成功h士大多来自小地方 </p> <p style="TEXT-INDENT: 2em">5、做一个积极的思维?</p> <p style="TEXT-INDENT: 2em">6、不要|l悲观的自己 </p> <p style="TEXT-INDENT: 2em">有的人比你富有一千倍,他们也会比你聪明一千倍么Q不会,他们只是q轻时心气比你高一千倍?</p> <p style="TEXT-INDENT: 2em">人生的好多次p|Q最后ƈ不是败给别hQ而是败给了悲观的自己?</p> <p style="TEXT-INDENT: 2em">7、成功者不q是爬v来比倒下d一?</p> <p style="TEXT-INDENT: 2em">8、宁可去壁Q也不要在家里面?</p> <p style="TEXT-INDENT: 2em">克服你的p|、消极的心?</p> <p style="TEXT-INDENT: 2em">(1)找个地方喝点?</p> <p style="TEXT-INDENT: 2em">(2)找个q厅跌?</p> <p style="TEXT-INDENT: 2em">(3)扑ָ朋友侃侃?</p> <p style="TEXT-INDENT: 2em">(4)U极行动h </p> <p style="TEXT-INDENT: 2em"><strong>三:三大技?/strong> </p> <p style="TEXT-INDENT: 2em">1、管理时_你的旉在哪里,你的成就在哪里?</p> <p style="TEXT-INDENT: 2em">把一时看成60分钟的hQ比看作一时的h?0?</p> <p style="TEXT-INDENT: 2em">2、你不理财,财不理你 </p> <p style="TEXT-INDENT: 2em">3、自我管理,游刃有余 </p> <p style="TEXT-INDENT: 2em">(1)创业不怕本,脑子一定要?</p> <p style="TEXT-INDENT: 2em">(2)可以开家特色店 </p> <p style="TEXT-INDENT: 2em">(3)做别Z愿做的生?</p> <p style="TEXT-INDENT: 2em"><strong>四:四项安n立命的理?/strong> </p> <p style="TEXT-INDENT: 2em">35岁以前一定要形成个h风格 </p> <p style="TEXT-INDENT: 2em">1、做Z于做?</p> <p style="TEXT-INDENT: 2em">做事p|可以重来Q做人失败却不能重来 </p> <p style="TEXT-INDENT: 2em">(1)做h要讲义气 </p> <p style="TEXT-INDENT: 2em">(2)怸气馁 </p> <p style="TEXT-INDENT: 2em">2、豁辄男h有胦q,豁达的女人有帮夫q?</p> <p style="TEXT-INDENT: 2em">35岁以前搞定婚ȝz?</p> <p style="TEXT-INDENT: 2em">3、忠诚的原则Q?5岁以前你q没有徏立v忠诚誉Q这一~点要困扰你的一?/p> <p style="TEXT-INDENT: 2em">4、把事做细Q但不要耍小聪明 </p> <p style="TEXT-INDENT: 2em">中国人想做大事的人太多,而愿把小事做完美的h太少 </p> <p style="TEXT-INDENT: 2em"><strong>五:五分q气</strong> </p> <p style="TEXT-INDENT: 2em">比尔·盖茨_人生是不公^的,习惯L受它?</p> <p style="TEXT-INDENT: 2em">1、h生的有很多q气的成人:谋事在hQ成事在天:中国的古训说明各占一?</p> <p style="TEXT-INDENT: 2em">2、机会时常意外地降Q但属于那些不应决不攑ּ的h </p> <p style="TEXT-INDENT: 2em">3、抓住h生的每一ơ机?</p> <p style="TEXT-INDENT: 2em">Z像一只小鸟,如果你不抓住Q它׃飞得无媄无踪 </p> <p style="TEXT-INDENT: 2em">4、者早一步,愚者晚一?</p> <p style="TEXT-INDENT: 2em"><strong>六:六项要求</strong> </p> <p style="TEXT-INDENT: 2em">1、智?</p> <p style="TEXT-INDENT: 2em">(1)别h可你以拿C的一切,但拿不走你的智慧 </p> <p style="TEXT-INDENT: 2em">(2)巧妙q用自己的智?</p> <p style="TEXT-INDENT: 2em">(3)与愚者的区别 </p> <p style="TEXT-INDENT: 2em">2、勇?</p> <p style="TEXT-INDENT: 2em">(1)勇气的力量有时会让你成ؓ“h” </p> <p style="TEXT-INDENT: 2em">(2)敢于攑ּQ敢?#8220;舍得” </p> <p style="TEXT-INDENT: 2em">3、培养自q“领导才能、领袖气?#8221; </p> <p style="TEXT-INDENT: 2em">(1)Ȁ<a title=情感心情故事 target=_blank><u><font color=#0000ff>情感</font></u></a>染别?</p> <p style="TEXT-INDENT: 2em">(2)“?#183;七法?#8221;实现领袖气质 </p> <p style="TEXT-INDENT: 2em">(3)拍板x能力 </p> <p style="TEXT-INDENT: 2em">(4)人格力 </p> <p style="TEXT-INDENT: 2em">4、创造性:不要做@规蹈矩的?</p> <p style="TEXT-INDENT: 2em">25-35岁是人生最有创造性的阶段Q很多成功h士也都生在q一阶段 </p> <p style="TEXT-INDENT: 2em">5、明?</p> <p style="TEXT-INDENT: 2em">(1)知道自己的长处、短处,定向聚焦 </p> <p style="TEXT-INDENT: 2em">(2)量在自q熟悉的领域努?</p> <p style="TEXT-INDENT: 2em">6、持之以恒的行动力:在你选定行业坚持十年Q你一定会成ؓ大赢?</p> <p style="TEXT-INDENT: 2em"><strong>七:七分学习</strong> </p> <p style="TEXT-INDENT: 2em">1、知识改变命q?</p> <p style="TEXT-INDENT: 2em">2?5岁以前学会你行业中必要的一切知?</p> <p style="TEXT-INDENT: 2em">a)每天淘汰你自?</p> <p style="TEXT-INDENT: 2em">b)在商a?</p> <p style="TEXT-INDENT: 2em">3、太怿的书人,只能成ؓ打工?</p> <p style="TEXT-INDENT: 2em">4、思考、实c再思考、再实践 </p> <p style="TEXT-INDENT: 2em"><strong>八:八分交际</strong> </p> <p style="TEXT-INDENT: 2em">朋友多了路好?</p> <p style="TEXT-INDENT: 2em">1、智商很重要Q情商更重要Q?5岁以前徏立v人际关系|?</p> <p style="TEXT-INDENT: 2em">2、h脉即财脉Q如何搞好h际关p?</p> <p style="TEXT-INDENT: 2em">3、交友有原则 </p> <p style="TEXT-INDENT: 2em">4、善于沟通:35岁以前要ȝq演讲才能 </p> <p style="TEXT-INDENT: 2em"><strong>九:九分习惯</strong> </p> <p style="TEXT-INDENT: 2em">习惯的力量是惊h的,35岁以前养成的习惯军_着你的成功的大?</p> <p style="TEXT-INDENT: 2em">1、积极思维的好习惯 </p> <p style="TEXT-INDENT: 2em">2、养成高效工作的好习?</p> <p style="TEXT-INDENT: 2em">(1)<a title="办公软g 软g下蝲" target=_blank><u><font color=#0000ff>办公</font></u></a>?</p> <p style="TEXT-INDENT: 2em">(2)生活可以不拘节Q但要把工作做细 </p> <p style="TEXT-INDENT: 2em">(3)学习聆听Q不打断别h说话 </p> <p style="TEXT-INDENT: 2em">3、养成锻Dn体的好习?</p> <p style="TEXT-INDENT: 2em">4、广泛爱好的好习?</p> <p style="TEXT-INDENT: 2em">5、快速行动的好习?</p> <p style="TEXT-INDENT: 2em"><strong>十:十分自信</strong> </p> <p style="TEXT-INDENT: 2em">1、自信是成功的精支?</p> <p style="TEXT-INDENT: 2em">2、自信方能赢得别人的信Q </p> <p style="TEXT-INDENT: 2em">3、把自信建立在创造h值的基础?/p> <p style="TEXT-INDENT: 2em">4、如何徏立自?</p> <p style="TEXT-INDENT: 2em">(1)q立目?</p> <p style="TEXT-INDENT: 2em">(2)发挥自己的长?</p> <p style="TEXT-INDENT: 2em">(3)做事要有计划 </p> <p style="TEXT-INDENT: 2em">(4)做事不拖?</p> <p style="TEXT-INDENT: 2em">(5)L不要攑ּ </p> <p style="TEXT-INDENT: 2em">(6)学会自我Ȁ?</p> <p style="TEXT-INDENT: 2em">(7)不要让自己成为别?<strong>十一Q?11个需要避开的成功陷?/strong> </p> <p style="TEXT-INDENT: 2em">1、只有功劻I没有苦劳 </p> <p style="TEXT-INDENT: 2em">2、不?#8220;怀才不?#8220;Q而要L机遇 </p> <p style="TEXT-INDENT: 2em">3、不要想发横?</p> <p style="TEXT-INDENT: 2em">4、不要ؓp工作,而让׃ؓ你工?</p> <p style="TEXT-INDENT: 2em">5、盲目跟风,Z亦云Qh做我也做 </p> <p style="TEXT-INDENT: 2em">6、小富即安,不思进取,知怹 </p> <p style="TEXT-INDENT: 2em">7、承认错误而非掩饰错误 </p> <p style="TEXT-INDENT: 2em">8、脚t实地而非惛_非非 </p> <p style="TEXT-INDENT: 2em">9、野心太大而不是信心十?</p> <p style="TEXT-INDENT: 2em">10、反复蟩槽不可取 </p> <p style="TEXT-INDENT: 2em">11、眼高手?</p> <p style="TEXT-INDENT: 2em">12、不择手D?</p> <p style="TEXT-INDENT: 2em"><strong>十二Q十二分努力</strong> </p> <p style="TEXT-INDENT: 2em">没有随随便便成功 </p> <p style="TEXT-INDENT: 2em">1、小不是成功Q大不是成功Q由变大才是成?</p> <p style="TEXT-INDENT: 2em">2、中国社会进入微利时代:巧干+敢干+实干=成功 </p> <p style="TEXT-INDENT: 2em">3、努力尝试就有成功的可能 </p> <p style="TEXT-INDENT: 2em">4、做M事情Q尽最大努?</p> <p style="TEXT-INDENT: 2em">5、把事情当成事业来做 </p> <p style="TEXT-INDENT: 2em">6、我看打工?</p> <p style="TEXT-INDENT: 2em">7、祝你早日掘到第一桉来源</p> <img src ="http://m.tkk7.com/Javaphua/aggbug/137880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Javaphua/" target="_blank">Javaphua</a> 2007-08-19 00:36 <a href="http://m.tkk7.com/Javaphua/archive/2007/08/19/137880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Ajax 基础和例?/title><link>http://m.tkk7.com/Javaphua/archive/2007/08/13/136275.html</link><dc:creator>Javaphua</dc:creator><author>Javaphua</author><pubDate>Mon, 13 Aug 2007 01:31:00 GMT</pubDate><guid>http://m.tkk7.com/Javaphua/archive/2007/08/13/136275.html</guid><wfw:comment>http://m.tkk7.com/Javaphua/comments/136275.html</wfw:comment><comments>http://m.tkk7.com/Javaphua/archive/2007/08/13/136275.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/Javaphua/comments/commentRss/136275.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Javaphua/services/trackbacks/136275.html</trackback:ping><description><![CDATA[<p class=entryTitle>Ajax 基础和例?/p> <p class=entryContent> <p>Ajax -- Asynchronous JavaScript and XML Ajax 使用的是JavaScript + DOM + CSS + XMLHttpRequest的技?是目前Web2.0更加行的技? </p> <p>与传l网l应用相?Ajax具备更加直观和方便的用户交互. Z么呢? 比如, 我们需要点击链接或按钮来激发事?而用Ajax只要Ud鼠标或者在一个输入框输入字母已经可以触发事g. 传统的网l应用是Zpage-driven的模? 使用的是'click, wait a refresh the whole page' 模式, 而Ajax是通过data-driven的模式来提供|络面? 采用的是部分面更新的模? 面中只更新有新数据的部?其它的部分依然不?所以依然可以操? </p> <p>Ajaxp它的名字一? 可以异步地在览器和服务器之间进行交? 当服务器端处理submitq来的数据的同时, 客户依然可以正常地处理浏览器端同一面的其他功?</p> <p>那么Ajax和传l网l应用相比是怎样工作的呢?下面q张囑֏以让你了解清? </p> <p><img src="http://developers.sun.com.cn/blog/BennyLuo/resource/ajax.JPG"></p> <p>传统的网l应用在览器和服务器之间的交流是直来直ȝ, 而Ajax的网l应用在览器中有一个Ajax引擎,q个引擎实际上就是一个Javascript的对象XMLHttpRequest, 而XMLHttpRequest负责览器和服务器的异步交流. </p> <p>XMLHttpRequest既然是Javascript的对? 当然需要一些Javascript的代码来生成, 它目前支持大部分的浏览器,包括了Mozilla, Firefox{等. </p> <p>服务器端依然可以使用传统的技术如servlet, JSP, JSF,Struts{等,但会有一些小的限?比如客户端会发更频繁的请?而响应这些请求的cd包括text/xml, text/plain, text/json, text/javascript. </p> <p>整个Ajax的操作过E分Z? </p> <p>1.A client event occurs </p> <p>2.An XMLHttpRequest object is created </p> <p>3.The XMLHttpRequest object is configured </p> <p>4.The XMLHttpRequest object makes an async. request </p> <p>5.The ValidateServlet returns an XML document containing the result </p> <p>6.The XMLHttpRequest object calls the callback() function and processes the result </p> <p>7.The HTML DOM is updated </p> <p>我们分别来看看这七个步骤是怎么做的: 1. A client event occurs, </p> <p><input type="text"<br>size="20"<br>id="userid"<br>name="id"<br>onkeyup="validateUserId();"></p> <p>比如我们手头上有q样一DJavascript的代?  q是一个ID为userid的文本框,里面包含了一个Javascript的函?当我们在文本框里打入一个英文字母时,会激发onkeyup的事?从而激发validateUserId的Javascript的函? </p> <p>2.An XMLHttpRequest object is created </p> <p>var req;<br>function initRequest() {<br>if (window.XMLHttpRequest) {<br>req = new XMLHttpRequest();<br>} else if (window.ActiveXObject) {<br>isIE = true;<br>req = new ActiveXObject("Microsoft.XMLHTTP");<br>}<br>}<br>function validateUserId() {<br>initRequest();<br>req.onreadystatechange = processRequest;<br>if (!target) target = document.getElementById("userid");<br>var url = "validate?id=" + escape(target.value);<br>req.open("GET", url, true);<br>req.send(null);<br>}</p> <p>validateUserId的Javascript的函数调用initRequest函数生成XMLHttpRequest对象, 大家注意到在initRequest函数里面有两U生成XMLHttpRequest的方?q是针对不同的浏览器的做?对于Mozilla,我们可以直接使用"new XMLHttpRequest()”, 而对于IE,我们需要生成ActiveX对象. </p> <p>3.The XMLHttpRequest object is configured </p> <p>rvalidateUserId的Javascript的函数包含一句req.onreadystatechange = processRequest; q是通过讑֮XMLHttpRequest对象里面的onreadystatechangeҎؓ回调函数. </p> <p>4.The XMLHttpRequest object makes an async. request </p> <p>if (!target) target = document.getElementById("userid");<br>var url = "validate?id=" + escape(target.value);<br>req.open("GET", url, true);<br>req.send(null);</p> <p>然后XMLHttpRequest调用openҎ和服务器交流, openҎ有三个参? HTTPҎ是Getq是Post, 服务器端的URL, 方式采取异步q是同步. </p> <p>5.The ValidateServlet returns an XML document containing the result </p> <p>public void doGet(HttpServletRequest request, HttpServletResponse response)<br>throws IOException, ServletException {<br>String targetId = request.getParameter("id");<br>if ((targetId != null) && !accounts.containsKey(targetId.trim())) {<br>response.setContentType("text/xml ");<br>response.setHeader("Cache-Control", "no-cache");<br>response.getWriter().write("<valid>true</valid>");<br>} else {<br>response.setContentType("text/xml ");<br>response.setHeader("Cache-Control", "no-cache");<br>response.getWriter().write("<valid>false</valid>");<br>}<br>}</p> <p>然后是服务器端ValidateServlet的响?首先Content type设ؓtext/xml, Cache-Control设ؓno-cache, 最后会q回true或者false的xml格式响应. </p> <p>6.The XMLHttpRequest object calls the callback() function and processes the result </p> <p>function processRequest() {<br>if (req.readyState == 4) {<br>if (req.status == 200) {<br>var message = ...;</p> <p>现在控制交回l客L, ׃我们讑֮了回调函CؓprocessRequest, 那么当响应从服务器端回到客户端浏览器,激发了processRequest函数, 我们在processRequest函数中检查XMLHttpRequest对象的readyState状态是否ؓ4和status状态是否ؓ200,如果两者同时成?׃表服务器端的数据已经成功q回l客L,那么可以执行下面的处理.</p> <p> 7.The HTML DOM is updated.</p> <p>接收完服务器端传回来的数据后,览器开始着手显C接收回的数?</p> <p>我们通过面里面?lt;div>元素来唯一的表CZ个对象给DOM的API使用. 比如定html面某一处的需要显C的信息文本对象,我们可以使用userIdMessage唯一的标{来做引用给DOM的API使用. 如下面这D代?</p> <p>23.<body><br>24. <div id="userIdMessage"></div><br>25.</body></p> <p>一但你有了唯一定的引?你就可以使用DOM的API对其q行随心所Ʋ的操作,如属性的修改{等,比如下面q段代码:</p> <p>1. <script type="text/javascript"><br>2. function setMessageUsingDOM(message) {<br>3. var userMessageElement = document.getElementById("userIdMessage");<br>4. var messageText;<br>5. if (message == "false") {<br>6. userMessageElement.style.color = "red";<br>7. messageText = "Invalid User Id";<br>8. } else {<br>9. userMessageElement.style.color = "green";<br>10. messageText = "Valid User Id";<br>11. }<br>12. var messageBody = document.createTextNode(messageText);<br>13. // if the messageBody element has been created simple replace it otherwise<br>14. // append the new element<br>15. if (userMessageElement.childNodes[0]) {<br>16. userMessageElement.replaceChild(messageBody,<br>17. userMessageElement.childNodes[0]);<br>18. } else {<br>19. userMessageElement.appendChild(messageBody);<br>20. }<br>21.}<br>22.</script><br>23.<body><br>24. <div id="userIdMessage"></div><br>25.</body></p> <p>在这里javascript通过了getElementByIdҎ得到了userIdMessage对象,然后Ҏ务器端返回的数据q行Ҏ,如果值是true,在userIdMessage里添加文?Valid User Id", 如果值是false,则在userIdMessage里添加文?Invalid User Id".</p> <p>大概是q样的一个状?那么在Ajax里面的XMLHttpRequestq有很多Ҏ和属? 包括:</p> <p>Ҏ:</p> <p><br>• open(“HTTP method”, “URL”, syn/asyn)<br>> Assigns HTTP method, destination URL, mode<br>• send(content)<br>> Sends request including string or DOM object data<br>• abort()<br>> Terminates current request<br>• getAllResponseHeaders()<br>> Returns headers (labels + values) as a string<br>• getResponseHeader(“header”)<br>> Returns value of a given header<br>• setRequestHeader(“label”,”value”)<br>> Sets Request Headers before sending</p> <p>属?</p> <p>• onreadystatechange<br>> Set with an JavaScript event handler that fires at each<br>change<br>• readyState – current status of request<br>> 0 = uninitialized<br>> 1 = loading<br>> 2 = loaded<br>> 3 = interactive (some data has been returned)<br>> 4 = complete<br>• status<br>> HTTP Status returned from server: 200 = OK</p> <p>• responseText<br>> String version of data returned from the server<br>• responseXML<br>> XML document of data returned from the server<br>• statusText<br>> Status text returned from server</p> <p> </p> <p class=entryInfo>Posted at <a ><u><font color=#800080>05:22PM Jul 10, 2007</font></u></a> by Benny Luo </p> <img src ="http://m.tkk7.com/Javaphua/aggbug/136275.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Javaphua/" target="_blank">Javaphua</a> 2007-08-13 09:31 <a href="http://m.tkk7.com/Javaphua/archive/2007/08/13/136275.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Tomcat 5.5.x 配置集锦(x表示4,5,.6,7) http://m.tkk7.com/Javaphua/archive/2007/07/20/131509.htmlJavaphuaJavaphuaFri, 20 Jul 2007 08:07:00 GMThttp://m.tkk7.com/Javaphua/archive/2007/07/20/131509.htmlhttp://m.tkk7.com/Javaphua/comments/131509.htmlhttp://m.tkk7.com/Javaphua/archive/2007/07/20/131509.html#Feedback0http://m.tkk7.com/Javaphua/comments/commentRss/131509.htmlhttp://m.tkk7.com/Javaphua/services/trackbacks/131509.htmltomcat5.5.x 配置记录?/div>
 
1.下蝲Q?/div>
?u>jakarta-tomcat-5.5.x.zip
?u>jakarta-tomcat-5.5.x-compat.zip
?u>jakarta-tomcat-5.5.x-admin.zip
(Tomcat 默认是没有内|admin模块?/div>
Tomcat's administration web application is no longer installed by default. Download and install the "admin" package to use it. )
都解压到同一个目录下面。比如:D:\jakarta-tomcat-5.5.x\
(如果使用jdk1.4Q才需?u>compat.zip用jdk1.5可以免了这个?
 
2.修改jakarta-tomcat-5.5.x\conf\tomcat-users.xml.
d理员̎号lizongboQ密码ؓlizongbopass.
新xml如下Q?br><?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="lizongbo" password="lizongbopass" roles="admin,manager"/>
</tomcat-users>
 
3.修改jakarta-tomcat-5.5.x\conf\server.xml来解决编码问题?br>(lConnector dURIEncoding参数Q参?a >http://blog.csdn.net/darkxie/archive/2004/10/25/TOMCATAPP.aspx)
(可以讄成GB18030)
    <Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="200"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"
               compression="on" compressionMinSize="2048"
      noCompressionUserAgents="gozilla, traviata"
      compressableMimeType="text/html,text/xml"/>
 
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="GBK"/>
 

4.启用支持gzip压羃.
(http://www.linuxaid.com.cn/forum/showdoc.jsp?l=1&i=81169)
d下列属?br> compression="on"
      compressionMinSize="2048"
      noCompressionUserAgents="gozilla, traviata"
      compressableMimeType="text/html,text/xml"
 
5.讄虚拟L?/div>
在jakarta-tomcat-5.5.x\下徏立文件夹vhost\www.mydomain.com?/div>
然后修改jakarta-tomcat-5.5.x\conf\server.xml
 
<Engine defaultHost="localhost" name="Catalina">
      <Host appBase="vhost/www.mydomain.com" name="www.mydomain.com">
      </Host>
      <Host appBase="webapps" name="localhost">
      </Host>
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    </Engine>
 
6.d数据库驱?更新mail.jar和actiovation.jar
复制mysql-connector-java-3.0.16-ga-bin.jar,pg74.215.jdbc3.jar?jakarta-tomcat-5.5.x\common\lib\
q有javamail 1.3.2的mail.jarQjaf-1_0_2?activation.jar
msSQl 2000 JDBC sp3Qmsbase.jar,msutil,jar,mssqlserver.jar
 
 
7.配置SSL
D:\j2sdk1.4.2_06\bin>%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
输入keystore密码Q?nbsp; lizongbossl
您的名字与姓氏是什么?
  [tomcat5.5.x]Q?nbsp; tomcat5.5.x
您的l织单位名称是什么?
  [jakarta]Q?nbsp; jakarta
您的l织名称是什么?
  [apache]Q?nbsp; apache
您所在的城市或区域名U是什么?
  [hzcity]Q?nbsp; hzcity
您所在的州或省䆾名称是什么?
  [gdp]Q?nbsp; gdp
该单位的两字母国家代码是什?br>  [CN]Q?nbsp; CN
CN=tomcat5.5.x, OU=jakarta, O=apache, L=hzcity, ST=gdp, C=CN 正确吗?
  [否]Q?nbsp; y
 
输入<tomcat>的主密码
        Q如果和 keystore 密码相同Q按回RQ:
(必须密码一_因此直接回R)
然后再把userhome(例如QC:\Documents and Settings\lizongbo\)下的.keystore复制?/div>
tomcat的conf\目录下?/div>
 (例如QD:\jakarta-tomcat-5.5.x\conf\.keystore )
配置jakarta-tomcat-5.5.x\conf\server.xml
加上
    <Connector port="8443"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
           keystoreFile="conf/.keystore"
           keystorePass="lizongbossl"> <!--与先前设|的密码一?->
    </Connector>
8.止文g目录列表Q?/div>
修改jakarta-tomcat-5.5.x\conf\web.xmlQ把listing讄为false
 
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
 
 9.指定了自qjavaEncoding

    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
                <init-param>
            <param-name>javaEncoding</param-name>
            <param-value>GB18030</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>
 10.drar,iso{的mime-type映射
避免在浏览器里直接打开?/div>
<mime-mapping>
<extension>mht</extension>
<mime-type>text/x-mht</mime-type>
</mime-mapping>
<mime-mapping>
        <extension>rar</extension>
        <mime-type>application/octet-stream</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>iso</extension>
        <mime-type>application/octet-stream</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>ape</extension>
        <mime-type>application/octet-stream</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>rmvb</extension>
        <mime-type>application/octet-stream</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>ico</extension>
        <mime-type>image/x-icon</mime-type>
    </mime-mapping>
10.1对html静态页面设|编?/div>
<!--  修改下面两行以支持静态超文本的自动编?nbsp;
  -->
 
 <mime-mapping>
  <extension>htm</extension> 
  <mime-type>text/html;charset=gb2312</mime-type> 
  </mime-mapping>
 <mime-mapping>
  <extension>html</extension> 
  <mime-type>text/html;charset=gb2312</mime-type> 
  </mime-mapping>
  </web-app>
 
11.dwelcome-file-listQƈ调整序?/div>
 <welcome-file-list>   
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>



Javaphua 2007-07-20 16:07 发表评论
]]>[转]java中判断字W串是否为数字的三种Ҏ http://m.tkk7.com/Javaphua/archive/2007/06/05/122131.htmlJavaphuaJavaphuaTue, 05 Jun 2007 06:17:00 GMThttp://m.tkk7.com/Javaphua/archive/2007/06/05/122131.htmlhttp://m.tkk7.com/Javaphua/comments/122131.htmlhttp://m.tkk7.com/Javaphua/archive/2007/06/05/122131.html#Feedback23http://m.tkk7.com/Javaphua/comments/commentRss/122131.htmlhttp://m.tkk7.com/Javaphua/services/trackbacks/122131.html 
 java中判断字W串是否为数字的三种Ҏ
1用JAVA自带的函?br>public static boolean isNumeric(String str){
  
for (int i = str.length();--i>=0;){   
   
if (!Character.isDigit(str.charAt(i))){
    
return false;
   }
  }
  
return true;
 }

2用正则表辑ּ
public static boolean isNumeric(String str){
    Pattern pattern = Pattern.compile("[0-9]*");
    return pattern.matcher(str).matches();   
 }

3用ascii?br>
public static boolean isNumeric(String str){
   for(int i=str.length();--i>=0;){
      int chr=str.charAt(i);
      if(chr<48 || chr>57)
         return false;
   }
   return true;
}


Javaphua 2007-06-05 14:17 发表评论
]]>
增加tomcat内存http://m.tkk7.com/Javaphua/archive/2007/05/17/118054.htmlJavaphuaJavaphuaThu, 17 May 2007 04:59:00 GMThttp://m.tkk7.com/Javaphua/archive/2007/05/17/118054.htmlhttp://m.tkk7.com/Javaphua/comments/118054.htmlhttp://m.tkk7.com/Javaphua/archive/2007/05/17/118054.html#Feedback1http://m.tkk7.com/Javaphua/comments/commentRss/118054.htmlhttp://m.tkk7.com/Javaphua/services/trackbacks/118054.htmlwindows中大安知道Q?/span>JAVAE序启动旉?/span>JVM都会分配一个初始内存和最大内存给q个应用E序。这个初始内存和最大内存在一定程度都会媄响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圑֛收的动作Q释放被占用的一些内存?/span>
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明Q一般的JAVAE序在运行都可以通过?/span>-Xms -Xmx来调整应用程序的初始内存和最大内?/span>:
如:java -Xms64m -Xmx128m a.jar.
tomcat
的启动程序是包装q的Q不能直接?/span>java -X..... tomcat.*来改变内存的讄。在Tomcat在改变这个设|?/span>
有两U方法:
1.
需要在环境变量中加?/span>TOMCAT_OPTS, CATALINA_OPTS两个属性,
?/span> SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms
是最的Q?/span>mx是最大,64m, 512m分别是指内存的容?/span>.
2.
修改Catalina.bat文g
?/span>166?/span>“rem Execute Java with the applicable properties ”以下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
中的%CATALINA_OPTS% 替换?/span>-Xms64m -Xmx512mQ把四行内的%CATALINA_OPTS%都替换掉Q包括两边的%

3.启动%tomcat%\bin\tomcat5w.exeQ在java中讄初始化内存的大小

试tomcat大小Qjsp面
<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
out.println("Free  Memory: "+lRuntime.freeMemory()+"<br/>");
out.println("Max   Memory: "+lRuntime.maxMemory()+"<br/>");
out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>");
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
out.println("*** END MEMORY STATISTICS ***");
%>


Javaphua 2007-05-17 12:59 发表评论
]]>
关于oracle 10.2.0的监听问?/title><link>http://m.tkk7.com/Javaphua/archive/2007/05/10/116471.html</link><dc:creator>Javaphua</dc:creator><author>Javaphua</author><pubDate>Thu, 10 May 2007 06:11:00 GMT</pubDate><guid>http://m.tkk7.com/Javaphua/archive/2007/05/10/116471.html</guid><wfw:comment>http://m.tkk7.com/Javaphua/comments/116471.html</wfw:comment><comments>http://m.tkk7.com/Javaphua/archive/2007/05/10/116471.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/Javaphua/comments/commentRss/116471.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Javaphua/services/trackbacks/116471.html</trackback:ping><description><![CDATA[<p>      oracle 10.2.0 在不插网U安装时Q网l由用户验证Q安装完毕后重启机子Q插|线启动oracle服务ӞL出现监听p|Q这时可q行如下修改Q打开oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora<br>?br>SID_LIST_LISTENER =<br>  (SID_LIST =<br>    (SID_DESC =<br>      (SID_NAME = PLSExtProc)<br>      (ORACLE_HOME = D:\soft\oracle\product\10.2.0\db_1)<br>      (PROGRAM = extproc)<br>    )<br>  )</p> <p>LISTENER =<br>  (DESCRIPTION_LIST =<br>    (DESCRIPTION =<br>      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))<br>      (ADDRESS = (PROTOCOL = TCP)(HOST = <span style="COLOR: red">localhost</span>)(PORT = 1521))<br>    )<br>  )<br>中红色标识的localhost改ؓ机器名,如:mycoputer</p> <img src ="http://m.tkk7.com/Javaphua/aggbug/116471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Javaphua/" target="_blank">Javaphua</a> 2007-05-10 14:11 <a href="http://m.tkk7.com/Javaphua/archive/2007/05/10/116471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]最新整理apache-2.0.43和tomcat-4.1.12集成 http://m.tkk7.com/Javaphua/archive/2007/04/03/108165.htmlJavaphuaJavaphuaTue, 03 Apr 2007 03:42:00 GMThttp://m.tkk7.com/Javaphua/archive/2007/04/03/108165.htmlhttp://m.tkk7.com/Javaphua/comments/108165.htmlhttp://m.tkk7.com/Javaphua/archive/2007/04/03/108165.html#Feedback0http://m.tkk7.com/Javaphua/comments/commentRss/108165.htmlhttp://m.tkk7.com/Javaphua/services/trackbacks/108165.html最新整理apache-2.0.43和tomcat-4.1.12集成

---------------------------------------------------------------------------­-----
作者:luyongshou 2005-02-02 15:04:45 来自QLinux先生  在此介绍一下我在RedHat Linux 7.2下装Apache与Tomcat4整合的过E,重点讲述mod_webapp.so的制作方法,
  以及在虚拟主机环境下的配|、管理和应用Q经试已经成功。希望对各位有所帮助Q如有错误也h正?

一、正安装Tomcat4
  必要软g的安装,如下Q?
  1、Java SDK
  版本1.3.1?.4Q徏议安装在/usr/java下,q做一个jdk的Y链接?
  如果在装版本1.3.1的SDK出现问题Q请阅读文档Q?a target=_blank rel=nofollow>http://java.sun.com/j2se/1.3/install-linux-sdk.html
  2、Tomcat4
  安装最新release版本的二q制文g安装包。当前最新的tomcat版本?.1.12?
  下蝲地址Q?
  http://jakarta.apache.org/builds/ja...t-4.1.12.tar.gz
  下蝲后接压到一个目?"tar xvzf jakarta-tomcat-4.1.12.tar.gz"
本例tomcat安装?opt目录下,q做了个tomcat的Y链接?
  讄如下环境变量q启用:
  PATH=$PATH:/usr/java/jdk/bin:/usr/java/jdk/jre/bin
  JAVA_HOME=/usr/java/jdk
  export JAVA_HOME
  CLASSPATH="./:/usr/java/jdk/lib:/usr/java/jdk/jre/lib"
  export CLASSPATH
  CATALINA_HOME=/opt/tomcat
  export CATALINA_HOME

  单徏一个用户tomcatQ将其设?opt/tomcat以下所有目录文件的属主Qƈ由它启动tomcatQ?
  # useradd tomcat
  # chown -R tomcat:tomcat /opt/tomcat
  # su - tomcat -c "/opt/tomcat/bin/startup.sh"

  讉Khttp://localhost:8080/ 应能看到tomcat安装成功的页面?

===================================================================
如果惛_apache集成需要修改tomcat/conf/server.xmlq个文g?

<!-- Define an Apache-Connector Service -->

<Service name="Tomcat-Apache">
<!--
<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps"
acceptCount="10" debug="0"/>

<Engine className="org.apache.catalina.connector.warp.WarpEngine"
name="Apache" debug="0">

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="apache_log." suffix=".txt"
timestamp="true"/>

<Realm className="org.apache.catalina.realm.MemoryRealm" />

</Engine>

</Service>
-->
</Server>

中的"<!--"?-->"删掉,其实是解除注释Q因个网站是专门用来和apache的集成的?

二、Apache与Tomcat4的整?

  1、首先安装ApacheQ?
  h意Apache必须安装DSO模式Q即在执?/configure旉加上 --enable-module=so

  默认安装?usr/local/apache目录下。本例安装的apache的版本是2.0.43pd的?

  2、制作mod_webapp.so
  需要以下Y件包Q?
  jakarta-tomcat-connectors-4.x.xx-src.tar.gz
  下蝲地址在tomcat对应版本的src目录下。例如,我安装的tomcat版本?.1.12Q则现在所需要的软g包的位置是:
  http://jakarta.apache.org/builds/ja...1.12-src.tar.gz
  apr-0.9.1.tar.gz
  下蝲地址Q?a target=_blank rel=nofollow>http://www.apache.org/dist/apr/apr-0.9.1.tar.gz
  autoconf-2.52-ximian.1.i386.rpm
  下蝲地址Q?a target=_blank rel=nofollow>http://rpmfind.net/linux/RPM/helix/...ian.1.i386.html
  先用rpm安装autoconf-2.52Q因Z面的安装要用到Q?
  然后解开jakarta-tomcat-connectors-4.1.12-src.tar.gzQ生成jakarta-tomcat-connectors­-4.1.12-src目录Q?
  q入jakarta-tomcat-connectors-4.1.12-src/webapp的目录里Q再把apr-0.9.1.tar.gz解到q个目录?shy;Q?
  q把刚生成的目录apr-0.9.1的目录名Ҏapr?
  q是在webapp目录Q运行以下命令:
  # support/buildconf.sh
  此时如果autoconf的版本低?.52的话会报错退出,所以必d安装autoconf-2.52?
  当命令成功结束后会在当前目录下生成configure文g?
  依次q行以下命oQ?

  # ./configure --with-apxs=/usr/local/apache/bin/apxs
  # make
  # cp apache-2.0/mod_webapp.so /usr/local/apache/modules

  现在mod_webapp.so已经制作好了Qƈ已经拯到apache的modules目录下?
  ~辑apache的配|文Ӟ在最后加上如下几行:
  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
  LoadModule webapp_module modules/mod_webapp.so
  WebAppConnection Connector warp localhost:8008
  WebAppDeploy examples Connector /examples
  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=

  q行以下命oQ?
  # /usr/local/apache/bin/apachectl configtest

如果出现错误说你的apache的httpd.conf有问题后面的错误?inviad virual host"

p明你的httpd.conf的ServerName没有设,把ServerName前面?#"L可以了Q(q是差了好多资料才得到的{案Q我也是在这­儿困惑了好多天了Q?

  只要出现“Syntax OK”p明mod_webapp.so已经安装成功了?
  启动apache
  # /usr/local/apache/bin/apachectl start
  讉Khttp://localhost/examples 可以看到tomcat的例子程序了?

注意Q一定要先启动tomcat 然后再重新启动apache!

三、虚拟主Z的配|、管理和应用

  下面以一个例子来说明虚拟L如何同时使用Apache与Tomcat4

  虚拟Lhost1的目录结构如下所C:

  /www               
   |---host1  虚拟Lhost1的主目录
   |  |--htdocs  普通根目录Q用于显C静态页面或phpE序
   |  |----logs  apache讉K日志
   |  |----webapps java应用目录Q新加,与tomcat的webapps目录无Q何关联)
   |     |--ROOT jsp根目录:用于昄jsp面E序
   |     |----jive 一套java应用实例
   |---host2   虚拟Lhost2的主目录
  ............

  原来的apache的配|文件是q样配置的:

  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
  NameVirtualHost xxx.xxx.xxx.xxx

  < VirtualHost xxx.xxx.xxx.xxx >
  ServerName host1.mydomain.com
   ServerAdmin webmas...@mydomain.com
   DocumentRoot /www/host1/htdocs
   ErrorLog /www/host1/logs/error_log
  CustomLog /www/host1/logs/access_log common
  < /VirtualHost >
  .............

  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?

  现在要让虚拟Lhost1能同时用Apache与Tomcat4Q需要做如下配置Q?

  1、编辑tomcat的配|文件server.xmlQ在最后的部分做如下修改:

  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
  < !-- Define an Apache-Connector Service -- >

  < Service name="Tomcat-Apache" >

  < Connector className="org.apache.catalina.connector.warp.WarpConnector"
  port="8008" minProcessors="5" maxProcessors="75"
  enableLookups="true" appBase="webapps"
  acceptCount="10" debug="0"/ >

< Engine className="org.apache.catalina.connector.warp.WarpEngine"
  name="Apache" debug="0" >

  < Logger className="org.apache.catalina.logger.FileLogger"
  prefix="apache_log." suffix=".txt"
timestamp="true"/ >

  < Realm className="org.apache.catalina.realm.MemoryRealm" / >

< !-- 下面是新加的内容 -- >

  < Host name="host1.mydomain.com" debug="0" appBase="/www/host1/webapps"
uppackWars="true" autoDeploy="true" >
  < Context path="" docBase="ROOT" debug="0"/ >
< !-- 下面套用的是tomcat自带的管理页面,在虚拟主Z也可使用 -- >
< Context path="/manager" debug="0" privileged="true"
  docBase="/opt/tomcat/server/webapps/manager"/ >
  < Context path="/jive" docBase="jive" debug="0"
reloadable="true" crossContext="true"/ >
  < Logger className="org.apache.catalina.logger.FileLogger"
prefix="host1_log." suffix=".txt"
  timestamp="true"/ >
  < /Host >

< !-- 新加内容l束 -- >

< /Engine >

  < /Service >
  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
  2、编辑tomcat的管理权限文件tomcat-users.xmlQ在中间加一行:
< user username="myname" password="mypasswd" roles="standard,manager"/ >
  3、编辑apache的配|文Ӟ做如下修?
  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
  LoadModule webapp_module libexec/mod_webapp.so
  AddModule mod_webapp.c
  WebAppConnection warpConnection warp localhost:8008
  NameVirtualHost xxx.xxx.xxx.xxx
  < VirtualHost xxx.xxx.xxx.xxx >
  ServerName host1.mydomain.com
   ServerAdmin webmas...@mydomain.com
   DocumentRoot /www/host1/htdocs
   ErrorLog /www/host1/logs/error_log
   CustomLog /www/host1/logs/access_log common

   WebAppDeploy ROOT warpConnection /

  #注:此行的作用是把ROOT目录作ؓ虚拟LURL的根Qƈ使前面定义的根htdocs失效?
  #但如果不x个虚拟主机都使用jsp面E序Q而想使用大量静态页面或phpE序的话Q?
  #p使用下面q行Qƈ把所有的静态页面和phpE序攑֜htdocs目录下?
  # WebAppDeploy ROOT warpConnection /jsp

   WebAppDeploy manager warpConnection /manager
  WebAppDeploy jive warpConnection /jive
  #在server.xml里每定义一个都要在q里加一条WebAppDeploy?

  < /VirtualHost >
  Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?

  4、将tomcat用户设成/www/host1/webapps以下所有目录文件的属主?

  要注意的是,以后如果想上传或改动该目录以下的文gQ都要将其属L成tomcat?
  Q如果一直是以rootw䆾q行tomcatQ这步可以省略。)

  # chown -R tomcat:tomcat /www/host1/webapps
  5、重起tomcatQ?
  # su - tomcat -c "/opt/tomcat/bin/shutdown.sh"
  # su - tomcat -c "/opt/tomcat/bin/startup.sh"
  6、重起apacheQ?
  /usr/local/apache/bin/apachectl restart

  此时讉Khttp://host1.mydomain.com/manager/html 会提C入密码,在输入正的 myname和mypasswd后,׃看到“Tomcat Web Application Manager”的页面,里面?Application Path已经是虚拟主机里配置的信息了Qƈ可以对其q行理?
  到此虚拟L下的配置和管理就全部完成Q剩下的事情是试和应用了。在上面的例?
  里我们已l安装了jiveQ经试已经可以正常q行



Javaphua 2007-04-03 11:42 发表评论
]]>
[转]Java源码分析Q深入探讨Iterator模式http://m.tkk7.com/Javaphua/archive/2007/03/21/105290.htmlJavaphuaJavaphuaWed, 21 Mar 2007 07:54:00 GMThttp://m.tkk7.com/Javaphua/archive/2007/03/21/105290.htmlhttp://m.tkk7.com/Javaphua/comments/105290.htmlhttp://m.tkk7.com/Javaphua/archive/2007/03/21/105290.html#Feedback0http://m.tkk7.com/Javaphua/comments/commentRss/105290.htmlhttp://m.tkk7.com/Javaphua/services/trackbacks/105290.htmlJava源码分析Q深入探讨Iterator模式

作者:廖雪?/a>

作者简?/h4>

廖雪峎ͼ软g工程师,C事J2EE开发,您可以通过asklxf@163.com与他联系?/p>

正文


java.util包中包含了一pd重要的集合类。本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的P代模式的源码实现内幕?/p>

下面我们先简单讨Z个根接口CollectionQ然后分析一个抽象类AbstractList和它的对应Iterator接口Qƈ仔细研究q代子模式的实现原理?/p>

本文讨论的源代码版本是JDK 1.4.2Q因为JDK 1.5在java.util中用了很多泛型代码Qؓ了简化问题,所以我们还是讨?.4版本的代码?/p>

集合cȝҎ口Collection


Collection接口是所有集合类的根cd。它的一个主要的接口Ҏ是:

    boolean add(Object c)

add()Ҏ添加一个新元素。注意这个方法会q回一个booleanQ但是返回g是表C添加成功与否。仔l阅读doc可以看到QCollection规定Q如果一个集合拒l添加这个元素,无论M原因Q都必须抛出异常。这个返回DC的意义是add()Ҏ执行后,集合的内Ҏ否改变了Q就是元素有无数量,位置{变化)Q这是由具体cd现的。即Q如果方法出错,M抛出异常Q返回g仅表CҎ执行后这个Collection的内Ҏ无变化?/p>

cM的还有:

    boolean addAll(Collection c);
    boolean remove(Object o);
    boolean removeAll(Collection c);
    boolean remainAll(Collection c);

Object[] toArray()Ҏ很简单,把集合{换成数组q回。Object[] toArray(Object[] a)Ҏ有点复杂了Q首先,q回的Object[]仍然是把集合的所有元素变成的数组Q但是类型和参数a的类型是相同的,比如执行Q?/p>
    String[] o = (String[])c.toArray(new String[0]);

得到的o实际cd是String[]?/p>

其次Q如果参数a的大装不下集合的所有元素,q回的将是一个新的数l。如果参数a的大能装下集合的所有元素,则返回的q是aQ但a的内容用集合的元素来填充。尤其要注意的是Q如果a的大比集合元素的个数还多,a后面的部分全部被|ؓnull?/p>

最后一个最重要的方法是iterator()Q返回一个IteratorQP代子Q,用于遍历集合的所有元素?/p>

用Iterator模式实现遍历集合


Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合cM抽象出来Q从而避免向客户端暴露集合的内部l构?/p>

例如Q如果没有用IteratorQ遍历一个数l的Ҏ是用烦引:

    for(int i=0; i<array.size(); i++) { ... get(i) ... }

而访问一个链表(LinkedListQ又必须使用while循环Q?/p>
    while((e=e.next())!=null) { ... e.data() ... }

以上两种Ҏ客户端都必须事先知道集合的内部结构,讉K代码和集合本w是紧耦合Q无法将讉K逻辑从集合类和客L代码中分d来,每一U集合对应一U遍历方法,客户端代码无法复用?/p>

更恐怖的是,如果以后需要把ArrayList更换为LinkedListQ则原来的客L代码必须全部重写?/p>

决以上问题,Iterator模式L用同一U逻辑来遍历集合:

    for(Iterator it = c.iterater(); it.hasNext(); ) { ... }

奥秘在于客户端自w不l护遍历集合?指针"Q所有的内部状态(如当前元素位|,是否有下一个元素)都由Iterator来维护,而这个Iterator由集合类通过工厂Ҏ生成Q因此,它知道如何遍历整个集合?/p>

客户端从不直接和集合cL交道Q它L控制IteratorQ向它发?向前"Q?向后"Q?取当前元?的命令,可以间接遍历整个集合?/p>

首先看看java.util.Iterator接口的定义:

    public interface Iterator {
        boolean hasNext();
        Object next();
        void remove();
    }

依赖前两个方法就能完成遍历,典型的代码如下:

    for(Iterator it = c.iterator(); it.hasNext(); ) {
        Object o = it.next();
        // 对o的操?..
    }

在JDK1.5中,q对上面的代码在语法上作了简化:

    // Type是具体的cdQ如String?
    for(Type t : c) {
        // 对t的操?..
    }

每一U集合类q回的Iterator具体cd可能不同QArray可能q回ArrayIteratorQSet可能q回SetIteratorQTree可能q回TreeIteratorQ但是它们都实现了Iterator接口Q因此,客户端不兛_到底是哪UIteratorQ它只需要获得这个Iterator接口卛_Q这是面向对象的威力?/p>

Iterator源码剖析


让我们来看看AbstracyList如何创徏Iterator。首先AbstractList定义了一个内部类Qinner classQ:

    private class Itr implements Iterator {
        ...
    }

而iterator()Ҏ的定义是Q?/p>
    public Iterator iterator() {
        return new Itr();
    }

因此客户端不知道它通过Iterator it = a.iterator();所获得的Iterator的真正类型?/p>

现在我们兛_的是q个x为private的ItrcL如何实现遍历AbstractList的:

    private class Itr implements Iterator {
        int cursor = 0;
        int lastRet = -1;
        int expectedModCount = modCount;
    }

ItrcM?个int变量Q还有一个隐含的AbstractList的引用)来实现遍历,cursor是下一ơnext()调用时元素的位置Q第一ơ调用next()返回烦引ؓ0的元素。lastRet记录上一ơ游标所在位|,因此它L比cursor??/p>

变量cursor和集合的元素个数军_hasNext()Q?/p>
    public boolean hasNext() {
        return cursor != size();
    }

Ҏnext()q回的是索引为cursor的元素,然后修改cursor和lastRet的|

    public Object next() {
        checkForComodification();
        try {
            Object next = get(cursor);
            lastRet = cursor++;
            return next;
        } catch(IndexOutOfBoundsException e) {
            checkForComodification();
            throw new NoSuchElementException();
        }
    }

expectedModCount表示期待的modCount|用来判断在遍历过E中集合是否被修改过。AbstractList包含一个modCount变量Q它的初始值是0Q当集合每被修改一ơ时Q调用addQremove{方法)QmodCount?。因此,modCount如果不变Q表C集合内Ҏ被修攏V?/p>

Itr初始化时用expectedModCount记录集合的modCount变量Q此后在必要的地方它会检modCount的|

    final void checkForComodification() {
        if (modCount != expectedModCount)
            throw new ConcurrentModificationException();
    }

如果modCount与一开始记录在expectedModeCount中的g{,说明集合内容被修改过Q此时会抛出ConcurrentModificationException?/p>

q个ConcurrentModificationException是RuntimeExceptionQ不要在客户端捕获它。如果发生此异常Q说明程序代码的~写有问题,应该仔细查代码而不是在catch中忽略它?/p>

但是调用Iterator自n的remove()Ҏ删除当前元素是完全没有问题的Q因为在q个Ҏ中会自动同步expectedModCount和modCount的|

    public void remove() {
        ...
        AbstractList.this.remove(lastRet);
        ...
        // 在调用了集合的remove()Ҏ之后重新讄了expectedModCountQ?
        expectedModCount = modCount;
        ...
    }

要确保遍历过E顺利完成,必须保证遍历q程中不更改集合的内容(Iterator的remove()Ҏ除外Q,因此Q确保遍历可靠的原则是只在一个线E中使用q个集合Q或者在多线E中寚w历代码进行同步?/p>

最后给个完整的CZQ?/p>
    Collection c = new ArrayList();
    c.add("abc");
    c.add("xyz");
    for(Iterator it = c.iterator(); it.hasNext(); ) {
        String s = (String)it.next();
        System.out.println(s);
    }

如果你把W一行代码的ArrayList换成LinkedList或VectorQ剩下的代码不用改动一行就能编译,而且功能不变Q这是针对抽象~程的原则:对具体类的依赖性最?/p>

Javaphua 2007-03-21 15:54 发表评论
]]>
Oracle 10g的一个小问题http://m.tkk7.com/Javaphua/archive/2007/01/05/91948.htmlJavaphuaJavaphuaFri, 05 Jan 2007 04:56:00 GMThttp://m.tkk7.com/Javaphua/archive/2007/01/05/91948.htmlhttp://m.tkk7.com/Javaphua/comments/91948.htmlhttp://m.tkk7.com/Javaphua/archive/2007/01/05/91948.html#Feedback3http://m.tkk7.com/Javaphua/comments/commentRss/91948.htmlhttp://m.tkk7.com/Javaphua/services/trackbacks/91948.html         启动Nơ也无法启动Q重启操作系l,也是一L错误Q很恼火Q拔掉网U一试,成功启动了,不知Z么,特向高手们请教?Qoracle 10g是在不联|的状态下安装的,会不会跟安装有问题?Q?img src ="http://m.tkk7.com/Javaphua/aggbug/91948.html" width = "1" height = "1" />

Javaphua 2007-01-05 12:56 发表评论
]]>
Q{Q一个程序员的成长的六个阶段http://m.tkk7.com/Javaphua/archive/2006/12/30/91002.htmlJavaphuaJavaphuaSat, 30 Dec 2006 05:55:00 GMThttp://m.tkk7.com/Javaphua/archive/2006/12/30/91002.htmlhttp://m.tkk7.com/Javaphua/comments/91002.htmlhttp://m.tkk7.com/Javaphua/archive/2006/12/30/91002.html#Feedback0http://m.tkk7.com/Javaphua/comments/commentRss/91002.htmlhttp://m.tkk7.com/Javaphua/services/trackbacks/91002.html 一个程序员的成长的六个阶段

本文转自csaiQ挺有意?br />


W一阶段

此阶D主要是能熟l地使用某种语言。这q当于l武中的套\和架式这些表面的东西?br />
W二阶段

此阶D能_N基于某U^台的接口Q例如我们现在常用的Win 32的API函数Q以及所对应语言的自w的库函数。到达这个阶D后Q也q当于可以q行真实散打对练了,可以真正地在实践中做些应用?br />
W三阶段

此阶D能深入C解某个^台系l的底层Q已l具有了初的内功的能力Q也是“手中有剑,心中无剑”?br />
W四阶

此阶D能直接在^Cq行比较深层ơ的开发。基本上Q能辑ֈq个层次可以说是进入了高层ơ。这时进入了高内功的修点{比如能q行VxD或操作系l的内核的修攏V?br />
q时已经不再有语a的束~,语言只是一U工P即要用自己不会的语aq行开发,也只是简单地熟悉一下,手到擒来,完全不像是第一阶段的时候学习语a的那U情c一般来_从第三阶D过渡到W四阶段是比较困隄。ؓ什么会隑֑Q这是因ؓ很多人的思想变不q来?br />
W五阶

此阶D就已经不再局限于单的技术上的问题了Q而是能从全局上把握和设计一个比较大的系l体pȝ构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶D以后,能对市面上的M软gq行剖析Qƈ能按自己的要求进行设计,q是MS Wordq样的大型YӞ只要有充的旉Q也一定会设计出来?br />
W六阶

此阶D也是最高的境界Q达到“无招胜有招”。这时候,M问题q_变成了一个思\的问题,不是用什么代码就能表C的。也是“手中无剑,心中也无剑”?br />
此时Q对于练功的人来_他已不用再去学什么少林拳Q只是在旁看一下少林拳的对战,p把此x来就用。这是真正的大师的h物。这ӞWin 32或Linux在你眼里是没有什么差别的?br />
每一个阶D再向上发展旉要按一定的Ҏ。第一、第二个阶段通过自学可以完成,只要多用心去研究Q耐心地去学习?br />
要想从第二个阶段q渡到第三个阶段Q就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。经q二、三q的U篏p辑ֈW三个阶Dc但是,有些人到辄三个阶段后,常常很难有境界上的H破了。他们这时会产生一U观念,认ؓ软g无非如此Q认己已无所不能。其实,q时如果遇到大的或难些的软gQ他们往往q是无从下手?br />
现在我们国家大部分程序员都是在第二、三U之间。他们大多都是通过自学成才的,不过q样的程序员一般在软g公司也能独当一面,完成一些Y件的模块?br />
但是Q也q有一大堆处在W一阶段的程序员Q他们一般就能玩玩VBQ做E序ӞL一堆控仉成一个Y件?/div>

Javaphua 2006-12-30 13:55 发表评论
]]>
վ֩ģ壺 av뾫Ʒַ| AרAV| þþƷavպ| ƷŮƵۿ| ƷƵ| պ޹Ƶ| ĻӰԺww4164h| ŷձƷ| Ѷ| ޹ۺ| Ƶ| ձһ߲Ͷ߲Ա| ձ2019߹ۿ| һƵ| һ߹ۿƵ| ŷۺһ| ѿŮˬƵ| ù͵v͵v| ޾Ʒ鶹av| avڹƬ| ޵Ӱ߹ۿ| ѿƬ| ŷպ| Ƭ91Ʒѿ3 | һƵ| µĻ| ˵avһ2| ëƬַ߹ۿĻ| ˵Ӱѹۿ| þþƷAV뽿ɫ| ۲ӰԺѹۿ| ŮaëƬѹۿ| AVר4SE| ߹ۿվ | ҹëƬavþþ| ձػɫѴƬ| 99þѹۺϾƷ| 337pձŷ޴ɫ| ŮƬѹۿƵ| ձaƵ| þ޹˾Ʒɫ|