﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-lycong</title><link>http://www.blogjava.net/lycong/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:25:45 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:25:45 GMT</pubDate><ttl>60</ttl><item><title>使用SAX对XML根据具体需求过滤标签和长度截取</title><link>http://www.blogjava.net/lycong/archive/2008/09/01/226198.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Mon, 01 Sep 2008 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/09/01/226198.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/226198.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/09/01/226198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/226198.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/226198.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 需要解决的问题是 根据一输入流读取一段XML内容，然后对其进行过滤截取，最后写回输出流中。具体说明如下：1.对XML根据特定需求，过滤标签（如SCRIPT,FRAME等非标准HTML标签），过滤属性（如onclick,onblur等）2.对XML进行长度截取，具体做法如下：（1）对start标签的处理： 若加上s...&nbsp;&nbsp;<a href='http://www.blogjava.net/lycong/archive/2008/09/01/226198.html'>阅读全文</a><img src ="http://www.blogjava.net/lycong/aggbug/226198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-09-01 21:26 <a href="http://www.blogjava.net/lycong/archive/2008/09/01/226198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决JSTL标签 &lt;c:forEach&gt; 循环  中途 break</title><link>http://www.blogjava.net/lycong/archive/2008/07/14/214720.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Mon, 14 Jul 2008 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/07/14/214720.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/214720.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/07/14/214720.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/214720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/214720.html</trackback:ping><description><![CDATA[如果直接使用&lt;c:forEach&gt; 直接在中间的代码中 插入break , 并不能退出循环。可以采用以下策略进行代换：<br />
1. 用 &lt;c:set var="collections" value="${forEach中的items}"/&gt;<br />
2. 用 jspContext.getAttribute("collections"); 获得对应的集合<br />
3.最后就用最原始的for()。
 <img src ="http://www.blogjava.net/lycong/aggbug/214720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-07-14 14:19 <a href="http://www.blogjava.net/lycong/archive/2008/07/14/214720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>将来2个月的学习计划</title><link>http://www.blogjava.net/lycong/archive/2008/07/10/213814.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Thu, 10 Jul 2008 12:33:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/07/10/213814.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/213814.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/07/10/213814.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/213814.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/213814.html</trackback:ping><description><![CDATA[1.重温《Thinking in Java》的IO、容器、并发部分，泛型编程：大约用2周时间<br />
2.重温《Core Java》的SWING ，大约用1周。<br />
3.由于公司近期准备开发一套IM系统，要重点学习一下有关网络编程，特别是TCP/IP知识，socket编程：2周时间<br />
5.学习《Ajax in Action》中Ajax高级应用部分。 1.5周<br />
4.学习《Code Complete》有关测试部分，要学会编写测试用例：1.5周时间<br />
 <img src ="http://www.blogjava.net/lycong/aggbug/213814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-07-10 20:33 <a href="http://www.blogjava.net/lycong/archive/2008/07/10/213814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>经常碰到的模块：修改密码 一 安全小技巧（服务器后台不返回密码）</title><link>http://www.blogjava.net/lycong/archive/2008/07/06/212428.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Sun, 06 Jul 2008 12:14:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/07/06/212428.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/212428.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/07/06/212428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/212428.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/212428.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 问题如下：当修改密码时，为了防止通过查看html源文件或其他方法看到用户的原始密码，一般服务器不会返回用户密码，可以利用javascript的技巧 ，在页面显示一虚假密码，然后判断密码是否修改过，如果真有修改过密码，才把密码送到后台服务器，否则不发送密码到后台服务器。 <br />
