<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>dikar云墨竹</title>
    <description></description>
    <link>http://dikar.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>假如爱有天意</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/156747" style="color:red;">http://dikar.javaeye.com/blog/156747</a>&nbsp;
          发表时间: 2008年01月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          总觉得该写点什么来纪念下今天看的电影&lt;&lt;假如爱有天意>>，很感人的一部电影，竟然发现自己已经失去了表达的能力，不能从我所知道的文字中表达此时的心境，点点滴滴的感动都铭记在心，音乐还在心底迂绕，也曾因此而泪撒两行，爱情这几个世纪都永恒的神话一直在感动着每一代奢求她的人，说是奢求因为发现很少能尽如天意，很少能长相思守，很少能幸福一生，完美的爱情总是要付出一定的代价，也许能有瞬间的完美足以回味一生吧。呵呵，何尝不是为那瞬间的完美而追随一生呢。故事的结局很完美，假如爱有天意，不可不信缘。<br />       缘份并非前世的遗留，来生的抚慰，而是今生的追寻，把握好属于你的缘份，月老没那么多时间帮你重新搭线，既然决心追寻就要用满腔真诚去感动周围，感动自己。回味那过去的时光发现以前太傻，呵呵，既然过去就保留住那份美好也罢。
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/156747#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 Jan 2008 21:45:05 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/156747</link>
        <guid>http://dikar.javaeye.com/blog/156747</guid>
      </item>
      <item>
        <title>html过滤</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/153504" style="color:red;">http://dikar.javaeye.com/blog/153504</a>&nbsp;
          发表时间: 2008年01月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">  以下例子转自一个网友并非本人所写，因为觉得好所以贴出来一起分享</pre><pre name="code" class="java">import java.util.regex.Pattern;
  public class Test
  {
  
  public static void main(String[] args)
  {
  String ww=&quot;&lt;html&gt;sss&lt;body&gt;ss&lt;/body&gt;ssss&lt;/html&gt;&quot;;
  String ff=html2Text(ww);
  System.out.println(ff);
  }
 public static String html2Text(String inputString) {
		String htmlStr = inputString; // 含html标签的字符串
		String textStr = &quot;&quot;;
		java.util.regex.Pattern p_script;
		java.util.regex.Matcher m_script;
		java.util.regex.Pattern p_style;
		java.util.regex.Matcher m_style;
		java.util.regex.Pattern p_html;
		java.util.regex.Matcher m_html;
		try {
			String regEx_script = &quot;&lt;[\\s]*?script[^&gt;]*?&gt;[\\s\\S]*?&lt;[\\s]*?\\/[\\s]*?script[\\s]*?&gt;&quot;; // 定义script的正则表达式{或&lt;script&gt;]*?&gt;[\s\S]*?&lt;\/script&gt;
			// }
			String regEx_style = &quot;&lt;[\\s]*?style[^&gt;]*?&gt;[\\s\\S]*?&lt;[\\s]*?\\/[\\s]*?style[\\s]*?&gt;&quot;; // 定义style的正则表达式{或&lt;style&gt;]*?&gt;[\s\S]*?&lt;\/style&gt;
			// }
			String regEx_html = &quot;&lt;[^&gt;]+&gt;&quot;; // 定义HTML标签的正则表达式

			p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
			m_script = p_script.matcher(htmlStr);
			htmlStr = m_script.replaceAll(&quot;&quot;); // 过滤script标签

			p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
			m_style = p_style.matcher(htmlStr);
			htmlStr = m_style.replaceAll(&quot;&quot;); // 过滤style标签

			p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
			m_html = p_html.matcher(htmlStr);
			htmlStr = m_html.replaceAll(&quot;&quot;); // 过滤html标签

			textStr = htmlStr;

		} catch (Exception e) {
			System.err.println(&quot;Html2Text: &quot; + e.getMessage());
		}

		return textStr;
}
  }</pre>&nbsp;<pre name="code" class="java">  这是struts中的html过滤</pre><pre name="code" class="java">public static String filter(String value)
    {
        if(value == null || value.length() == 0)
            return value;
        StringBuffer result = null;
        String filtered = null;
        for(int i = 0; i &lt; value.length(); i++)
        {
            filtered = null;
            switch(value.charAt(i))
            {
            case 60: // '&lt;'
                filtered = &quot;&lt;&quot;;
                break;

            case 62: // '&gt;'
                filtered = &quot;&gt;&quot;;
                break;

            case 38: // '&amp;'
                filtered = &quot;&amp;&quot;;
                break;

            case 34: // '&quot;'
                filtered = &quot;&quot;&quot;;
                break;

            case 39: // '\''
                filtered = &quot;'&quot;;
                break;
            }
            if(result == null)
            {
                if(filtered != null)
                {
                    result = new StringBuffer(value.length() + 50);
                    if(i &gt; 0)
                        result.append(value.substring(0, i));
                    result.append(filtered);
                }
            } else
            if(filtered == null)
                result.append(value.charAt(i));
            else
                result.append(filtered);
        }

        return result != null ? result.toString() : value;
    }</pre>&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/153504#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 06 Jan 2008 18:23:29 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/153504</link>
        <guid>http://dikar.javaeye.com/blog/153504</guid>
      </item>
      <item>
        <title>数据库设计中的14个技巧(转)</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/145973" style="color:red;">http://dikar.javaeye.com/blog/145973</a>&nbsp;
          发表时间: 2007年12月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          转自：作者: maXiaoKe, 　出处:Javereserarch,　责任编辑: 李书琴　　<br />本文介绍了数据库设计中的14个技巧，这是许多人在大量的数据库分析与设计实践中，逐步总结出来的……<br />　　下述十四个技巧，是许多人在大量的数据库分析与设计实践中，逐步总结出来的。对于这些经验的运用，读者不能生帮硬套，死记硬背，而要消化理解，实事求是，灵活掌握。并逐步做到：在应用中发展，在发展中应用。<br /><br /><span style="color: red">1. 原始单据与实体之间的关系</span><br /><br />　　可以是一对一、一对多、多对多的关系。在一般情况下，它们是一对一的关系：即一张原始单据对应且只对应一个实体。在特殊情况下，它们可能是一对多或多对一的关系，即一张原始单证对应多个实体，或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后，对我们设计录入界面大有好处。<br /><br />　　〖例1〗：一份员工履历资料，在人力资源信息系统中，就对应三个基本表：员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。<br /><br /><span style="color: red">2. 主键与外键</span><br /><br />　　一般而言，一个实体不能既无主键又无外键。在ER图中, 处于叶子部位的实体, 可以定义主键，也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。<br /><br />　　主键与外键的设计，在全局数据库的设计中，占有重要地位。当全局数据库的设计完成以后，有个美国数据库设计专家说：“键，到处都是键，除了键之外，什么也没有”，这就是他的数据库设计经验之谈，也反映了他对信息系统核心(数据模型)的高度抽象思想。因为：主键是实体的高度抽象，主键与外键的配对，表示实体之间的连接。<br /><br /><span style="color: red">3. 基本表的性质</span><br /><br />　　基本表与中间表、临时表不同，因为它具有如下四个特性：<br /><br />　　(1) 原子性。基本表中的字段是不可再分解的。<br /><br />　　(2) 原始性。基本表中的记录是原始数据(基础数据)的记录。<br /><br />　　(3) 演绎性。由基本表与代码表中的数据，可以派生出所有的输出数据。<br /><br />　　(4) 稳定性。基本表的结构是相对稳定的，表中的记录是要长期保存的。<br /><br />　　理解基本表的性质后，在设计数据库时，就能将基本表与中间表、临时表区分开来。<br /><br /><span style="color: red">4. 范式标准</span><br /><br />　　基本表及其字段之间的关系, 应尽量满足第三范式。但是，满足第三范式的数据库设计，往往不是最好的设计。为了提高数据库的运行效率，常常需要降低范式标准：适当增加冗余，达到以空间换时间的目的。<br /><br />　　〖例2〗：有一张存放商品的基本表，如表1所示。“金额”这个字段的存在，表明该表的设计不满足第三范式，因为“金额”可以由“单价”乘以“数量”得到，说明“金额”是冗余字段。但是，增加“金额”这个冗余字段，可以提高查询统计的速度，这就是以空间换时间的作法。<br /><br />　　在Rose 2002中，规定列有两种类型：数据列和计算列。“金额”这样的列被称为“计算列”，而“单价”和“数量”这样的列被称为“数据列”。<br /><br />　　表1 商品表的表结构<br /><br />　　商品名称 商品型号 单价 数量 金额<br /><br />　　电视机 29? 2,500 40 100,000<br /><br /><span style="color: red">5. 通俗地理解三个范式</span><br /><br />　　通俗地理解三个范式，对于数据库设计大有好处。在数据库设计中，为了更好地应用三个范式，就必须通俗地理解三个范式(通俗地理解是够用的理解，并不是最科学最准确的理解)：<br /><br />　　第一范式：1NF是对属性的原子性约束，要求属性具有原子性，不可再分解;<br /><br />　　第二范式：2NF是对记录的惟一性约束，要求记录有惟一标识，即实体的惟一性;<br /><br />第三范式：3NF是对字段冗余性的约束，即任何字段不能由其他字段派生出来，它要求字段没有冗余.<br /><br />　　没有冗余的数据库设计可以做到。但是，没有冗余的数据库未必是最好的数据库，有时为了提高运行效率，就必须降低范式标准，适当保留冗余数据。具体做法是：在概念数据模型设计时遵守第三范式，降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段，允许冗余。 <br /><br /><span style="color: red">6. 要善于识别与正确处理多对多的关系</span><br /><br />　　若两个实体之间存在多对多的关系，则应消除这种关系。消除的办法是，在两者之间增加第三个实体。这样，原来一个多对多的关系，现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体，实质上是一个较复杂的关系，它对应一张基本表。一般来讲，数据库设计工具不能识别多对多的关系，但能处理多对多的关系。<br /><br />　　〖例3〗：在“图书馆信息系统”中，“图书”是一个实体，“读者”也是一个实体。这两个实体之间的关系，是一个典型的多对多关系：一本图书在不同时间可以被多个读者借阅，一个读者又可以借多本图书。为此，要在二者之间增加第三个实体，该实体取名为“借还书”，它的属性为：借还时间、借还标志(0表示借书，1表示还书)，另外，它还应该有两个外键(“图书”的主键，“读者”的主键)，使它能与“图书”和“读者”连接。<br /><br /><span style="color: red">7. 主键PK的取值方法</span><br /><br />　　PK是供程序员使用的表间连接工具，可以是一无物理意义的数字串, 由程序自动加1来实现。也可以是有物理意义的字段名或字段名的组合。不过前者比后者好。当PK是字段名的组合时，建议字段的个数不要太多，多了不但索引占用空间大，而且速度也慢。<br /><br /><span style="color: red">8. 正确认识数据冗余</span><br /><br />　　主键与外键在多表中的重复出现, 不属于数据冗余，这个概念必须清楚，事实上有许多人还不清楚。非键字段的重复出现, 才是数据冗余!而且是一种低级冗余，即重复性的冗余。高级冗余不是字段的重复出现，而是字段的派生出现。<br /><br />　　〖例4〗：商品中的“单价、数量、金额”三个字段，“金额”就是由“单价”乘以“数量”派生出来的，它就是冗余，而且是一种高级冗余。冗余的目的是为了提高处理速度。只有低级冗余才会增加数据的不一致性，因为同一数据，可能从不同时间、地点、角色上多次录入。因此，我们提倡高级冗余(派生性冗余)，反对低级冗余(重复性冗余)。<br /><br /><span style="color: red">9. E--R图没有标准答案</span><br /><br />　　信息系统的E--R图没有标准答案，因为它的设计与画法不是惟一的，只要它覆盖了系统需求的业务范围和功能内容，就是可行的。反之要修改E--R图。尽管它没有惟一的标准答案，并不意味着可以随意设计。好的E?R图的标准是：结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。<br /><br /><span style="color: red">10. 视图技术在数据库设计中很有用</span><br /><br />　　与基本表、代码表、中间表不同，视图是一种虚表，它依赖数据源的实表而存在。视图是供程序员使用数据库的一个窗口，是基表数据综合的一种形式, 是数据处理的一种方法，是用户数据保密的一种手段。为了进行复杂处理、提高运算速度和节省存储空间, 视图的定义深度一般不得超过三层。 若三层视图仍不够用, 则应在视图上定义临时表, 在临时表上再定义视图。这样反复交迭定义, 视图的深度就不受限制了。<br /><br />　　对于某些与国家政治、经济、技术、军事和安全利益有关的信息系统，视图的作用更加重要。这些系统的基本表完成物理设计之后，立即在基本表上建立第一层视图，这层视图的个数和结构，与基本表的个数和结构是完全相同。并且规定，所有的程序员，一律只准在视图上操作。只有数据库管理员，带着多个人员共同掌握的“安全钥匙”，才能直接在基本表上操作。请读者想想：这是为什么?<br /><br /><span style="color: red">11. 中间表、报表和临时表</span><br /><br />　　中间表是存放统计数据的表，它是为数据仓库、输出报表或查询结果而设计的，有时它没有主键与外键(数据仓库除外)。临时表是程序员个人设计的，存放临时记录，为个人所用。基表和中间表由DBA维护，临时表由程序员自己用程序自动维护。<br /><br /><span style="color: red">12. 完整性约束表现在三个方面</span><br /><br />　　域的完整性：用Check来实现约束，在数据库设计工具中，对字段的取值范围进行定义时，有一个Check按钮，通过它定义字段的值城。参照完整性：用PK、FK、表级触发器来实现。用户定义完整性：它是一些业务规则，用存储过程和触发器来实现。<br /><br /><span style="color: red">13. 防止数据库设计打补丁的方法是“三少原则”</span><br /><br />　　(1) 一个数据库中表的个数越少越好。只有表的个数少了，才能说明系统的E--R图少而精，去掉了重复的多余的实体，形成了对客观世界的高度抽象，进行了系统的数据集成，防止了打补丁式的设计;<br /><br />　　(2) 一个表中组合主键的字段个数越少越好。因为主键的作用，一是建主键索引，二是做为子表的外键，所以组合主键的字段个数少了，不仅节省了运行时间，而且节省了索引存储空间; <br /><br />　　(3) 一个表中的字段个数越少越好。只有字段的个数少了，才能说明在系统中不存在数据重复，且很少有数据冗余，更重要的是督促读者学会“列变行”，这样就防止了将子表中的字段拉入到主表中去，在主表中留下许多空余的字段。所谓“列变行”，就是将主表中的一部分内容拉出去，另外单独建一个子表。这个方法很简单，有的人就是不习惯、不采纳、不执行。<br /><br />　　数据库设计的实用原则是：在数据冗余和处理速度之间找到合适的平衡点。“三少”是一个整体概念，综合观点，不能孤立某一个原则。该原则是相对的，不是绝对的。“三多”原则肯定是错误的。试想：若覆盖系统同样的功能，一百个实体(共一千个属性) 的E--R图，肯定比二百个实体(共二千个属性) 的E--R图，要好得多。<br /><br />　　提倡“三少”原则，是叫读者学会利用数据库设计技术进行系统的数据集成。数据集成的步骤是将文件系统集成为应用数据库，将应用数据库集成为主题数据库，将主题数据库集成为全局综合数据库。集成的程度越高，数据共享性就越强，信息孤岛现象就越少，整个企业信息系统的全局E?R图中实体的个数、主键的个数、属性的个数就会越少。<br /><br />　　提倡“三少”原则的目的，是防止读者利用打补丁技术，不断地对数据库进行增删改，使企业数据库变成了随意设计数据库表的“垃圾堆”，或数据库表的“大杂院”，最后造成数据库中的基本表、代码表、中间表、临时表杂乱无章，不计其数，导致企事业单位的信息系统无法维护而瘫痪。<br /><br />　　“三多”原则任何人都可以做到，该原则是“打补丁方法”设计数据库的歪理学说。“三少”原则是少而精的原则，它要求有较高的数据库设计技巧与艺术，不是任何人都能做到的，因为该原则是杜绝用“打补丁方法”设计数据库的理论依据。<br /><br /><span style="color: red">14. 提高数据库运行效率的办法</span><br /><br />　　在给定的系统硬件和系统软件条件下，提高数据库系统的运行效率的办法是：<br /><br />　　(1) 在数据库物理设计时，降低范式，增加冗余, 少用触发器, 多用存储过程。<br /><br />　　(2) 当计算非常复杂、而且记录条数非常巨大时(例如一千万条)，复杂计算要先在数据库外面，以文件系统方式用C++语言计算处理完成之后，最后才入库追加到表中去。这是电信计费系统设计的经验。<br /><br />　　(3) 发现某个表的记录太多，例如超过一千万条，则要对该表进行水平分割。水平分割的做法是，以该表主键PK的某个值为界线，将该表的记录水平分割为两个表。若发现某个表的字段太多，例如超过八十个，则垂直分割该表，将原来的一个表分解为两个表。<br /><br />　　(4) 对数据库管理系统DBMS进行系统优化，即优化各种系统参数，如缓冲区个数。<br /><br />　　(5) 在使用面向数据的SQL语言进行程序设计时，尽量采取优化算法。<br /><br />　　总之，要提高数据库的运行效率，必须从数据库系统级优化、数据库设计级优化、程序实现级优化，这三个层次上同时下功夫。
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/145973#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 04 Dec 2007 19:05:23 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/145973</link>
        <guid>http://dikar.javaeye.com/blog/145973</guid>
      </item>
      <item>
        <title>javascript中MVC模式开发</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143814" style="color:red;">http://dikar.javaeye.com/blog/143814</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MVC这个概念本不首先在软件工程这个领域提出，不过他在软件工程领域却发展壮大，JAVA WEB开发中比较流行的就是MVC开发框架，比如实现MVC框架比较好的STRUTS、WEBWORK等，还有SPRING中的MVC。</p>
