﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-zhangsenwei</title><link>http://www.blogjava.net/zhangsenwei/</link><description>张森炜的博客</description><language>zh-cn</language><lastBuildDate>Fri, 22 Aug 2008 02:59:11 GMT</lastBuildDate><pubDate>Fri, 22 Aug 2008 02:59:11 GMT</pubDate><ttl>60</ttl><item><title>关于JDK5.0中预定义的解释</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/07/04/212517.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Fri, 04 Jul 2008 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/07/04/212517.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/212517.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/07/04/212517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/212517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/212517.html</trackback:ping><description><![CDATA[<p>我们先来看一下，下面这段代码：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_25_118_Open_Image" onclick="this.style.display='none'; Codehighlighter1_25_118_Open_Text.style.display='none'; Codehighlighter1_25_118_Closed_Image.style.display='inline'; Codehighlighter1_25_118_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_25_118_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_25_118_Closed_Text.style.display='none'; Codehighlighter1_25_118_Open_Image.style.display='inline'; Codehighlighter1_25_118_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;B&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;A&nbsp;</span><span id="Codehighlighter1_25_118_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_25_118_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red">@Override&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<img id="Codehighlighter1_59_116_Open_Image" onclick="this.style.display='none'; Codehighlighter1_59_116_Open_Text.style.display='none'; Codehighlighter1_59_116_Closed_Image.style.display='inline'; Codehighlighter1_59_116_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_59_116_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_59_116_Closed_Text.style.display='none'; Codehighlighter1_59_116_Open_Image.style.display='inline'; Codehighlighter1_59_116_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;test1()&nbsp;</span><span id="Codehighlighter1_59_116_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_59_116_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">.test1();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<br />
上面这段代码很简单，创建一个类，类的名字为B 同时让这个B类继承与A类，在A类中有一个方法叫 test1 ，现在我们想在B类中覆盖A类的test1方法，我们会看到代码中会出现 @Override 一句注释，它是用来干什么的呢？有很多学习Java的朋友，都会将他删除掉，那么我们就一起来看看它的作用吧。<br />
首先我们来创建一个类，类的名字叫做 A 具体源代码如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.zsw.test;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_38_120_Open_Image" onclick="this.style.display='none'; Codehighlighter1_38_120_Open_Text.style.display='none'; Codehighlighter1_38_120_Closed_Image.style.display='inline'; Codehighlighter1_38_120_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_38_120_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_38_120_Closed_Text.style.display='none'; Codehighlighter1_38_120_Open_Image.style.display='inline'; Codehighlighter1_38_120_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;A&nbsp;</span><span id="Codehighlighter1_38_120_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_38_120_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_61_118_Open_Image" onclick="this.style.display='none'; Codehighlighter1_61_118_Open_Text.style.display='none'; Codehighlighter1_61_118_Closed_Image.style.display='inline'; Codehighlighter1_61_118_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_61_118_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_61_118_Closed_Text.style.display='none'; Codehighlighter1_61_118_Open_Image.style.display='inline'; Codehighlighter1_61_118_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;test1()&nbsp;</span><span id="Codehighlighter1_61_118_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_61_118_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">This&nbsp;is&nbsp;test1&nbsp;moeth&nbsp;in&nbsp;A</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
我们再来创建一个类，类的名字叫做 B 并且让B类继承于 A 类，我们想在B类中重写A类中的test1方法，但是这时我们不小心将方法名写成 testl(这里不是test1 而是字母中的 L )，源代码如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.zsw.test;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_48_128_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_128_Open_Text.style.display='none'; Codehighlighter1_48_128_Closed_Image.style.display='inline'; Codehighlighter1_48_128_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_48_128_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_48_128_Closed_Text.style.display='none'; Codehighlighter1_48_128_Open_Image.style.display='inline'; Codehighlighter1_48_128_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;B&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;A&nbsp;</span><span id="Codehighlighter1_48_128_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_48_128_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_72_126_Open_Image" onclick="this.style.display='none'; Codehighlighter1_72_126_Open_Text.style.display='none'; Codehighlighter1_72_126_Closed_Image.style.display='inline'; Codehighlighter1_72_126_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_72_126_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_72_126_Closed_Text.style.display='none'; Codehighlighter1_72_126_Open_Image.style.display='inline'; Codehighlighter1_72_126_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;testl()&nbsp;</span><span id="Codehighlighter1_72_126_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_72_126_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">This&nbsp;is&nbsp;test1&nbsp;method&nbsp;in&nbsp;B</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
我们发现我们的方法名称写错了程序并没有报错，但是我们想要覆盖的 test1 方法功能并没有实现而是为B类中有添加一个新的方法 testl(这里是L)<br />
最后我们在写测试类 Test的时候执行结果怎么都不对。<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.zsw.test;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_41_121_Open_Image" onclick="this.style.display='none'; Codehighlighter1_41_121_Open_Text.style.display='none'; Codehighlighter1_41_121_Closed_Image.style.display='inline'; Codehighlighter1_41_121_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_41_121_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_41_121_Closed_Text.style.display='none'; Codehighlighter1_41_121_Open_Image.style.display='inline'; Codehighlighter1_41_121_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test&nbsp;</span><span id="Codehighlighter1_41_121_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_41_121_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_84_118_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_118_Open_Text.style.display='none'; Codehighlighter1_84_118_Closed_Image.style.display='inline'; Codehighlighter1_84_118_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_84_118_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_84_118_Closed_Text.style.display='none'; Codehighlighter1_84_118_Open_Image.style.display='inline'; Codehighlighter1_84_118_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_84_118_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_84_118_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;B();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.test1();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
总是打印的是 A类中的 test1 方法。这种情况在初学这种经常出现，那么怎么能够避免这种问题呢，这就要用到我们上面的那句注释了。现在我们在B类的方法前加上注释&nbsp;&nbsp;我们再来看看，发现B类的代码报错了<br />
<img height="153" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/zhushi.jpg" width="578" border="0" /><br />
因为这句注释的意思是说这里覆盖的是A 类中的test1方法而现在所写的方法没有进行覆盖。这样我们就很容易避免上面所出现的错误了。<br />
当然在JDK5.0中还有很多其他的一些注释比如：<br />
@Deprecated&nbsp;&nbsp;&nbsp; 方法已过期，不再推荐使用。在一个方法上面写类这句注释就会出现下面的情况：<br />
<img height="231" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/deprecated.jpg" width="718" border="0" /><br />
<br />
关于更多的一些注释，可以参考一下JDK5.0帮助。<br />
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/212517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-07-04 11:05 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/07/04/212517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2.0 + Spring2.0 + Hibernate3.1 整个3.0</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/27/211051.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Fri, 27 Jun 2008 01:58:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/27/211051.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/211051.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/27/211051.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/211051.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/211051.html</trackback:ping><description><![CDATA[<p>前一段时间struts2.0刚出现不久，就学习了一下 struts2.0 学习完之后，发现在2.0中无论 ActionBean的灵活度还是功能上都比Struts1.x要强大，所以昨天下班后又将struts2.0+spring2.0+Hibernate3.1的整合做了一下，但是由于时间比较紧，没能像前两个版本一样抓图下来，只是用文本文件将其整合过程一一记录下来。如果有时间，我也会将这篇文章用抓图的方式一步一步的在制作一边。<br />
<br />
整合文件下载：<a href="http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4115004">http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4115004</a><br />
<br />
SSH整合过程中用到的Jar包下载地址：<span style="color: red"><a href=""  href_cetemp>&nbsp;</a><a style="color: red" href=""  href_cetemp> </a></span><a href=""  href_cetemp>http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4114891</a></p>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/211051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-27 09:58 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/27/211051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts1.2 + Spring2.0 + Hibernate 3.1 整合 2.0版本</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210109.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Mon, 23 Jun 2008 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210109.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/210109.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210109.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/210109.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/210109.html</trackback:ping><description><![CDATA[<p>在上一次(<a title="dd" href="http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210083.html">可以点击此处浏览第一次整合</a>)的开发基础之上，这次我们对上次整合后的SSH框架进行一下系统提升，这次的提升主要对框架进行了一下3处的完善<br />
(1)建立公共函数库<br />
(2)加入DAO适配器<br />
(3)加入事务和拦截器<br />
<br />
<br />
整合文档：&nbsp; <a href="/Files/zhangsenwei/ssh2.doc">/Files/zhangsenwei/ssh2.doc</a><br />
源代码：&nbsp;&nbsp;&nbsp;&nbsp; <a href="/Files/zhangsenwei/address2.rar">/Files/zhangsenwei/address2.rar</a></p>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/210109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-23 18:16 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts1.2+Spring2.0+Hibernate3.1   整合1.0版</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210083.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Mon, 23 Jun 2008 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210083.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/210083.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210083.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/210083.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/210083.html</trackback:ping><description><![CDATA[<p>&nbsp;今天没事，将SSH三个框架的整合方式写了一下，由于图片太多了网速还不怎么样，所以写成World文档形式了。<br />
整合文档下载：&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;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.blogjava.net/Files/zhangsenwei/ssh.doc">/Files/zhangsenwei/ssh.doc</a><br />
<br />
源代码下载：&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.blogjava.net/Files/zhangsenwei/address.rar">/Files/zhangsenwei/address.rar</a><br />
<br />
所需SSH整合Jar包下载(由于上传限制分为6个部分下载)<br />
<br />
&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;&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;&nbsp;<a href="http://www.blogjava.net/Files/zhangsenwei/SSH-Jar.part1.rar">/Files/zhangsenwei/SSH-Jar.part1.rar</a><br />
&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;&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; <a href="http://www.blogjava.net/Files/zhangsenwei/SSH-Jar.part2.rar">/Files/zhangsenwei/SSH-Jar.part2.rar</a><br />
&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;&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; <a href="http://www.blogjava.net/Files/zhangsenwei/SSH-Jar.part3.rar">/Files/zhangsenwei/SSH-Jar.part3.rar</a><br />
&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;&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; <a href="http://www.blogjava.net/Files/zhangsenwei/SSH-Jar.part4.rar">/Files/zhangsenwei/SSH-Jar.part4.rar</a><br />
&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;&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; <a href="http://www.blogjava.net/Files/zhangsenwei/SSH-Jar.part5.rar">/Files/zhangsenwei/SSH-Jar.part5.rar</a><br />
&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;&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; <a href="http://www.blogjava.net/Files/zhangsenwei/SSH-Jar.part6.rar">/Files/zhangsenwei/SSH-Jar.part6.rar</a><br />
&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;&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; <img height="562" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh3.jpg" width="482" border="0" /></p>
    <img src ="http://www.blogjava.net/zhangsenwei/aggbug/210083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-23 16:11 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate主键类型详解</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210001.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Mon, 23 Jun 2008 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210001.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/210001.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210001.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/210001.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/210001.html</trackback:ping><description><![CDATA[<div><strong>1) assigned<br />
主键由外部程序负责生成，无需Hibernate参与。<br />
<br />
2) hilo<br />
通过hi/lo 算法实现的主键生成机制，需要额外的数据库表保存主<br />
键生成历史状态。<br />
<br />
3) seqhilo<br />
与hilo 类似，通过hi/lo 算法实现的主键生成机制，只是主键历史<br />
状态保存在Sequence中，适用于支持Sequence的数据库，如Oracle。<br />
<br />
4) increment<br />
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持<br />
一个变量，以保存着当前的最大值，之后每次需要生成主键的时候<br />
将此值加1作为主键。<br />
这种方式可能产生的问题是：如果当前有多个实例访问同一个数据<br />
库，那么由于各个实例各自维护主键状态，不同实例可能生成同样<br />
的主键，从而造成主键重复异常。因此，如果同一数据库有多个实<br />
例访问，此方式必须避免使用。<br />
<br />
5) identity<br />
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL<br />
中的主键生成机制。<br />
<br />
6) sequence<br />
采用数据库提供的sequence 机制生成主键。如Oralce 中的<br />
Sequence。<br />
<br />
7) native<br />
由Hibernate根据底层数据库自行判断采用identity、hilo、sequence<br />
其中一种作为主键生成方式。<br />
<br />
8) uuid.hex<br />
由Hibernate基于128 位唯一值产生算法生成16 进制数值（编码后<br />
以长度32 的字符串表示）作为主键。<br />
<br />
9) uuid.string<br />
与uuid.hex 类似，只是生成的主键未进行编码（长度16）。在某些<br />
数据库中可能出现问题（如PostgreSQL）。<br />
<br />
10) foreign<br />
使用外部表的字段作为主键。<br />
一般而言，利用uuid.hex方式生成主键将提供最好的性能和数据库平台适<br />
应性。<br />
<br />
另外由于常用的数据库，如Oracle、DB2、SQLServer、MySql 等，都提<br />
供了易用的主键生成机制（Auto-Increase 字段或者Sequence）。我们可以在数<br />
据库提供的主键生成机制上，采用generator-class=native的主键生成方式。<br />
不过值得注意的是，一些数据库提供的主键生成机制在效率上未必最佳，<br />
大量并发insert数据时可能会引起表之间的互锁。<br />
数据库提供的主键生成机制，往往是通过在一个内部表中保存当前主键状<br />
态（如对于自增型主键而言，此内部表中就维护着当前的最大值和递增量），<br />
之后每次插入数据会读取这个最大值，然后加上递增量作为新记录的主键，之<br />
后再把这个新的最大值更新回内部表中，这样，一次Insert操作可能导致数据<br />
库内部多次表读写操作，同时伴随的还有数据的加锁解锁操作，这对性能产生<br />
了较大影响。<br />
因此，对于并发Insert要求较高的系统，推荐采用uuid.hex 作为主键生成<br />
机制。 </strong><br />
</div>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/210001.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-23 10:57 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/23/210001.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图片保存到数据Mysql中</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209857.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Sun, 22 Jun 2008 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209857.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/209857.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209857.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/209857.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/209857.html</trackback:ping><description><![CDATA[<a href="/Files/zhangsenwei/imageSaveInMysql.rar">/Files/zhangsenwei/imageSaveInMysql.rar</a>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/209857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-22 17:01 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>张森炜讲JSP---第一个JSP</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209837.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Sun, 22 Jun 2008 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209837.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/209837.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209837.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/209837.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/209837.html</trackback:ping><description><![CDATA[JSP是Java Server Page的缩写。<br />
JSP是一个B/S结构的web应用程序。这里我们先来解释一下什么是B/S结构，B/S 既浏览器（Browser）/服务器（Server）。<br />
下面我们来编写一个JSP的web应用程序：<br />
我们先打开Myeclipse，点击 File ----&gt; New&nbsp; ----&gt;&nbsp;Web Project<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="166" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-1.jpg" width="517" border="0" /><br />
<br />
<br />
在 Project Name 处为我们创建的jsp web工程起个名字，可以自己定，这里我们起：&nbsp; fristJSP&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同时将下面的 Java EE 5.0 选中，用最新的JDK版本&nbsp; 点击 Finish&nbsp; 按钮。<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="492" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/1-2.jpg" width="493" border="0" /><br />
<br />
在创建一个JSP页面，对准 WebRoot右键 ---&gt;&nbsp; NEW ---&gt;JSP(Advanced Templates)<br />
<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="416" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-14.jpg" width="561" border="0" /><br />
<br />
<br />
在File Name 处为 新建的JSP页面起个名字，我们这里叫 showMes.jsp 点击 Finish 按钮。<br />
<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="485" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-15.jpg" width="490" border="0" /><br />
<br />
双击 WebRoot ---&gt; index.jsp 页面&nbsp; <br />
<br />
<img height="147" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-3.jpg" width="261" border="0" /><br />
<br />
我们需要在 index.jsp 上显示&#8220;这是我的第一个JSP Web 应用程序&#8221;的字样，所以需要将 index.jsp页面的代码修改改成如下形式：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_2_45_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_45_Open_Text.style.display='none'; Codehighlighter1_2_45_Closed_Image.style.display='inline'; Codehighlighter1_2_45_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_2_45_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_45_Closed_Text.style.display='none'; Codehighlighter1_2_45_Open_Image.style.display='inline'; Codehighlighter1_2_45_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_45_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2_45_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;language</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;pageEncoding</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">UTF-8</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">第一JSP程序</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是我的第一个JSP&nbsp;Web&nbsp;应用程序<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<p><br />
注意别忘了保存或者按下&nbsp; ctrl + s&nbsp; 键进行保存。^_^</p>
<p>接下来我们可以在工具栏中找到这样 <img height="29" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-4.jpg" width="34" border="0" />&nbsp; 一个按钮，我们点击一下。这个按钮是用来部署web应用程序的以后我们会经常用到它。<br />
<br />
我们可以通过下图中的 Project 选择所需要部署的项目，并点击 Add 按钮。<br />
<img height="218" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-6.jpg" width="502" border="0" /><br />
<br />
<br />
在弹出的界面中的Server 选择&nbsp;&nbsp; Tomcat6.x&nbsp; 并点击 Finish按钮。<br />
<br />
<img height="129" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-7.jpg" width="520" border="0" /><br />
<br />
<br />
这时我们会看到下面的界面 ，显示部署成功：Successfully deployed&nbsp;&nbsp;&nbsp; 点击 OK 按钮。<br />
<br />
<img height="338" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-8.jpg" width="493" border="0" /><br />
<br />
在工具栏中找到如下的图标，并在点击后面的小黑色箭头，在弹出的菜单中选择 Tomcat6.x ---&gt; start <br />
<br />
<img height="141" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-5.jpg" width="285" border="0" /></p>
<p><br />
这时我们会发现 Tomcat 启动了。<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-9.jpg" border="0" /></p>
<p>&nbsp;</p>
<p>接下来打开 IE 浏览器 输入&nbsp; <a href="http://localhost:8080/fristJSP">http://localhost:8080/fristJSP</a> 回车，会看到如下的界面：<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="189" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-10.jpg" width="326" border="0" /><br />
<br />
</p>
<p>我们现在可以通过点击下图中的红色方框按钮停止Tomcat服务器<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-11.jpg" border="0" /></p>
<p>&nbsp;</p>
<p>先看看在我们访问<a href="http://localhost:8080/fristJSP">http://localhost:8080/fristJSP</a>的时候究竟发生了什么：<br />
</p>
<p>1、咱们这里使用了<a href="http://localhost:8080/">http://localhost:8080/</a>，浏览器就会以http协议，去访问localhost的8080端口，localhost是本机的别名，8080是tomcat的默认端口，即使现在不太理解也没有关系，只要知道http://localhost:8080/是你这台机器上运行的tomcat就可以了。</p>
<p>2、到了服务器的位置，浏览器会向服务器发送一个请求（request）。这个请求包含着http协议规定格式的数据，现在咱们不需要去计较细节，先把注意力集中在流程上。<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="103" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-12.jpg" width="431" border="0" /><br />
<br />
3、接下来，服务器接收请求，分析请求中包含的数据。这个分析过程也是定义在http协议中的，像我们这里请求的是/index.jsp这个jsp页面，服务器就会去webapp/ROOT目录下去查找这个index.jsp，然后对它进行解析，运行。</p>
<p>也许你会在这很困扰，会问我没有运行 index.jsp页面呀，我只是在地址栏中输入了 <a href="http://localhost:8080/fristJSP">http://localhost:8080/fristJSP</a>&nbsp; 。当我们在地址栏中输入地址<br />
<a href="http://localhost:8080/fristJSP">http://localhost:8080/fristJSP</a>&nbsp; 时Tomcat服务器会自动的去寻找 index.jsp 这个首页(打开网页自动运行显示的页面成为首页)。这个默认首页是可以修改的，我们可以打开 WebRoot ---&gt; WEB-INF----&gt;web.xml 文件 会发现有下面这段代码：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">index.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span></div>
<p><br />
我们可以将index.jsp改成showMes.jsp页面，此处要注意需要改得页面必须是在你工程中存在的，我们再次启动Tomcat服务器，在IE地址栏中输入 <a href="http://localhost:8080/fristJSP">http://localhost:8080/fristJSP</a>&nbsp;时就会发现现在默认显示的是showMes.jsp页面的内容了。<br />
<br />
<br />
4、在服务器的操作结束后，会生成一个响应（response），并把这个响应发送回客户机器的浏览器。</p>
<p><br />
<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="101" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/jsp2/1-13.jpg" width="435" border="0" /><br />
<br />
5、现在浏览器接收了响应，开始进行解析与运行，最后把结果显示给用户，这就成为我们最后看到的结果。<br />
<br />
</p>
<p>这就是http协议的基本流程了，像我们看到的一样，浏览器与服务器之间完全是依靠请求和响应联系起来的。这就像是在打乒乓球，浏览器发过一个球来，服务器接到球，反手再打回去。双方队员之间不会有其他接触，所有的交流就是那颗小球。</p>
<p>这也暗示了http中另一个重要的特性：短连接，无状态。<br />
</p>
<li>
<p>短连接是指：请求响应一次，服务器就关闭与浏览器之间的网络连接。</p>
<li>
<p>无状态是指，任意两次请求响应之间，没有直接的联系。</p>
</li>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 浏览器发出一个请求，服务器才能返回一个响应。一个请求对应一个响应，每个过程都是完全独立的。并且服务器端是被动的，只能接收请求，然后向请求的原发地发送响应，如果没有请求，服务器没办法凭空发一个响应出去，因为它不知道客户的机器在什么地方。浏览器和服务器之间也不会拉一根电话线，随时保证畅通，每次请求处理完之后，服务器就会立刻忘掉上次请求的信息。这样做的好处是处理简单，连接用完就断，不会浪费资源，坏处是在进行复杂操作的时候，因为没法保证用户当前的状态，只好把表示状态的信息不断的在浏览器和服务器之前传来传去，造成了操作的复杂。</p>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其实一切都是这么简单，只要能了解它的运行原理，我们就可以很容易的掌握JSP的编程了。
 <img src ="http://www.blogjava.net/zhangsenwei/aggbug/209837.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-22 16:33 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209837.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>张森炜讲JSP---序言</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209821.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Sun, 22 Jun 2008 04:40:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209821.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/209821.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209821.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/209821.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/209821.html</trackback:ping><description><![CDATA[<p>1、作者编写目的：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本内容送给我最亲爱的学生们，愿这些内容对于他们在学习JSP编程的道路上有所帮助。<br />
<br />
2、准备内容</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在学习JSP编程之前，你要对Java编程基础、Html、数据库有所了解，这里我们不是我们所讲教授的范围，所以不做过多的介绍了。<br />
<br />
3、环境搭建<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果你是刚学习Jsp编程，那么你需要了解以下两个东西：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)&nbsp; JDK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编写JAVA程序必须的服务器，主要作用是用来编译Java代码和解释Java代码的，其中还包含了一些编译，运行的命令。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2) TomCat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用来运行JSP的服务器，我们要想运行JSP代码就必须由它的支持。<br />
<br />
<strong>安装 JDK</strong><br />
&nbsp; <br />
到 <a class="ulink" href="http://java.sun.com/javase/downloads/index.jsp" target="_top">http://java.sun.com/javase/downloads/index.jsp</a>&nbsp;下载JDK 6 版本。<br />
<br />
可以通过点击右边Download按钮进行下载：<br />
<br />
&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;&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;&nbsp;&nbsp; <img height="145" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00000.jpg" width="589" align="absMiddle" border="0" /></p>
<br />
选择 I agree to the Java SE Development Kit 6&nbsp; License Agreement&nbsp; 接受sun的下载协议。<br />
<br />
&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;&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; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00001.jpg" border="0" /><br />
&nbsp;<br />
接受协议后，就可以选择71.49M的下载包，进行下载。<br />
<br />
&nbsp;<br />
&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;&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; <img height="150" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00002.jpg" width="571" border="0" /><br />
<br />
下载完毕，得到&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jdk-6u6-windows-i586-p.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&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;&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00003.jpg" border="0" /><br />
双击&nbsp;jdk-6u6-windows-i586-p.exe 进行安装，默认的安装路径是：C:\Program Files\Java\jdk1.6.0_06\<br />
<br />
&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;&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; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00004.jpg" border="0" /><br />
<br />
安装完以后的目录如下图：<br />
<br />
&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;&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; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00005.jpg" border="0" /><br />
<br />
至此我们的 JDK 就安装完成了，但是还不能够使用，要想使用还必须配置环境变量。<br />
<br />
JDK的环境变量配置：<br />
<br />
<p>我的电脑（单击鼠标右键）-&gt;属性-&gt;高级-&gt;环境变量</p>
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00006.jpg" border="0" /><br />
<br />
选择新建，添加两个环境变量，java_home 和path<br />
<br />
其中JAVA_HOME的值是刚刚 JDK 的安装路径，在这里是&nbsp; C:\Program Files\Java\jdk1.6.0_06\&nbsp;&nbsp;&nbsp;&nbsp; 如果安装到其他路径下，需要按实际情况进行修改。<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00007.jpg" border="0" /><br />
<br />
PATH环境变量要主要是配置的是 JDK 下面的&nbsp;C:\Program Files\Java\jdk1.6.0_06\bin&nbsp;&nbsp; 目录<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00008.jpg" border="0" /><br />
添加完两个环境变量后的截图如下：<br />
&nbsp;<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="206" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00009.jpg" width="373" border="0" /><br />
<br />
接下来我们点击&nbsp;&nbsp;&nbsp;&nbsp; 开始菜单栏----&gt;&nbsp; 运行 ----&gt; 输入 cmd&nbsp; ------&gt;&nbsp; 在输入 javac&nbsp;&nbsp;-----&gt;&nbsp;&nbsp; 回车<br />
<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/preface-03-01-jdk-11.png" border="0" /><br />
<br />
&nbsp;<br />
如果按上面的步骤配置报错了，请检查你的环境变量配置是否正确，这里值得注意的是重新配置了环境变量需要重新打开一个cmd窗口新配置的环境变量才能够生效。<br />
<br />
TomCat的安装与配置：<br />
<br />
<span style="color: red"><strong>注意：这里要安装或配置Tomcat必须先安装和正确配置JDK。</strong></span><br />
<br />
到&nbsp;&nbsp; <a href="http://tomcat.apache.org/download-60.cgi">http://tomcat.apache.org/download-60.cgi</a>&nbsp;&nbsp;&nbsp; 下载Tomcat6.0 版本<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00010.jpg" border="0" /><br />
下载core里的zip项并解压至 C:\fuwu\Tomcat 6.0 目录<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00011.jpg" border="0" /><br />
<br />
打开&nbsp; C:\fuwu\Tomcat 6.0\bin&nbsp; 目录，并双击运行&nbsp; tomcat6.exe&nbsp; 文件。<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00012.jpg" border="0" /><br />
<br />
<br />
<br />
至到，我们看到&nbsp; Server&nbsp; startup in&nbsp; 11031 ms&nbsp;的字样是，Tomcat就正常启动了，注意 11031 这个数字是Tomcat启动时花费的时间每次都是不一样的我们可以不用去关心它。<br />
<br />
上面的图示中我们还可以注意到一个字样：&nbsp; http-8080&nbsp; ，这里的8080表示的是 Tomcat运行时所要占用的端口号。<br />
<br />
我们现在可以打开 IE 浏览器，在地址栏里输入 <a href="http://localhost:8080/">http://localhost:8080/</a>&nbsp; 可以看到如下的图示：<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/preface-03-02-tomcat-04.png" border="0" /><br />
<br />
至此我们的JSP运行环境就配置完成了，至于如何关闭Tomcat可以直接点击窗口上面的关闭按钮。 <br />
<br />
<br />
下面我们来看看如何配置我们的开发环境：<br />
<br />
我们这里使用的开发环境是 Eclipse 我们可以通过网址： <a href="http://www.myeclipseide.com/module-htmlpages-display-pid-4.html">http://www.myeclipseide.com/module-htmlpages-display-pid-4.html</a>&nbsp; 下载 Myeclipse blue 版<br />
<br />
&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;&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;&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; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00013.jpg" border="0" /><br />
<br />
下载后进行安装，安装的路径自己可以根据自己的需要设定。<br />
<br />
安装完毕之后，只是个适用版本没有注册，我们打开MyEclipse通过点击&nbsp;&nbsp; MyEclipse菜单---&gt;Subscription Information...<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00014.jpg" border="0" /><br />
<br />
在&nbsp;弹出的对话框中按下图填写，如果提示错误，请先断开网络再试。<br />
<br />
&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00015.jpg" border="0" /><br />
<br />
这样JSP的开发环境Myeclipse也配置好了。下面我们还需要配置最后一个东西，就是在MyEclipse中配置 Tomcat。<br />
<br />
打开Myeclipse----&gt;Window----&gt;Preferences...<br />
<br />
&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;&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;&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;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00016.jpg" border="0" /><br />
<br />
<br />
在弹出的对话框中的左侧选择 MyEclipse Blue Edition ---&gt; Servers ----&gt;Tomcat ---&gt; Tomcat 6.x 右侧会显示如下图示：<br />
<br />
<strong style="color: red">注意：Tomcat Server 下选择 Enable<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tomcat home directory：通过点击后面的 Browse... 选择Tomcat6.0的安装路径<br />
</strong><br />
配置完后点击 Apply 按钮。<br />
<br />
<img height="536" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00017.jpg" width="657" border="0" /><br />
<br />
<br />
之后点击左侧 Tomcat6.x 前面的三角形选中下面的 JDK 会看到如下图示的界面<br />
<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00018.jpg" border="0" /><br />
<br />
通过点击右边的 Add...&nbsp; 按钮会弹出如下图所示的界面<br />
&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;&nbsp;&nbsp; 在 JRE name处我们可以随便起个名字，这里我起的是 MyselfJDK<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JRE home directory 处选择我们之前安装过的jdk路径<br />
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配置完毕后点击 OK 按钮<br />
<br />
&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;&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; <img height="563" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Image00019.jpg" width="495" border="0" /><br />
<br />
之后我们会看到如下图所示的界面，然后再点击OK按钮<br />
<br />
<img height="530" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/11.jpg" width="656" border="0" /><br />
<br />
<br />
至此，我们的开发环境和运行环境都配置完成了，在下面一章中我们来介绍如何开发jsp程序和部署运行jsp程序。<br />
 <img src ="http://www.blogjava.net/zhangsenwei/aggbug/209821.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-22 12:40 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/22/209821.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>验证码的作用</title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209648.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Sat, 21 Jun 2008 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209648.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/209648.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209648.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/209648.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/209648.html</trackback:ping><description><![CDATA[最近,有些同学在做二阶段毕业设计时,发现每次提交表单时都需要雨填写一串数字或字母,这就是我们上课提到过的验证码,那么它有什么作用呢?&nbsp; <br />
<br />
<strong>验证码是什么？</strong>
<p><font face="Verdana">&nbsp;&nbsp;就是将一串随机产生的数字或符号，生成一幅图片，图片里加上一些干扰象素（防止OCR），由用户肉眼识别</font></p>
<p><font face="Verdana">其中的验证码信息，输入表单提交网站验证，验证成功后才能使用某项功能。</font></p>
<p><font face="Verdana"><br />
<strong>&nbsp;&nbsp;&nbsp; 验证码的作用？</strong></font></p>
<p>&nbsp; 验证码一般是防止有人利用机器人自动批量注册、对特定的注册用户用特定程序暴力破解方式进行不断的登陆、灌水。因为验证码是一个混合了数字或符号的图片，人眼看起来都费劲，机器识别起来就更困难。像百度贴吧未登录发贴要输入验证码大概是防止大规模匿名回帖的发生。一般注册用户ID的地方以及各大论坛都要要输入验证码</p>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/209648.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-21 08:55 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209648.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Session使用(续) </title><link>http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209647.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Sat, 21 Jun 2008 00:47:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209647.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/209647.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/209647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/209647.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这次我们来看一下session的使用，那么我们就通过一个统计网站在线用户这个例子来开始我们今天的话题吧。&nbsp;&nbsp;&nbsp; 我们上次说了当一个客户端第一次访问网站时，服务器就会为这个客户端创建一个session，那么我们可以在某一时刻通过session的存活数量知道当前有多少客户端在线，那么问题是我们怎么才能知道某一时间内有多少个session存活呢？我们可以自己写一个累加器...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209647.html'>阅读全文</a><img src ="http://www.blogjava.net/zhangsenwei/aggbug/209647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2008-06-21 08:47 <a href="http://www.blogjava.net/zhangsenwei/archive/2008/06/21/209647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>