1. 页面显示代码：<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&lt;%--</span><span style="color: #000000">构造一个虚假的密码显示框</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">fmt:message&nbsp;key</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">falsity_password_defaultValue</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">falsity_password_defaultValue</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">falsity_password</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">falsity_password</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${falsity_password_defaultValue}</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${fn:escapeXml(param.falsity_password&nbsp;!=&nbsp;null&nbsp;?&nbsp;param.falsity_password&nbsp;:&nbsp;falsity_password_defaultValue)}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;autocomplete</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">off</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true_password</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">hidden</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
其中 falsity_password_defaultValue 为服务器端事先设置好的虚假密码（可以在资源文件中设置）， falsity_password 为页面显示的虚假密码，true_password 是当密码修改后，才发送到服务器， 下面就会对上面2个变量值作一些处理判断。<br />
<br />
2. 对是否修改过密码进行处理。<br />
A.当focus到密码框时，密码框清空， 到没有修改过密码就离开密码框时，就还原为虚假密码显示.<br />
B.当修改过密码后，就会把true_password的值设置为修改后的值。<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;!--</span><span style="color: #000000"><br />
<img id="Codehighlighter1_65_519_Open_Image" onclick="this.style.display='none'; Codehighlighter1_65_519_Open_Text.style.display='none'; Codehighlighter1_65_519_Closed_Image.style.display='inline'; Codehighlighter1_65_519_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_65_519_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_65_519_Closed_Text.style.display='none'; Codehighlighter1_65_519_Open_Image.style.display='inline'; Codehighlighter1_65_519_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;getTruePassword()</span><span id="Codehighlighter1_65_519_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_65_519_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">c:</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;test</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${param.edit&nbsp;==&nbsp;'modify'}</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;falsity_password&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">falsity_password</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;true_password&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">true_password</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_301_503_Open_Image" onclick="this.style.display='none'; Codehighlighter1_301_503_Open_Text.style.display='none'; Codehighlighter1_301_503_Closed_Image.style.display='inline'; Codehighlighter1_301_503_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_301_503_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_301_503_Closed_Text.style.display='none'; Codehighlighter1_301_503_Open_Image.style.display='inline'; Codehighlighter1_301_503_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(falsity_password&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;true_password)</span><span id="Codehighlighter1_301_503_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_301_503_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;defaultValue</span><span style="color: #000000">=</span><span style="color: #000000">falsity_password.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">default</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_422_495_Open_Image" onclick="this.style.display='none'; Codehighlighter1_422_495_Open_Text.style.display='none'; Codehighlighter1_422_495_Closed_Image.style.display='inline'; Codehighlighter1_422_495_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_422_495_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_422_495_Closed_Text.style.display='none'; Codehighlighter1_422_495_Open_Image.style.display='inline'; Codehighlighter1_422_495_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(falsity_password.value&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;defaultValue)&nbsp;</span><span id="Codehighlighter1_422_495_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_422_495_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true_password.value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;falsity_password.value;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">c:</span><span style="color: #0000ff">if</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">c:</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;test</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${param.edit&nbsp;==&nbsp;'modify'}</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;falsity_passwordNode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">falsity_password</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_664_1042_Open_Image" onclick="this.style.display='none'; Codehighlighter1_664_1042_Open_Text.style.display='none'; Codehighlighter1_664_1042_Closed_Image.style.display='inline'; Codehighlighter1_664_1042_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_664_1042_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_664_1042_Closed_Text.style.display='none'; Codehighlighter1_664_1042_Open_Image.style.display='inline'; Codehighlighter1_664_1042_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(falsity_passwordNode)&nbsp;</span><span id="Codehighlighter1_664_1042_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_664_1042_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_708_1036_Open_Image" onclick="this.style.display='none'; Codehighlighter1_708_1036_Open_Text.style.display='none'; Codehighlighter1_708_1036_Closed_Image.style.display='inline'; Codehighlighter1_708_1036_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_708_1036_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_708_1036_Closed_Text.style.display='none'; Codehighlighter1_708_1036_Open_Image.style.display='inline'; Codehighlighter1_708_1036_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object.extend(falsity_passwordNode,&nbsp;</span><span id="Codehighlighter1_708_1036_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_708_1036_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_741_868_Open_Image" onclick="this.style.display='none'; Codehighlighter1_741_868_Open_Text.style.display='none'; Codehighlighter1_741_868_Closed_Image.style.display='inline'; Codehighlighter1_741_868_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_741_868_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_741_868_Closed_Text.style.display='none'; Codehighlighter1_741_868_Open_Image.style.display='inline'; Codehighlighter1_741_868_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onfocus&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;</span><span id="Codehighlighter1_741_868_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_741_868_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_805_856_Open_Image" onclick="this.style.display='none'; Codehighlighter1_805_856_Open_Text.style.display='none'; Codehighlighter1_805_856_Closed_Image.style.display='inline'; Codehighlighter1_805_856_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_805_856_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_805_856_Closed_Text.style.display='none'; Codehighlighter1_805_856_Open_Image.style.display='inline'; Codehighlighter1_805_856_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.value&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">default</span><span style="color: #000000">"</span><span style="color: #000000">))&nbsp;</span><span id="Codehighlighter1_805_856_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_805_856_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;'';<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">,<br />
<img id="Codehighlighter1_901_1028_Open_Image" onclick="this.style.display='none'; Codehighlighter1_901_1028_Open_Text.style.display='none'; Codehighlighter1_901_1028_Closed_Image.style.display='inline'; Codehighlighter1_901_1028_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_901_1028_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_901_1028_Closed_Text.style.display='none'; Codehighlighter1_901_1028_Open_Image.style.display='inline'; Codehighlighter1_901_1028_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onblur&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;</span><span id="Codehighlighter1_901_1028_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_901_1028_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_939_1016_Open_Image" onclick="this.style.display='none'; Codehighlighter1_939_1016_Open_Text.style.display='none'; Codehighlighter1_939_1016_Closed_Image.style.display='inline'; Codehighlighter1_939_1016_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_939_1016_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_939_1016_Closed_Text.style.display='none'; Codehighlighter1_939_1016_Open_Image.style.display='inline'; Codehighlighter1_939_1016_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.value&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;'')&nbsp;</span><span id="Codehighlighter1_939_1016_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_939_1016_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">default</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">c:</span><span style="color: #0000ff">if</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">--&gt;&lt;/script&gt;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
判断falsity_password密码是否为虚假密码，若不是，则把true_password设置为修改过的密码。<br />
<br />
<br />
3.服务器端要判断是否修改过密码，若修改过才把密码传到后台进行修改，这里主要看true_password是否为" ",若不为" "，则说明密码修改过。<br />
这里可以通过tag来进行处理<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.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">c:</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;test</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${!empty&nbsp;param.true_password}</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_44_75_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_75_Open_Text.style.display='none'; Codehighlighter1_44_75_Closed_Image.style.display='inline'; Codehighlighter1_44_75_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_44_75_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_44_75_Closed_Text.style.display='none'; Codehighlighter1_44_75_Open_Image.style.display='inline'; Codehighlighter1_44_75_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_44_75_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">/**/</span><span id="Codehighlighter1_44_75_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;把true_password&nbsp;传到后台进行修改&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">c:</span><span style="color: #0000ff">if</span><span style="color: #000000">&gt;</span></div>
<br />
<br />
 <img src ="http://www.blogjava.net/lycong/aggbug/212428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-07-06 20:14 <a href="http://www.blogjava.net/lycong/archive/2008/07/06/212428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Fix 问题： 进入编辑页面，当点击其他地方时，判断页面是否修改过，并提示相关信息。</title><link>http://www.blogjava.net/lycong/archive/2008/06/16/207189.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Mon, 16 Jun 2008 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/06/16/207189.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/207189.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/06/16/207189.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/207189.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/207189.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;问题如下：例如要修改某个人的信息时，进入编辑页面，当点击其他地方时，判断信息是否已被修改过，并提示相关信息。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本例中以个人通讯录信息为背景， 解决方法如下：1.首先要有个 Object保存 一开始时从服...&nbsp;&nbsp;<a href='http://www.blogjava.net/lycong/archive/2008/06/16/207189.html'>阅读全文</a><img src ="http://www.blogjava.net/lycong/aggbug/207189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-06-16 21:50 <a href="http://www.blogjava.net/lycong/archive/2008/06/16/207189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于text文本框 按回车键 何种情况下 submit-------- 从一个bugfix 问题中想到</title><link>http://www.blogjava.net/lycong/archive/2008/05/28/203635.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Wed, 28 May 2008 13:03:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/05/28/203635.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/203635.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/05/28/203635.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/203635.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/203635.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: 12pt">接到一个问题，大概描述如下：<strong>页面有一text文本框，有一submit类型的按钮，输入内容后，按回车页面只是刷新一下，但是没有执行创建操作。而且文件夹名有如下限制：不能和之前创建文件夹同名，且非空。</strong>jsp中的内容简化为如下：</span><span style="font-size: 24pt">&nbsp;<br />
