??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品一二三在,亚洲午夜一区,亚洲欧美精品一区二区http://www.aygfsteel.com/Steven-Liu/zh-cnThu, 19 Jun 2025 10:25:15 GMTThu, 19 Jun 2025 10:25:15 GMT60Tomcat与Http服务器的集成http://www.aygfsteel.com/Steven-Liu/archive/2006/04/06/39667.htmlSteven LiuSteven LiuThu, 06 Apr 2006 11:44:00 GMThttp://www.aygfsteel.com/Steven-Liu/archive/2006/04/06/39667.htmlhttp://www.aygfsteel.com/Steven-Liu/comments/39667.htmlhttp://www.aygfsteel.com/Steven-Liu/archive/2006/04/06/39667.html#Feedback0http://www.aygfsteel.com/Steven-Liu/comments/commentRss/39667.htmlhttp://www.aygfsteel.com/Steven-Liu/services/trackbacks/39667.html我是以Tomcat5.0.16Qapache_2.0.55Http ServerQmod_jk-apache-2.0.55.so jk插gq行集成?br />一、基本原?br />Tomcat的两个常用连接器Q?br />W一个连接器监听8080端口Q负责徏立HTTPq接。在通过览器访问Tomcat服务器的Web应用Ӟ使用的就是这个连接器。  
W二个连接器监听8009端口Q负责和其他的HTTP服务器徏立连接。在把Tomcat与其他HTTP服务器集成时Q就需要用到这个连接器?br />
查看conf/server.xml文gQ?br />
<Service name="Catalina">
    
<Connector acceptCount="100" connectionTimeout="20000" port="8080" redirectPort="8443" disableUploadTimeout="true">
    
</Connector>
    
<Connector protocol="AJP/1.3" port="8009" redirectPort="8443" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler">
    
</Connector>
    
<Engine defaultHost="localhost" name="Catalina">
      
<Host appBase="webapps" name="localhost">
        
<Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_log." timestamp="true"/>
      
</Host>
      
<Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="catalina_log." timestamp="true"/>
      
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    
</Engine>
  
</Service>
Ҏ以上ServiceQ可以tomcat的安装目录找到conf/Catalina/localhost目录Q里面的XML文g为配|该service所有的ContextQ一个xml文g对应一个context配置?br />打开admin.xmlQ?br />
<Context privileged="true" path="/admin" displayName="Tomcat Administration Application" docBase="../server/webapps/admin">
  
<Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_admin_log." timestamp="true"/>
</Context>
可以看到Q配|了一?admin的contextQ其docBase?server/webapps/admin?br />二、集成目?br />我们对tomcat和http 服务器进行集成的目标是Q让http服务器在80端口q行监听Q如果碰到访问静态的html/囄文g讉KQ直接由http服务器进行处理。如果碰到jsp/servlet{访问,则通过jk插gQ{发到tomcat监听?009端口Q由tomcat处理?br />三、实施步?/font>
1、安装apache http server, tomcat. 从略?br />2、安装jk插g?br />把mod_jk-apache-2.0.55.so拯到http server?modules目录卛_?br />3、配|apache htpp serverQ打开conf/httpd.conf文gQ?br />(1)修改Website根目录,
扑ֈDocumentRootQ改Zx|网站根目录的地?br />DocumentRoot "D:/java/Tomcat5.0/webapps/ROOT"
(2)加蝲jk插g及配|属?br />
#加蝲模块
LoadModule jk_module modules/mod_jk-apache-
2.0.55.so
#工作属性文?br />JkWorkersFile conf/workers.properties
#日志存放
JkLogFile logs/mod_jk2.log
#日志{
JkLogLevel info
#日期格式
JkLogStampFormat 
"[%a %b %d %H:%M:%S %Y]"
#日志格式
JkRequestLogFormat 
"%w %V %T"
#Url转发到tomcat
JkMount /*.jsp worker1
JkMount /*.page worker1
4、新建conf/workers.properties
#让mod_jk模块知道Tomcat
workers.tomcat_home
=D:\java\Tomcat5.0
  
#让mod_jk模块知道j2sdk
workers.java_home
=D:\java\j2se

#所配置的Tomcat列表
worker.list
=worker1

#工作端口Q若没占用则不用修改
worker.worker1.port
=8009  
  
#Tomcat服务器的地址
worker.worker1.host
=localhost
  
#cd
worker.worker1.type
=ajp13
5、配|tomcat
安装tomcat后,会发现webapps已经有许多目录,其中已有一个Root为tomcat默认?/"context.
tomcat webapps下的一些不需要的目录删去Q把Root下的文g删除Qƈ把你需要配|的|站内容拯到此目录下?br />扑ֈconf/Catalina/localhost目录Q删除一些没用的xml文gQ有些xml文g是tomcat启动时按照webapps的目录自动生的context?br />四、开发时配置
在进行开发时Q如果我们用的是tomcatQ我们可以采用此U方法进行配|?br />1、通过http://localhost:6060/index.jsp?a href="http://localhost/index.jsp">http://localhost/index.jsp讉K效果是一LQ?br />?a href="http://localhost/aBigPicture.gif">http://localhost/aBigPicture.gif的访问可能比直接讉Ktomcat要快多了?br />2、进?a href="http://localhost:6060/admin">http://localhost:6060/adminQ默认user:admin,password为空Q?br />查看service下面的contextQ最好把当前开发的web的context的reloadable讄为trueQ我们所做的修改tomcat会自动重新加载,不用重启tomcatp立即看到新的变化?br />3、在eclipse中将|站的源代码发布到tomcat中有两种ҎQ?br />一U是采用eclipse自带的depoly功能Q将web发布到webapps/ROOT目录Q或M目录Q对应的只是修改conf/Catalina/localhost的xml文g?br />另一U方法是采用antQ一个xml文g用于全发?clean,compile,java,copy)Q另一个xml文g则只发布修改?compile,copy)?br />项目用W一U方便,每次修改了源代码Q只需h一下,eclipsep动帮你depoly到目的地Q?br />当采用第二种Ӟ每次修ҎQ需要运行一ơantQ把修改的内定w新拷贝ƈ发布q去Q如果发布的内容很脏Ӟ有时需全发?clean,compile,java,copy)?br />
配置httpd.conf和workers.properties的详l内容,请参考:
http://tomcat.apache.org/connectors-doc/

Steven Liu 2006-04-06 19:44 发表评论
]]>
javascript中一个事件激zd个函?/title><link>http://www.aygfsteel.com/Steven-Liu/archive/2006/04/06/39606.html</link><dc:creator>Steven Liu</dc:creator><author>Steven Liu</author><pubDate>Thu, 06 Apr 2006 07:59:00 GMT</pubDate><guid>http://www.aygfsteel.com/Steven-Liu/archive/2006/04/06/39606.html</guid><wfw:comment>http://www.aygfsteel.com/Steven-Liu/comments/39606.html</wfw:comment><comments>http://www.aygfsteel.com/Steven-Liu/archive/2006/04/06/39606.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Steven-Liu/comments/commentRss/39606.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Steven-Liu/services/trackbacks/39606.html</trackback:ping><description><![CDATA[ <p> <strong> <font color="#ff9900" size="4">问题描述:</font> </strong> <br />已有如下代码Q?/p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">body </span> <span style="COLOR: #ff0000">onLoad</span> <span style="COLOR: #0000ff">="MM_timelinePlay('Timeline1')"</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <img src="http://www.aygfsteel.com/images/dot.gif" /> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <img src="http://www.aygfsteel.com/images/dot.gif" /> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">body</span> <span style="COLOR: #0000ff">></span> </div>即document.body.onload事g已经l定了一个函数?br />现需要onload时激zd外一个函敎ͼ?font color="#0066ff">enetgetMsg()Q?/font>如何处理Q?br /><br /><font color="#ff66ff" size="4"><strong>解决ҎQ?br /></strong><font color="#000000">alert(<font size="3">document.body.onload.toString())<br />弹出H口的内容ؓQ?br />function anonymous()<br />{<br />  <font color="#0000ff">MM_timelinePlay('Timeline1')</font><br />}<br />可见Q当对onloadl定一个函数时Qjavascript自定义了一个函敎ͼ在该自定义函C内调用了该绑定函数?br />解决Ҏ一Q?br />重新写一函数Q?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_21_67_Open_Image" onclick="this.style.display='none'; Codehighlighter1_21_67_Open_Text.style.display='none'; Codehighlighter1_21_67_Closed_Image.style.display='inline'; Codehighlighter1_21_67_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_21_67_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_67_Closed_Text.style.display='none'; Codehighlighter1_21_67_Open_Image.style.display='inline'; Codehighlighter1_21_67_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> bodyOnload()</span><span id="Codehighlighter1_21_67_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/images/dot.gif" /></span><span id="Codehighlighter1_21_67_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />MM_timelinePlay('Timeline1');<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />enetgetMsg();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">body </span><span style="COLOR: #ff0000">onLoad</span><span style="COLOR: #0000ff">="bodyOnload()"</span><span style="COLOR: #0000ff">></span></div>解决Ҏ二:<br />利用javascript重定义函数的功能Q?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">newBodyload</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">enetgetMsg();</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(document.body.onload)<br /><img id="Codehighlighter1_54_199_Open_Image" onclick="this.style.display='none'; Codehighlighter1_54_199_Open_Text.style.display='none'; Codehighlighter1_54_199_Closed_Image.style.display='inline'; Codehighlighter1_54_199_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_54_199_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_199_Closed_Text.style.display='none'; Codehighlighter1_54_199_Open_Image.style.display='inline'; Codehighlighter1_54_199_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_54_199_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/images/dot.gif" /></span><span id="Codehighlighter1_54_199_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />eval(document.body.onload.toString().replace('anonymous()','oldBodyload()'));<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />document.body.onload</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Function(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">oldBodyload();</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">newBodyload);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> document.body.onload</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Function(newBodyload);</span></div></font></font></font>昄Q第二种Ҏ更好Q因U方法实现时不必兛_以前q个事gl定了多个函数Q不需修改原先的代码,透明地增加一个函数。(decorate模式Q透明地增加功?img height="19" src="http://www.aygfsteel.com/Emoticons/regular_smile.gif" width="19" border="0" />Q?img src ="http://www.aygfsteel.com/Steven-Liu/aggbug/39606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Steven-Liu/" target="_blank">Steven Liu</a> 2006-04-06 15:59 <a href="http://www.aygfsteel.com/Steven-Liu/archive/2006/04/06/39606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在RedHat Enterprise 4.0下面安装MySQL http://www.aygfsteel.com/Steven-Liu/archive/2006/03/31/38517.htmlSteven LiuSteven LiuFri, 31 Mar 2006 09:57:00 GMThttp://www.aygfsteel.com/Steven-Liu/archive/2006/03/31/38517.htmlhttp://www.aygfsteel.com/Steven-Liu/comments/38517.htmlhttp://www.aygfsteel.com/Steven-Liu/archive/2006/03/31/38517.html#Feedback0http://www.aygfsteel.com/Steven-Liu/comments/commentRss/38517.htmlhttp://www.aygfsteel.com/Steven-Liu/services/trackbacks/38517.html 前段旉参加一个linux/C++目Q碰C些问题,现逐步整理出来?img height="20" src="http://www.aygfsteel.com/Emoticons/QQ/15.gif" width="20" border="0" />
我用的RHEL的内核版本是2.6.9
-11EL?br />问题描述Q?/strong>

1 、在 RHEL4.0 盘中自带?/span> MySQL4.10 的数据库Q客L的ؓ 3.25 版本。在安装Ӟ选择安装此数据库Q装完后却发C能用 L Q可能是因ؓ链接库的问题?/span>

2 、下?/span> MySQL4.16 的安装文Ӟ包括 shared Q?/span> server Q?/span> client Q安装完成后Q发现还是不能用 L ?br />

冒昧猜测Q?br />RHEL4.0中自带的mysqlҎ׃能用Qƈ且误g多h不相信自带的东西不能用?img height="20" src="http://www.aygfsteel.com/Emoticons/QQ/silence.gif" width="20" border="0" />

安装
MySQL
之前Q将原先已安装的M有关 MySQL 的包q行清除?/span>

主要针对以下两种 MySql 包进行清除:

1 ?/span> RHEL4.0 自带?/span> MySql 包,即在安?/span> RHEL4.0 的时候,没有选择安装 Mysql Q也会默认安?/span> Mysql3.23 的客L。因此在安装之前Q应予以清除?/span>

查看已安装的Q?/span>

>rpm –qa| grep mysql

然后删除每个已安装的包,

>rpm –e mysql-client-3.25***

如果pȝ提示此包有被别的包用,q时需要先删除q个依赖包,然后再一步步地往上删除。请具体情况具体分析Q多看屏q提C?/span> J

2 、删除一些自已安装的 rpm 包?/span>

查看已安装的Q?/span>

>rpm –qa|grep MySQL

同样圎ͼ然后一个个地删除已安装的包Q?/span>

>rpm –e MySQL-server*****


采用~译
MySQL
源码的Ş式安?/span> MySQL Q这h较具有通用性?br />感悟Q编译源代码安装软g是最q硬的安装方法,有时q是很好的解x案。当然代h安装q程比较烦琐?/u>

下蝲 MySQL 的源代码Q这里假设下载的?/span> mysql-VERSION.tar.gz q样的一个包Q具体的 VERSION 代表具体的版本:

1 、ؓ ‘mysqld?/font> 增添一个登陆用户和l。如果前面已安装qmysql,可能已存在组和用戗?/span>

shell> groupadd mysql
shell> useradd -g mysql mysql

2 、将源码解压后一个目录,最好把源码攑ֈ tmp 目录Q解到此目录中。具体解包,可以采用 RHEL4 中的囑Ş操作解压~方法,不必打命令?/span>

shell> gunzip < mysql-VERSION.tar.gz | tar -xvf ?

3 、进入已解压~的目录

shell> cd mysql-VERSION

4 、配|安装, /usr/local/mysql 为安装\?/span>

shell> ./configure --prefix=/usr/local/mysql

5 、编译与安装

shell> make

shell> make install

6 、拷贝选项模板文g

shell> cp support-files/my-medium.cnf /etc/my.cnf

7 、安装数据库

shell> cd /usr/local/mysql

shell> bin/mysql_install_db
8 、更Ҏ件夹d权限

shell> chown -R root .

shell> chown -R mysql var

shell> chgrp -R mysql .

9 、启?/span> mysql

shell> bin/mysqld_safe &

Steven Liu 2006-03-31 17:57 发表评论
]]>
项目的工作要点http://www.aygfsteel.com/Steven-Liu/archive/2006/03/31/38509.htmlSteven LiuSteven LiuFri, 31 Mar 2006 09:07:00 GMThttp://www.aygfsteel.com/Steven-Liu/archive/2006/03/31/38509.htmlhttp://www.aygfsteel.com/Steven-Liu/comments/38509.htmlhttp://www.aygfsteel.com/Steven-Liu/archive/2006/03/31/38509.html#Feedback0http://www.aygfsteel.com/Steven-Liu/comments/commentRss/38509.htmlhttp://www.aygfsteel.com/Steven-Liu/services/trackbacks/38509.html公司最q接C个小目Q帮一个学院做一个网站。经理安排了我们两个人做Q时间只有两周。BTWQ我们公司有自己的CMS产品Q所谓的做网站只是基于这个进行功能定制和扩充?br />我刚从其它项目退下来Q这个项目不熟悉Q经理要我做部分模块Q然后由那h负责集成?br />我们两个人接CQ务后Q你做你的,我做我的Q这光l理也没q问q。我们俩都以目处于瘫痪状态,因ؓ一直没有收到客L明确需求,不知道要切要上些啥?br />q星期一我请假了Q没来公司。星期二一到公司,l理问我的模块做得怎样了?我心里直W,我那点小东西早搞定了。星期二、星期三自己仍然漫不l过地把自己做得那点东西Ҏ?br />星期四了Q经理要求看成果了,说是星期五要到客户里LC。我跟那个兄弟一看这架式Q赶快合q。弄了半天,首页没排齐。经理是个老好人,也没发什么火Q只是叫我们俩合h把它弄好?br />我这边做的时候mysql安装的时候设|的~码是gbkQ而他那边做的时候mysql安装的时候设|的~码是latin-1Q我的数据库集成C那边的mysqlȝ话,p糕Q全是ؕ码?br />急……还好,扑ֈ了资料,知道了mysql支持数据库别的~码讄Q把自己机器上的mysql改ؓlatin-1Q然后重新徏数据?br />

CREATE   DATABASE  `forum`  DEFAULT   CHARACTER   SET  gbk COLLATE gbk_chinese_ci;
再测试,yeahQؕ码问题解冟?br />心里暗想Q把我数据库导到他的机子里,竟然不行Q?br />Mysql服务器设|?latin-1)Q徏了一个数据库讄为gbk------>q移到另一台mysql上面怎么?
最后在他机子上重徏数据库解冟?br />那兄弟家较远Q先回了Q经理也先回了。最后我一个h忙到?1点,才好不容易把面排版Q集成的问题搞定。BTWQ那兄弟人品好,做hCQ好学。所以ؓ他做点不Q心里很乐意?br />l理今天叫我们到会议室,聊了快二个小时。感觉还有点道理Q小C下?br />1、分工后Q只有两Z上参与,自己要交。事实:我俩感情是好Q可是交的都是生活上的事,技术上的交也是泛泛而谈Q偏偏对q种项目的事,我俩都不怎的׃?br />2、要有计划。预则立啊,q道理很显。事实:我俩都O不经心,没有把这目太当回事Q更不要说计划?br />3、要有主ơ之分。网站最重要的是观。首都对不齐,其它的再好也没用?br />4、微软的“多多原则”。小版本Q多发布Q多阶段?strong>带bug的Y件是可以发布Q关键是主要的地方要拿得出手?/font>
q一句意义最大,做Y件不要钻牛角,太钻技术细节,l果弄得l点C旉还没对齐?br />l论Q?br />1、做软g不要懒,该整理的时候一定要整理?br />2、做软g不要省,该配|的时候一定要配置Q两个h开发也一定要配版本管理?br />3、做软g要注意宏观?img src ="http://www.aygfsteel.com/Steven-Liu/aggbug/38509.html" width = "1" height = "1" />

Steven Liu 2006-03-31 17:07 发表评论
]]>
վ֩ģ壺 | | | | | | | | | Ȫ| üɽ| | ǭ| Դ| | ͩ| ʵ| ®| | | ƽ| | ˳| ޶| ʱ| | ʯ| ҽ| | ¬| ̨| ϻ| ˺| ɽ| ʲ| | 㶫ʡ| ¡| Զ| | |