<p>&nbsp;这里我想说点关于JAVASCRIPT中MVC模式的应用，当然也许你已经很早就在使用了，只是没这个概念的东西罢了。</p>
<p>在有JS（以下都把javascript简称为js）参与的网页开发中，当然现在的许多应用几乎所有都包含js，我们也可以实现分层的思想来开发我们的网页应用部分。</p>
<p>首先来分析下有js参与的网页应用中MVC的角色。</p>
<p>这里M表示模型可以说就是网页中的HTML元素。</p>
<p>这里V表示视图可以说是网页中元素的显示模式，当然这个样式我们可以用CSS来控制。</p>
<p>这里C表示的控制逻辑可以说是网页中元素的响应。</p>
<p>其实用户在打开一个网站的时候最先关注的是网站的全貌，之后才是关注网站的功能，当你看清楚了整个网站你才可能开始关注他所提供的功能，而这个全貌我们仅用M就可以单独的显示出来，当然出于效果的美观我们可以考虑M+V。之后用户才实际考虑功能性，比如交互方面，这里才用到了C，偶尔可能会用到V。分析完了这个过程，那么我说下关于js的MVC开发。</p>
<p>我见过很多大的网站的页面3个方面的内容全部包含在一个网页中，不能说这样不好，至少很多的网站都是这样，我有个建议：</p>
<p>比如说你的页面中只包含HTML元素，至于事件处理，显示样式都不要包含在页面中。这样看你的源代码仅仅是单独的HTML页面，没有其他杂项，如果修改我想也很容易。那么事件处理和显示样式当然就是要分别包含在一个js文件中了，当然大家都想得到，显示样式用一个CSS文件来完成，这样你在改网站的显示样式只需要改一个CSS文件就可以了，好了在说下事件处理程序的关联，前面我说到过用户首先关心的是显示全貌其次是功能的交互，所以事件完全可以在页面全部加载完了再关联，因此好的事件关联应该是用WINDOW.onload来定义的。这样三个层次划分的很明确，如果你要修改任何一个层次都可以在单独的文件中，不需要在复杂的页面完成三份工作了。</p>
<p>举个例子，你的样式文件为test.css&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你的事件处理文件为test.js&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 页面为test.html</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span>test.html &nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">script</span><span>&nbsp;</span><span class="attribute">src</span><span>=</span><span class="attribute-value">&quot;test.js&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text/javascript&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">link</span><span>&nbsp;</span><span class="attribute">href</span><span>=</span><span class="attribute-value">&quot;test.css&quot;</span><span>&nbsp;&nbsp;</span><span class="attribute">rel</span><span>=</span><span class="attribute-value">&quot;Stylesheet&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text/css&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">form</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;button&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;button&quot;</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;test&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;test&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>测试</span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;filed&quot;</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;field&quot;</span><span>&nbsp;</span><span class="attribute">calue</span><span>=</span><span class="attribute-value">&quot;default&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">form</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>test.js &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="attribute">window.onload</span><span>=</span><span class="attribute-value">function</span><span>() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>document.getElementById(&quot;button&quot;)</span><span class="attribute">.onclick</span><span>=</span><span class="attribute-value">function</span><span>() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>alert(this.value); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>document.getElementById(&quot;field&quot;)</span><span class="attribute">.onblue</span><span>=</span><span class="attribute-value">function</span><span>() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>functionField(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;functionField() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>alert(&quot;this&nbsp;id&nbsp;a&nbsp;field&nbsp;function&quot;); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143814#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 20:20:54 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143814</link>
        <guid>http://dikar.javaeye.com/blog/143814</guid>
      </item>
      <item>
        <title>为人低调</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143806" style="color:red;">http://dikar.javaeye.com/blog/143806</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 才用JAVAEYE的blog真的很兴奋，blog的文章可以和论坛直接挂钩，支持代码格式，虽然我全用的是XML的格式，其他的格式我总感觉会出现问题，一般都是显示不全或者标签已经被解释过了，还有众多的技术牛人的好贴。花费一个下午的时间把Sina那边的文章搬到这里来，我事先不知道发贴会有这么大的影响，首先可以得到积分，声明我不是想得积分才去把很多文章都放到论坛上，我只是觉得这个功能很强大，其次发贴不好是要被扣分的，呵呵，我本不是奔着分才发的，被扣了我也没什么郁闷的，不过才感觉到发贴是要技术水平的，不要什么贴都发，发什么贴在什么地方也是有讲究的，呵呵，就当是上了一课吧。在这里我还是菜鸟一个，为人低调点好，既不求分也不求名，只想学习点新的技术，交流新的想法。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143806#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 19:43:28 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143806</link>
        <guid>http://dikar.javaeye.com/blog/143806</guid>
      </item>
      <item>
        <title>读&lt;&lt;AJAX HACK&gt;&gt;有感 </title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143709" style="color:red;">http://dikar.javaeye.com/blog/143709</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近有幸拜读了&lt;&lt;AJAX HACK&gt;&gt;,网上评论有说这本书适合菜鸟，但是我要说，虽然我不敢自称高手，但我也不是菜鸟，这本书中的每个例子都实现的很好，注重的是一个好的实现，的确你也可以说你已经实现了相同的功能，但是书里面每个实现都是总结了很多经验得出的，具有很大应用价值。其实我们可以去学习人家的编码思想。
<div _extended="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上一篇我已经把里面的Email验证贴出来了，如果看见有特别好的应用，我还会贴出来的，不过其实最好把这本书收藏了，这本书被称为AJAX三剑客之&quot;技巧之剑&quot;，真的算是技巧了，把当今比较流行的AJAX技巧都有所介绍，很多的例子可以经过很少的修改就能应用的，真的不错，如果你没看过，建议你去看看，有中文版本的。</div>
<div _extended="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不要怀疑我是在做广告，只是在做知识的广告而已。</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143709#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 15:17:48 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143709</link>
        <guid>http://dikar.javaeye.com/blog/143709</guid>
      </item>
      <item>
        <title>验证Email格式的好例子</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143708" style="color:red;">http://dikar.javaeye.com/blog/143708</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>遇到过很多应用要验证Email的格式，看过TOMCAT和JAVA的验证源代码，发现有些复杂，不过都是基于RFC2822作为验证指南的，其实验证主要考的是正则表达式的能力，还有就是你对Email的了解，最近看了《AJAX HACK》里面有个Email验证的例子，觉得很不错，所以贴出来与大家一起分享。</p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span>/*&nbsp;Define&nbsp;an&nbsp;Email&nbsp;constructor*/ &nbsp;&nbsp;</span></span></li>
    <li class=""><span>function&nbsp;Email(e){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.emailAddr</span><span>=e; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.message</span><span>=</span><span class="attribute-value">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.valid</span><span>=</span><span class="attribute-value">false</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;validate(){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;//do&nbsp;a&nbsp;basic&nbsp;check&nbsp;for&nbsp;null,&nbsp;zero-length&nbsp;string,&nbsp;&quot;.&quot;,&nbsp;&quot;@&quot;, &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;//and&nbsp;the&nbsp;absence&nbsp;of&nbsp;spaces &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span class="attribute">this.emailAddr</span><span>&nbsp;==&nbsp;null&nbsp;||&nbsp;</span><span class="attribute">this.emailAddr.length</span><span>&nbsp;==&nbsp;0&nbsp;|| &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.emailAddr.indexOf(&quot;.&quot;)&nbsp;==&nbsp;-1&nbsp;|| &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.emailAddr.indexOf(&quot;@&quot;)&nbsp;==&nbsp;-1&nbsp;|| &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.emailAddr.indexOf(&quot;&nbsp;&quot;)&nbsp;!=&nbsp;-1){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.message</span><span>=</span><span class="attribute-value">&quot;Make&nbsp;sure&nbsp;the&nbsp;email&nbsp;address&nbsp;does&nbsp;not&nbsp;contain&nbsp;any&nbsp;spaces&nbsp;&quot;</span><span>+ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;and&nbsp;is&nbsp;otherwise&nbsp;valid&nbsp;(e.g.,&nbsp;contains&nbsp;the&nbsp;\&quot;commercial&nbsp;at\&quot;&nbsp;@&nbsp;sign).&quot;; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.valid</span><span>=</span><span class="attribute-value">false</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;/*Get&nbsp;the&nbsp;user;&nbsp;they&nbsp;cannot&nbsp;begin&nbsp;or&nbsp;end&nbsp;with&nbsp;a&nbsp;&quot;.&quot; &nbsp;&nbsp;</span></li>
    <li class=""><span>Regular&nbsp;expression&nbsp;specifies:&nbsp;the&nbsp;group&nbsp;of&nbsp;characters&nbsp;before&nbsp;the&nbsp;@&nbsp;symbol,&nbsp;which &nbsp;&nbsp;</span></li>
    <li class="alt"><span>are&nbsp;made&nbsp;up&nbsp;of&nbsp;word&nbsp;characters,&nbsp;followed&nbsp;by&nbsp;zero&nbsp;or&nbsp;one&nbsp;period&nbsp;char, &nbsp;&nbsp;</span></li>
    <li class=""><span>followed&nbsp;by&nbsp;at&nbsp;least&nbsp;2&nbsp;word&nbsp;characters.&nbsp;*/ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">regex</span><span>=/(^\w{2,}\.?\w{2,})@/; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">_match</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">regex</span><span>.exec(this.emailAddr); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;_match){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">user</span><span>=</span><span class="attribute-value">RegExp</span><span>.$1; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//alert(&quot;user:&nbsp;&quot;+user); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.message</span><span>=</span><span class="attribute-value">&quot;Make&nbsp;sure&nbsp;the&nbsp;user&nbsp;name&nbsp;is&nbsp;more&nbsp;than&nbsp;two&nbsp;characters&quot;</span><span>+ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;,&nbsp;does&nbsp;not&nbsp;begin&nbsp;or&nbsp;end&nbsp;with&nbsp;a&nbsp;period&nbsp;(.),&nbsp;or&nbsp;is&nbsp;not&nbsp;otherwise&nbsp;&quot;+ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;invalid!&quot;; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.valid</span><span>=</span><span class="attribute-value">false</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;//get&nbsp;the&nbsp;domain&nbsp;after&nbsp;the&nbsp;@&nbsp;char &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;//first&nbsp;take&nbsp;care&nbsp;of&nbsp;domain&nbsp;literals&nbsp;like&nbsp;@[19.25.0.1]&nbsp;however&nbsp;rare &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">regex</span><span>=/@(\[\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}\])$/; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">_match</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">regex</span><span>.exec(this.emailAddr); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;_match){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">domain</span><span>=</span><span class="attribute-value">RegExp</span><span>.$1; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//alert(&quot;domain:&nbsp;&quot;+domain); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.valid</span><span>=</span><span class="attribute-value">true</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*the&nbsp;@&nbsp;character&nbsp;followed&nbsp;by&nbsp;at&nbsp;least&nbsp;2&nbsp;chars&nbsp;that&nbsp;are&nbsp;not&nbsp;a&nbsp;period&nbsp;(.), &nbsp;&nbsp;</span></li>
    <li class="alt"><span>followed&nbsp;by&nbsp;a&nbsp;period,&nbsp;followed&nbsp;by&nbsp;zero&nbsp;or&nbsp;one&nbsp;instances&nbsp;of&nbsp;at&nbsp;least&nbsp;two &nbsp;&nbsp;</span></li>
    <li class=""><span>characters&nbsp;ending&nbsp;with&nbsp;a&nbsp;period,&nbsp;followed&nbsp;by&nbsp;two-three&nbsp;chars&nbsp;that&nbsp;are&nbsp;not&nbsp;periods&nbsp;*/ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">regex</span><span>=/@(\w{2,}\.(\w{2,}\.)?[a-zA-Z]{2,3})$/; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">_match</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">regex</span><span>.exec(this.emailAddr); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;_match){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">domain</span><span>=</span><span class="attribute-value">RegExp</span><span>.$1; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.message</span><span>=</span><span class="attribute-value">&quot;The&nbsp;domain&nbsp;portion&nbsp;of&nbsp;the&nbsp;email&nbsp;had&nbsp;less&nbsp;than&nbsp;2&nbsp;chars&nbsp;&quot;</span><span>+ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&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;&quot;or&nbsp;was&nbsp;otherwise&nbsp;invalid!&quot;; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.valid</span><span>=</span><span class="attribute-value">false</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}//end&nbsp;domain&nbsp;check &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">this.valid</span><span>=</span><span class="attribute-value">true</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>//Make&nbsp;validate()&nbsp;an&nbsp;instance&nbsp;method&nbsp;of&nbsp;the&nbsp;Email&nbsp;object &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="attribute">Email.prototype.validate</span><span>=validate; &nbsp;&nbsp;</span></li>
</ol>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143708#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 15:16:15 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143708</link>
        <guid>http://dikar.javaeye.com/blog/143708</guid>
      </item>
      <item>
        <title>Mysql导入（执行）sql脚本</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143704" style="color:red;">http://dikar.javaeye.com/blog/143704</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp; <font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff">在说导入之前，我先给大家介绍几个Mysql的图形操作软件吧，我是用惯了SQLserver2000的了，喜欢那个图形界面的，所以也找了Mysql的图形界面工具了。</font>
<div _extended="true" id="articleContentArea">
<div _extended="true" class="middleSize" id="articleContent">
<div _extended="true">
<p _extended="true">我把用过的例举出来：</p>
<p _extended="true">1：<font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff">mysql-gui-tools-noinstall-5.0-r4-win32</font></p>
<p _extended="true">是在MYSQL的官方网站上下的，刚开始觉得很好用，但是还是不如sqlserver2000，自从用了第2个我就把他放弃了。</p>
<p _extended="true">2：<font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff">navicat mysql</font></p>
<p _extended="true">现在的版本貌似到8了，我用的还是7，而且一般很难找破戒的，所以要是用的话要找一段时间了，安装很简单，用的话那是更简单，界面与sqlserver2000类似，而且可以手动添加元素建表等。</p>
<p _extended="true">&nbsp;我觉得数据库的话我还是喜欢图形界面的，至少操作方面。</p>
<p _extended="true">&nbsp;好不说废话了，进入主题</p>
<p _extended="true"><font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff">MYSQL导入(执行)Sql脚本<br _extended="true" />
例如：我的用户名是root 密码是123 sql脚本存在C盘 名字为test.sql 数据库为test</font></p>
<p _extended="true">有两种方法可以执行脚本</p>
<p _extended="true"><font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff">1：打开CMD输入以下命令（不需要转换目录）<br _extended="true" />
&gt;mysql -u root -p123<br _extended="true" />
进入MYSQL后<br _extended="true" />
mysql&gt;use test;<br _extended="true" />
mysql&gt; source c:/test.sql</font></p>
<p _extended="true"><font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff">ok执行完了，你可以用show tables;查看有哪写表（记得语句后有个分号）<br _extended="true" />
还可以用desc tableName;查看你的表结构</font></p>
<p _extended="true"><font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff"><br _extended="true" />
2：打开CMD输入以下命令（不需要转换目录）<br _extended="true" />
&gt;mysql -u root -p123 test &lt; c:/test.sql<br _extended="true" />
这样执行完了，你就会退出mysql，所以如果你没在图形界面下操作mysql就最好用第一种方法</font></p>
</div>
</div>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143704#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 15:04:24 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143704</link>
        <guid>http://dikar.javaeye.com/blog/143704</guid>
      </item>
      <item>
        <title>因式分解的算法</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143700" style="color:red;">http://dikar.javaeye.com/blog/143700</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;笔试做到因式分解，因为时间不够没写完代码，现在把代码补全&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>#include</span><span class="tag">&lt;</span><span class="tag-name">iostream.h</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>#include&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">stdlib.h</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>int&nbsp;*divp(int&nbsp;m,int&nbsp;&amp;k); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>bool&nbsp;isp(int&nbsp;n); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>int&nbsp;main() &nbsp;&nbsp;</span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;int&nbsp;w; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;</span><span class="attribute">l</span><span>=</span><span class="attribute-value">0</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;int&nbsp;*p; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;int&nbsp;res[100]={0}; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;输入要因式分解的数&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;cin</span><span class="tag">&gt;</span><span class="tag">&gt;</span><span>w; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;if(isp(w)){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">w</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;是质数不能因式分解&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;exit(0); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;else &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="attribute">p</span><span>=</span><span class="attribute-value">divp</span><span>(w,l); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">w</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;可因式分解为:&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;for(int&nbsp;</span><span class="attribute">h</span><span>=</span><span class="attribute-value">0</span><span>;h</span><span class="tag">&lt;</span><span class="tag-name">l</span><span>;h++) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;{&nbsp;if(</span><span class="attribute">h</span><span>==l-1) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span>[h]</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;else &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span>[h]</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;*&quot;; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;&nbsp;&nbsp;[]p; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;</span><span class="attribute">p</span><span>&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;</span><span class="attribute-value">NULL</span><span>;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;return&nbsp;0; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>int&nbsp;*divp(int&nbsp;m,int&nbsp;&amp;k) &nbsp;&nbsp;</span></li>
    <li class=""><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;int&nbsp;&nbsp;&nbsp;*</span><span class="attribute">res</span><span>&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;</span><span class="attribute-value">new</span><span>&nbsp;&nbsp;&nbsp;int[100]; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;while(m!=1) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;for(int&nbsp;</span><span class="attribute">i</span><span>=</span><span class="attribute-value">2</span><span>;i</span><span class="tag">&lt;</span><span class="tag-name">m</span><span>+1;i++) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;if(m%</span><span class="attribute">i</span><span>==0) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">m</span><span>=m/i; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;if(isp(i)){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res[k]=i; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isp(m)) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k++; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res[k]=m; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k++; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;return&nbsp;res; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>bool&nbsp;isp(int&nbsp;n) &nbsp;&nbsp;</span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;int&nbsp;</span><span class="attribute">c</span><span>=</span><span class="attribute-value">0</span><span>;&nbsp;//保存整除因数的个数 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;for(int&nbsp;</span><span class="attribute">j</span><span>=</span><span class="attribute-value">2</span><span>;j</span><span class="tag">&lt;</span><span class="tag-name">n</span><span>+1;j++)//除数遍历 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;if(n%</span><span class="attribute">j</span><span>==0)//整除 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;c++; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;if(</span><span class="attribute">c</span><span>==1)//表明只有一个整数因子 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;else &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143700#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 14:47:52 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143700</link>
        <guid>http://dikar.javaeye.com/blog/143700</guid>
      </item>
      <item>
        <title>判断质数以及求某数以内的质数 </title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143697" style="color:red;">http://dikar.javaeye.com/blog/143697</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天去笔试，做了个关于求某数以内质数之和的题目，虽然做出来了，但是感觉效率还是很低，不过查了下，也没其他的效率高的方法（也许是baidu没用好的缘故）。先把自己的与大家一起分享，有什么建议希望大家不吝赐教。 &nbsp;&nbsp;</span></span></li>
    <li class=""><span>#include</span><span class="tag">&lt;</span><span class="tag-name">iostream.h</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>#include&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">stdlib.h</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>int&nbsp;main() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;//该程序可以用来判断一个数是否是质数，以及求出小于某个数范围之内的所有的质数 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;int&nbsp;w;//保存要测试的数 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;int&nbsp;q;//保存判断的值 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;请输入测试的数&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;cin</span><span class="tag">&gt;</span><span class="tag">&gt;</span><span>w; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;是否判断，是就输入1，不是就任意输入&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;cin</span><span class="tag">&gt;</span><span class="tag">&gt;</span><span>q; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;int&nbsp;</span><span class="attribute">e</span><span>=</span><span class="attribute-value">0</span><span>;//保存质数的个数 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;for(int&nbsp;</span><span class="attribute">i</span><span>=</span><span class="attribute-value">2</span><span>;i</span><span class="tag">&lt;</span><span class="tag-name">w</span><span>+1;i++)&nbsp;//被除数的遍历 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;if(</span><span class="attribute">q</span><span>==1){//表明是用来判断的 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="attribute">i</span><span>=</span><span class="attribute-value">w</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;int&nbsp;</span><span class="attribute">c</span><span>=</span><span class="attribute-value">0</span><span>;&nbsp;//保存整除因数的个数 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;for(int&nbsp;</span><span class="attribute">j</span><span>=</span><span class="attribute-value">2</span><span>;j</span><span class="tag">&lt;</span><span class="tag-name">w</span><span>+1;j++)//除数遍历 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;if(i%</span><span class="attribute">j</span><span>==0)//整除 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c++; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;if(</span><span class="attribute">c</span><span>==1)//表明只有一个整数因子 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">i</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;是质数&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;e++; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;if(</span><span class="attribute">q</span><span>==1){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;if(c!=1) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">i</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;不是质数&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;if(e</span><span class="tag">&gt;</span><span>0) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;cout</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;共有&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">e</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span>&quot;个质数&quot;</span><span class="tag">&lt;</span><span class="tag">&lt;</span><span class="tag-name">endl</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>system(&quot;PAUSE&quot;);//系统函数，包含在</span><span class="tag">&lt;</span><span class="tag-name">stdlib.h</span><span class="tag">&gt;</span><span>头文件中，用于暂停屏幕 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;return&nbsp;0; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>该程序在VC6.0环境下测试的能够正常运行。如果你提出那个2层循环用平方根代替以前的数能够提高效率，的确这样也可以，我好久没用C++了，所以平方的函数忘了，如果你想这样做也可以试下。&nbsp;&nbsp;</span></li>
</ol>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143697#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 14:45:06 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143697</link>
        <guid>http://dikar.javaeye.com/blog/143697</guid>
      </item>
      <item>
        <title>动态添加和删除表单元素</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143695" style="color:red;">http://dikar.javaeye.com/blog/143695</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span>也许是遇到的问题都是这样的，因此我把在IE下和FF下分别写的可以动态添加和删除表单元素的代码拿来与大家一起分享。 &nbsp;&nbsp;</span></span></li>
    <li class=""><span>首先看看IE下的例子 &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>var&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">2</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;add() &nbsp;&nbsp;</span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>var&nbsp;</span><span class="attribute">newRadioButton</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;</span><span class="tag">&lt;</span><span class="tag-name">br</span><span class="tag">&gt;</span><span>&quot;) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>newRadioButton.setAttribute(&quot;id&quot;,id); &nbsp;&nbsp;</span></li>
    <li class=""><span>document.body.insertBefore(newRadioButton); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="attribute">newRadioButton</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;</span><span class="tag">&lt;</span><span class="tag-name">INPUT</span><span>&nbsp;</span><span class="attribute">NAME</span><span>=</span><span class="attribute-value">'text'</span><span class="tag">&gt;</span><span>&quot;) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>newRadioButton.setAttribute(&quot;id&quot;,id); &nbsp;&nbsp;</span></li>
    <li class=""><span>document.body.insertBefore(newRadioButton); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="attribute">newRadioButton</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;</span><span class="tag">&lt;</span><span class="tag-name">INPUT</span><span>&nbsp;</span><span class="attribute">TYPE</span><span>=</span><span class="attribute-value">'button'</span><span>&nbsp;</span><span class="attribute">NAME</span><span>=</span><span class="attribute-value">'DEL'</span><span>&nbsp;</span><span class="attribute">VALUE</span><span>=</span><span class="attribute-value">'DEL'</span><span>&nbsp;</span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">'del(id)'</span><span class="tag">&gt;</span><span>&quot;) &nbsp;&nbsp;</span></li>
    <li class=""><span>newRadioButton.setAttribute(&quot;id&quot;,id); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>document.body.insertBefore(newRadioButton); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="attribute">newRadioButton</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;</span><span class="tag">&lt;</span><span class="tag-name">br</span><span class="tag">&gt;</span><span>&quot;) &nbsp;&nbsp;</span></li>
    <li class=""><span>newRadioButton.setAttribute(&quot;id&quot;,id); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>document.body.insertBefore(newRadioButton); &nbsp;&nbsp;</span></li>
    <li class=""><span>id++; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;del(id) &nbsp;&nbsp;</span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>document.getElementById(id).removeNode(true); &nbsp;&nbsp;</span></li>
    <li class=""><span>document.getElementById(id).removeNode(true); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>document.getElementById(id).removeNode(true); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>document.getElementById(id).removeNode(true); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;sub() &nbsp;&nbsp;</span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>var&nbsp;</span><span class="attribute">res</span><span>=</span><span class="attribute-value">&quot;+&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>var&nbsp;</span><span class="attribute">te</span><span>=</span><span class="attribute-value">document</span><span>.getElementsByName(&quot;text&quot;); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>for(var&nbsp;</span><span class="attribute">i</span><span>=</span><span class="attribute-value">1</span><span>;i</span><span class="tag">&lt;</span><span class="tag-name">te.length</span><span>;i++) &nbsp;&nbsp;</span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>document.getElementsByName(&quot;text&quot;)[0]</span><span class="attribute">.value</span><span>=</span><span class="attribute-value">document</span><span>.getElementsByName(&quot;text&quot;)[0].value+&quot;+&quot;+document.getElementsByName(&quot;text&quot;)[i].value; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;document.forms[0]</span><span class="attribute">.action</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">&quot;http://www.test.org&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;document.forms[0].submit(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">form</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">fom</span><span>&nbsp;</span><span class="attribute">method</span><span>=</span><span class="attribute-value">get</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">INPUT</span><span>&nbsp;</span><span class="attribute">NAME</span><span>=</span><span class="attribute-value">'text'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&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></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">INPUT</span><span>&nbsp;</span><span class="attribute">NAME</span><span>=</span><span class="attribute-value">'text'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&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;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">INPUT</span><span>&nbsp;</span><span class="attribute">TYPE</span><span>=</span><span class="attribute-value">'button'</span><span>&nbsp;</span><span class="attribute">NAME</span><span>=</span><span class="attribute-value">'ADD'</span><span>&nbsp;</span><span class="attribute">VALUE</span><span>=</span><span class="attribute-value">'ADD'</span><span>&nbsp;</span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">&quot;add()&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">br</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;sp&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">span</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">INPUT</span><span>&nbsp;</span><span class="attribute">TYPE</span><span>=</span><span class="attribute-value">'submit'</span><span>&nbsp;</span><span class="attribute">NAME</span><span>=</span><span class="attribute-value">'SUB'</span><span>&nbsp;</span><span class="attribute">VALUE</span><span>=</span><span class="attribute-value">'SUB'</span><span>&nbsp;</span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">&quot;sub()&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">form</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;说明一下，脚本中的sub方法只是用来将数据封装然后提交出去，因为是动态的添加和删除，所以不好直接获得每个表单元素的值。 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;下面我们再看看FF下的例子 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>user</span><span class="tag">&lt;/</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">script</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text/javascript&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>var&nbsp;name; &nbsp;&nbsp;</span></li>
    <li class=""><span>var&nbsp;title; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>var&nbsp;department; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>var&nbsp;id; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;addEmployee()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">name</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(&quot;name&quot;).value; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">title</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(&quot;title&quot;).value; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">department</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(&quot;dept&quot;).value; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>updateEmployeeList(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;clearInputBoxes(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;clearInputBoxes()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&quot;name&quot;)</span><span class="attribute">.value</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">&quot;&nbsp;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&quot;title&quot;)</span><span class="attribute">.value</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">&quot;&nbsp;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&quot;dept&quot;)</span><span class="attribute">.value</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">&quot;&nbsp;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;deleteEmployee(num)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="attribute">id</span><span>=</span><span class="attribute-value">num</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>deleteEmployeeFromList(); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;updateEmployeeList()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">num</span><span>=</span><span class="attribute-value">Math</span><span>.random(&nbsp;)*Math.random(&nbsp;)*0.1945; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">row</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;tr&quot;);&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;row.setAttribute(&quot;id&quot;,&nbsp;num); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;row.appendChild(createCellWithText(name)); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;row.appendChild(createCellWithText(title)); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;row.appendChild(createCellWithText(department)); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">deleteButton</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;input&quot;); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;deleteButton.setAttribute(&quot;type&quot;,&nbsp;&quot;button&quot;); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;deleteButton.setAttribute(&quot;value&quot;,&nbsp;&quot;Delete&quot;); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">deleteButton.onclick</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">function</span><span>&nbsp;()&nbsp;{&nbsp;deleteEmployee(num);&nbsp;}; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">cell</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;td&quot;); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;cell.appendChild(deleteButton); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;row.appendChild(cell); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&quot;employeeList&quot;).appendChild(row); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;updateEmployeeListVisibility(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;createCellWithText(text)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">cell</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.createElement(&quot;td&quot;); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;cell.appendChild(document.createTextNode(text)); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;cell; &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;deleteEmployeeFromList()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;var&nbsp;</span><span class="attribute">rowToDelete</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(id); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">employeeList</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(&quot;employeeList&quot;); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;employeeList.removeChild(rowToDelete); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;updateEmployeeListVisibility(); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>function&nbsp;updateEmployeeListVisibility()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">employeeList</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(&quot;employeeList&quot;); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;if(employeeList.childNodes.length&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;0)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&quot;employeeListSpan&quot;)</span><span class="attribute">.style.display</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&quot;employeeListSpan&quot;)</span><span class="attribute">.style.display</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">&quot;none&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">h1</span><span class="tag">&gt;</span><span>user&nbsp;List</span><span class="tag">&lt;/</span><span class="tag-name">h1</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">form</span><span>&nbsp;</span><span class="attribute">action</span><span>=</span><span class="attribute-value">&quot;#&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">table</span><span>&nbsp;</span><span class="attribute">width</span><span>=</span><span class="attribute-value">&quot;80%&quot;</span><span>&nbsp;</span><span class="attribute">border</span><span>=</span><span class="attribute-value">&quot;0&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>Name:&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;name&quot;</span><span class="tag">/&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>Title:&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;title&quot;</span><span class="tag">/&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>Department:&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;dept&quot;</span><span class="tag">/&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">td</span><span>&nbsp;</span><span class="attribute">colspan</span><span>=</span><span class="attribute-value">&quot;3&quot;</span><span>&nbsp;</span><span class="attribute">align</span><span>=</span><span class="attribute-value">&quot;center&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;button&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;Add&quot;</span><span>&nbsp;</span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">&quot;addEmployee();&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">table</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">form</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;employeeListSpan&quot;</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">&quot;display:none;&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>USER:</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">table</span><span>&nbsp;</span><span class="attribute">border</span><span>=</span><span class="attribute-value">&quot;1&quot;</span><span>&nbsp;</span><span class="attribute">width</span><span>=</span><span class="attribute-value">&quot;80%&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">tbody</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;employeeList&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">tbody</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">table</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">span</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>分析一下。因为IE和FF有些函数的使用上有些不同，所以我暂时还不知道用什么函数可以很好的兼容他们。 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143695#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 14:43:03 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143695</link>
        <guid>http://dikar.javaeye.com/blog/143695</guid>
      </item>
      <item>
        <title>SOAD</title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143693" style="color:red;">http://dikar.javaeye.com/blog/143693</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我<font _extended="true" face="宋体" style="BACKGROUND-COLOR: #ffffff">们的思想随着社会各种环境在慢慢进步着，以前是面向过程的编程，后来有了面向对象的编程，继而又有了面向组件的编程，现在有了面向切面的编程，不过现在比较热的，而且是以后的发展趋势是面向服务编程（SOAD）。什么叫面向服务编程呢。他是根据业务来抽象出可以复用的服务，业务才是我们真正所关心的，不了解业务不熟悉需求怎么能开发出好的软件产品呢，然后面向服务的编程还是比较难的，他不是构架师，测试员所能划的开的，必须要有很多的人参与完成，例如项目经理，构架师，测试员等等。面向服务是高层次的抽象。这种抽象是建立在对业务的熟悉程度上的，所以业务对我们来说是比较重要的了。<br _extended="true" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高度的抽象才造就新的革新，我们的思想也在进步。</font>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143693#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 14:40:08 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143693</link>
        <guid>http://dikar.javaeye.com/blog/143693</guid>
      </item>
      <item>
        <title>IOC,AOP浅谈 </title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143692" style="color:red;">http://dikar.javaeye.com/blog/143692</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;
<div _extended="true" id="articleContentArea">
<div _extended="true" id="tagsArea"></div>
<div _extended="true" class="middleSize" id="articleContent">
<div _extended="true">看了&lt;&lt;spring in action&gt;&gt;以后收获真的很大,刚开始看第一遍有些概念就没看懂,比如说IOC和AOP,这不我又看了第二遍,有时候书多读几遍就有几遍不同的收获,我就把自己的收获拿来与大家一起分享下,也许我的想法有点太片面化,希望指导.所以在此也就浅谈一下好了.</div>
<div _extended="true"><font _extended="true" color="#0000ff">IOC概念的精髓:</font></div>
<div _extended="true">我的理解是包括两个部分.</div>
<div _extended="true">一:<font _extended="true" color="#ff0000">面向接口编程,而不是面向类编程</font></div>
<div _extended="true">真正和外界交互都是通过接口来进行的,内部的交互也是接口与接口来进行的,这样外部不知道具体的实现细节,当然他也不需要知道.内部实现类的改变不会影响外部接口与外界的交互,降低了耦合度.内部之间各功能部分的调用也是用接口,这样也降低了内部各部分的耦合度.耦合度降低了方便修改与测试.</div>
<div _extended="true">面向接口编程的概念在那本很经典的书&lt;&lt;设计模式&gt;&gt;中早已经提出了,只是很少引起人们的重视而已.面向接口编程的提出很大程度上对降低程序的耦合度很有帮助.</div>
<div _extended="true">二:<font _extended="true" color="#ff0000">依赖注入</font></div>
<div _extended="true"><font _extended="true" color="#000000">当然依赖注入是spring IOC中很核心的重点了.单单通过字面意思,我们就应该明白原先的依赖是需要在程序中去完成,而现在依赖可以不在程序中完成,通过我们的配置,容器会自动将依赖添加进去的.这在很大程度上方便了程序的编写,同时我觉得通过配置文件可以起到导航的作用.就像STRUTS的配置文件一样.这种注入很灵活方便.关于依赖注入我还在消化,因为应用的不多,所以其他的发现还没有.</font></div>
<div _extended="true">&nbsp;</div>
<div _extended="true"><font _extended="true" color="#0000ff">AOP概念的精髓</font>:(这个概念相对抽象就把我理解的说出来好了)</div>
<div _extended="true">一:<font _extended="true" color="#ff0000">面向切面编程</font></div>
<div _extended="true">当然你会觉得我是在搬书上的东西,不过对切面的理解我是看了其他的书才有所理解,至少才看这个概念还是不理解的.如果你明白了切面,明白了切面编程的重要性,我想你就应该明白了为什么AOP会这样受欢迎,他很好的解决了代码重用的问题,至少切面是可以重用的,这样降低了编码量,其次,他也是降低了各功能模块的耦合度,业务模块和切面模块(暂且这样叫吧,算是各切面的功能模块吧)可以单独的维护,业务模块并不知道切面模块的存在,这样真正的项目关心的重点就完全放在业务上了,不会为切面模块而浪费很多时间.提高了效率.</div>
<div _extended="true">二:<font _extended="true" color="#ff0000">支持事物声明调用</font></div>
<div _extended="true"><font _extended="true" color="#000000">开发过EJB的人都知道,在EJB里的事物声明调用比较麻烦,而且事物不能脱离EJB容器而存在.而spring很好的解决了这个问题,因为他是面向切面编程,他对事物调用的支持非常好,可以在需要调用的地方做个声明这样事物就被调用了.他不需要EJB容器,而且使用方便灵活.</font></div>
</div>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://dikar.javaeye.com/blog/143692#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 14:39:02 +0800</pubDate>
        <link>http://dikar.javaeye.com/blog/143692</link>
        <guid>http://dikar.javaeye.com/blog/143692</guid>
      </item>
      <item>
        <title>JSP页面乱码之中文化 </title>
        <author>dikar</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dikar.javaeye.com">dikar</a>&nbsp;
          链接：<a href="http://dikar.javaeye.com/blog/143643" style="color:red;">http://dikar.javaeye.com/blog/143643</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span>经常遇到关于JSP页面乱码的问题，在网上也查了相关的帖子，故在此做个关于JSP页面乱码处理的总结，和大家一同分享。 &nbsp;&nbsp;</span></span></li>
    <li class=""><span>首先先介绍几个关于页面编码参数设置的属性。 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">META</span><span>&nbsp;</span><span class="attribute">http-equiv</span><span>=</span><span class="attribute-value">Content</span><span>-Type&nbsp;</span><span class="attribute">content</span><span>=</span><span class="attribute-value">&quot;text/html;&nbsp;charset=gb2312&quot;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>这句话的意思是你浏览器查看网页的编码方式为中文，类似于浏览器上查看选项的字符编码设置，如果你查看中文的页面，你设置为UTF8查看的话，就会显示为乱码或者说是问号。所以这个属性只是用来设置浏览器显示数据的字符编码。 &nbsp;&nbsp;</span></li>
    <li class=""><span>下面我们具体说一下这个属性 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>META，网页Html语言里Head区重要标签之一 &nbsp;&nbsp;</span></li>
    <li class=""><span>HTTP-EQUIV类似于HTTP的头部协议，它回应给浏览器一些有用的信息，以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有： &nbsp;&nbsp;</span></li>
    <li class="alt"><span>Content-Type和Content-Language&nbsp;(显示字符集的设定) &nbsp;&nbsp;</span></li>
    <li class=""><span>说明：设定页面使用的字符集，用以说明主页制作所使用的文字以及语言，浏览器会根据此来调用相应的字符集显示page内容。 &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">Meta</span><span>&nbsp;</span><span class="attribute">http-equiv</span><span>=</span><span class="attribute-value">&quot;Content-Type&quot;</span><span>&nbsp;</span><span class="attribute">Content</span><span>=</span><span class="attribute-value">&quot;text/html;&nbsp;Charset=gb2312&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>该META标签定义了HTML页面所使用的字符集为GB2132，就是国标汉字码。如果将其中的&ldquo;</span><span class="attribute">charset</span><span>=</span><span class="attribute-value">GB2312</span><span>&rdquo;替换成&ldquo;BIG5&rdquo;，则该页面所用的字符集就是繁体中文Big5码。当你浏览一些国外的站点时，IE浏览器会提示你要正确显示该页面需要下载xx语支持。这个功能就是通过读取HTML页面META标签的Content-Type属性而得知需要使用哪种字符集显示该页面的。如果系统里没有装相应的字符集，则IE就提示下载。其他的语言也对应不同的charset，比如日文的字符集是&ldquo;iso-2022-jp&nbsp;&rdquo;，韩文的是&ldquo;ks_c_5601&rdquo;。Content-Type的Content还可以是：text/xml等文档类型 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>Charset选项：ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii,&nbsp;x-mac-roman,&nbsp;iso-8859-2,&nbsp;x-mac-ce,&nbsp;iso-2022-jp,&nbsp;x-sjis,&nbsp;x-euc-jp,euc-kr,&nbsp;iso-2022-kr,&nbsp;gb2312,&nbsp;gb_2312-80,&nbsp;x-euc-tw,&nbsp;x-cns11643-1,x-cns11643-2等字符集；Content-Language的Content还可以是：EN、FR等语言代码。 &nbsp;&nbsp;</span></li>
    <li class=""><span>Note:因为我们的浏览器一般都指定为中文字符编码查看，所以这句就不用加在你的页面当中，你加了也可以更强调也好。 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>2。page&nbsp;contentType&nbsp;&mdash;&nbsp;指定的是JSP页最终&nbsp;Browser(客户端)所见到的网页内容的编码.其实用在容器中就是说把JSP页面输出为HTML页面采用的编码方式。要把这个与第一个属性有所区别。 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>3。page&nbsp;pageEncoding&nbsp;&mdash;&nbsp;指定JSP解码时所用的编码 &nbsp;&nbsp;</span></li>
    <li class=""><span>如果你的是&nbsp;WIN98,&nbsp;或&nbsp;ME&nbsp;的NOTEPAD记事本编写JSP,&nbsp;就一定是常用的是Big5&nbsp;或&nbsp;gb2312,&nbsp;如果是用&nbsp;WIN2k&nbsp;winXP的NOTEPAD时,&nbsp;SAVE时就可以选择不同的编,码,&nbsp;包括&nbsp;ANSI(BIG5/GB2312)或&nbsp;UTF-8&nbsp;或&nbsp;UNIONCODE(估是&nbsp;UCS&nbsp;16). &nbsp;&nbsp;</span></li>
    <li class="alt"><span>因为&nbsp;JSP要经过&nbsp;两次的&rdquo;编码&rdquo;, &nbsp;&nbsp;</span></li>
    <li class=""><span>第一阶段会用&nbsp;pageEncoding,&nbsp;第二阶段会用&nbsp;utf-8&nbsp;至utf-8,&nbsp;第三阶段就是由TOMCAT出来的网页,&nbsp;用的是contentType. &nbsp;&nbsp;</span></li>
    <li class="alt"><span>阶段一是&nbsp;JSPC的&nbsp;JSP至JAVA(.java)原码的&rdquo;翻译&rdquo;,&nbsp;它会跟据&nbsp;pageEncoding&nbsp;的设定读取JSP.&nbsp;结果是由指定的pageEncoding(utf-8,Big5,gb2312)的JSP&nbsp;翻译成统一的utf-8&nbsp;JAVA原码(.java).&nbsp;如果pageEncoding设定错了,&nbsp;或没设定(预设ISO8859-1),&nbsp;出来的&nbsp;在这个阶段&nbsp;就已是中文乱码. &nbsp;&nbsp;</span></li>
    <li class=""><span>阶段二是由&nbsp;JAVAC的JAVA原码至JAVA&nbsp;BYTECODE的编译.&nbsp;不论JSP的编写时是用(utf-8,Big5,gb2312),经过阶段一的结果全都是utf-8的ENCODING的JAVA原码. &nbsp;&nbsp;</span></li>
    <li class="alt"><span>JAVAC用&nbsp;utf-8的ENCODING读取AVA原码,&nbsp;编译成字符串是&nbsp;utf-8&nbsp;ENCODING的二进制码(.class).&nbsp;这是&nbsp;JAVA&nbsp;VIRTUAL&nbsp;MACNHINE对常数字符串在&nbsp;二进制码(JAVA&nbsp;BYTECODE)内表达的规范.阶段三是TOMCAT(或其的application&nbsp;container)加载和执行阶段二得来的JAVA二进制码,&nbsp;输出的结果(&nbsp;也就是BROWSER(客户端)) &nbsp;&nbsp;</span></li>
    <li class=""><span>见到的.&nbsp;这时一早隐藏在阶段一和二的参数contentType,&nbsp;就发挥了功效.&nbsp;(见&nbsp;阶段一的&nbsp;). &nbsp;&nbsp;</span></li>
    <li class="alt"><span>4。request.setCharacterEncoding(&quot;gb2312&quot;)指定对请求采用中文编码发送。浏览器默认的是采取UTF8编码方式发送请求，不能识别中文字符。 &nbsp;&nbsp;</span></li>
    <li class=""><span>5。response.setContentType(&rdquo;text/html;&nbsp;</span><span class="attribute">charset</span><span>=</span><span class="attribute-value">gb2312</span><span>&Prime;);设置响应时发送数据的编码方式。 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>总结了一大堆，现在来说下怎么解决JSP页面中文问题 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>一般性的解决，只要在每个JSP页面开始处加入下面三行代码即可： &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件 &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span>%@&nbsp;page&nbsp;</span><span class="attribute">pageEncoding</span><span>=</span><span class="attribute-value">&quot;gb2312&quot;</span><span>%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>保证JSP向客户端输出时是采用中文编码方式输出 &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span>%@&nbsp;page&nbsp;</span><span class="attribute">contentType</span><span>=</span><span class="attribute-value">&quot;text/html;charset=GB2312&quot;</span><span>%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>为了让JSP能正确获得传入的参数 &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span>%request.setCharacterEncoding(&quot;gb2312&quot;);%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>对于SERVLET只要在最前面加上这句即可： &nbsp;&nbsp;</span></li>
    <li class="alt"><span>为了让JSP响应按照正确的编码格式 &nbsp;&nbsp;</span></li>
    <li class=""><span>response.set