<span style="font-size: 18pt; color: #000000"><strong><span style="font-size: 12pt"><span style="color: #000000"><strong><span style="font-size: 14pt"><span style="color: #000000"><strong><span style="color: #000000"><strong><br />
&lt;form&gt; &lt;tr&gt;<br />
&nbsp;&lt;td&gt;&lt;input type="text" id="filename" /&gt; &lt;/td&gt; <br />
&lt;td&gt;&lt;input type="submit" onclick="return addFile();"&nbsp; id="sub"/&gt; &lt;/td&gt;<br />
&lt;/tr&gt; &lt;/form&gt;</strong></span><br />
</strong></span></span></strong></span></span><br />
</strong><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其中addFile()函数会有上面提及到限制判断，并且会返回boolean类型，当然符合条件时就返回true，不符合就返回false。理所当然当输入内容后点击submit按钮会正常执行相关操作而且会正常执行限制判断。可是奇怪的是，在IE下 在text框输入内容后直接按回车确不能执行相关操作，只是页面刷新了一下， 但是在FIREFOX下 按回车却能正常执行操作和判断。 之前第一时间就是想到应该在text文本框中加一个onkeydown的事件enter_file()，enter_file函数是当按下回车时就执行，并且函数中应该有这句代码 document.getElementById('sub').click(); 就是说当回车时就执行submit按钮的click操作。 貌似应该会正常执行操作的吧，可是又一奇怪问题出现了，<strong style="color: red">就是在IE下，在文本框中输入 a 后（假设之前没有文件名为a的文件），然后快速按2下（更多下也可以），结果会跳过&#8220;不能创建重复文件名&#8221;的判断，创建出2个相同名字a 的文件夹，而且例如输入同名文件名后，弹出框会一闪而过，不会等点击确认后才退出弹出框，</strong>但是在FIREFOX下却是正常执行，也不会出现一闪而过的现象，就是快速按几下也只是创建一个文件夹a。 之后百思不得其解，试过一些方法，比如把submit类型改为button类型，把onkeydown事件换成onkeypress或者onkeyup ，结果还是出现IE下快速按回车 创建2个同名文件夹，还是出现一闪而过的现象。 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 初步判断可能是ie和ff在text框按回车的响应不同，最后上网搜了一下，找到一个帖子 名为求解一个关于回车的问题 <a href="http://topic.csdn.net/t/20061128/14/5191186.html">http://topic.csdn.net/t/20061128/14/5191186.html</a>&nbsp;，具体内容到那个帖子看看。抽取其中值得注意的地方如下：<br />
&nbsp;&nbsp; IE：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; 1. &nbsp; 只有一个text框时，（不管有没有submit），直接触发onsubmit &nbsp; (form标签的一事件属性)<br />
&nbsp; 2. &nbsp; 有多个text框时，触发submit上的onclick，其默认行为为触发onsubmit。&nbsp;&nbsp; <br />
<br />
相对来说，ff的行为最复杂。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; 1. &nbsp; 有submit或button时，触发submit或button的onclick，然后该onclick的默认行为会触发onsubmit。 &nbsp; <br />
&nbsp; 2. &nbsp; 没有submit或button时， &nbsp; <br />
&nbsp; 2.1 &nbsp; 只有一个text框时，触发onsubmit； &nbsp; <br />
&nbsp; 2.2 &nbsp; 有多个text框时，不触发onsubmit。&nbsp;&nbsp;<br />
<br />
因为看到当只有一个text框时，直接触发onsubmit，就联想到要在form标签中加上onsubmit事件，于是把上面的代码改为如下：<br />
<span style="font-size: 18pt; color: #000000"><strong style="font-size: 14pt">&lt;form onsubmit="return addFile()"&gt; &lt;tr&gt;<br />
&nbsp;&lt;td&gt;&lt;input type="text" id="filename" /&gt; &lt;/td&gt; <br />
&lt;td&gt;&lt;input type="submit" id="sub"/&gt; &lt;/td&gt;<br />
&lt;/tr&gt; &lt;/form&gt;<br />
</strong></span>结果在IE下终于能成功操作，即是快速按几下也只是创建一个文件夹，并且不在出现一闪而过的现象。 因此很多时候在IE下可能出现奇怪问题，换作FF下就没问题了，Firefox支持JavaScript是正宗的。另外用firefox的插件 firedebug 来调试 javascript 程序 简直太爽了。<img height="20" alt="" src="http://www.blogjava.net/Emoticons/QQ/05.gif" width="20" border="0" /><br />
<br />
</span><br />
<br />
<br />
</span></span></p>
 <img src ="http://www.blogjava.net/lycong/aggbug/203635.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-05-28 21:03 <a href="http://www.blogjava.net/lycong/archive/2008/05/28/203635.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发产品之个人感悟</title><link>http://www.blogjava.net/lycong/archive/2008/05/23/202498.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Fri, 23 May 2008 13:56:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/05/23/202498.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/202498.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/05/23/202498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/202498.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/202498.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件行业做项目和做产品有什么不同呢？最大的感受就是做产品始终是以客户（即使用者）为中心，不断做到精益求精。由于所在公司是开发邮件系统，也就是开发产品，之前自己负责的一些开发任务都是FIX系统的一些BUG或improvement，那些问题真得有些令我吃惊，每一步操作都必须考虑到用户的感受和使用方便程度，连每步TAB到哪个输入框都考虑到很精确，给我感觉就是客户端做得很庞大，也就是所谓的&#8220;胖客户端&#8221;，并且我暂时还没接触到的后台服务器的功能也是要做得尽善尽美。
<img src ="http://www.blogjava.net/lycong/aggbug/202498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-05-23 21:56 <a href="http://www.blogjava.net/lycong/archive/2008/05/23/202498.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>被逼开通了首个属于自己技术博客</title><link>http://www.blogjava.net/lycong/archive/2008/05/18/201273.html</link><dc:creator>cong</dc:creator><author>cong</author><pubDate>Sun, 18 May 2008 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/lycong/archive/2008/05/18/201273.html</guid><wfw:comment>http://www.blogjava.net/lycong/comments/201273.html</wfw:comment><comments>http://www.blogjava.net/lycong/archive/2008/05/18/201273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lycong/comments/commentRss/201273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lycong/services/trackbacks/201273.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;作为一个程序员，没有自己的技术BLOG貌似说不过去，看见公司大牛们的技术BLOG后，决定自己也搞一个。公司实习快2个月了，这些日子算是学到一点东西，主要是JAVASCRIPT，还有JSTL的一些用法。从之前的JAVASCRIPT&#8220;白痴&#8221;，到现在看到JS代码没当初那么头疼了，而且还有一点感觉，由于刚进入公司，主要的开发工作还是客户端的一些小BUG问题（其实真的小的不能再小了）。公司是做邮件系统（在业界应该是前茅的），邮箱页面主要是分为A(AJAX),H(主要是JSP)风格2种，令我惊讶的是A风格是完全由JS代码全部控制，生成HTML代码，加入AJAX,调用服务器接口等操作均是由JS生成，而且代码量极其多，刚开始的时候看A风格的代码简直就如同看天书一样，后来慢慢的适应了他的一些写法，但是还是很多不懂。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接下去还要去学习JAVAMAIL 的API, RMI, 我很想抽个时间去重新学习一下操作系统的知识，觉得当时学操作系统好像不知道学了什么，尽管考试分数有90多分，进入公司以后，我逐渐感觉自己在之前学的专业知识（操作系统，数据结构，数据库原理，计算机网络等）的时候，心态搞错了，总觉得这些知识好像和编程没什么挂钩，能拿个高分数就行了，很多时候就是死记硬背。</p>
 <img src ="http://www.blogjava.net/lycong/aggbug/201273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lycong/" target="_blank">cong</a> 2008-05-18 17:46 <a href="http://www.blogjava.net/lycong/archive/2008/05/18/201273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>