﻿<?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-My Rhythm-随笔分类-View_lever</title><link>http://www.blogjava.net/redcoatjk/category/48591.html</link><description>万物皆对象 万事归节奏</description><language>zh-cn</language><lastBuildDate>Mon, 04 Nov 2013 06:30:48 GMT</lastBuildDate><pubDate>Mon, 04 Nov 2013 06:30:48 GMT</pubDate><ttl>60</ttl><item><title>浏览器事件监听</title><link>http://www.blogjava.net/redcoatjk/archive/2013/11/04/405972.html</link><dc:creator>redcoatjk</dc:creator><author>redcoatjk</author><pubDate>Mon, 04 Nov 2013 06:22:00 GMT</pubDate><guid>http://www.blogjava.net/redcoatjk/archive/2013/11/04/405972.html</guid><wfw:comment>http://www.blogjava.net/redcoatjk/comments/405972.html</wfw:comment><comments>http://www.blogjava.net/redcoatjk/archive/2013/11/04/405972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/redcoatjk/comments/commentRss/405972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/redcoatjk/services/trackbacks/405972.html</trackback:ping><description><![CDATA[摘自: <a href="http://www.douban.com/note/235086917/">http://www.douban.com/note/235086917/</a><br /><a href="http://jackleechina.iteye.com/blog/1595397">http://jackleechina.iteye.com/blog/1595397</a><br /><br />为什么一般要采用事件监听而不是直接对元素的事件属性（如：onclick、onmouseover）赋值？<br /><br />原来用事件属性只能赋值一种方法，即：<br /><br />button1.onclick = function() { alert(1); };<br />button1.onclick = function() { alert(2); };<br /><br /><strong>这样后面的赋值语句就将前面的onclick属性覆盖了</strong><br /><br />而使用添加事件监听的方式就可以实现并行。特别是当团队合作时，事件并行的需求增多，比如：监听document对象的鼠标事件或者window对象的载入事件等。使用事件属性则很容易造成事件覆盖掉<br /><br />使用事件监听有两种方式：attachEvent和addEventListener<br /><br />attachEvent与addEventListener区别<br />适应的浏览器版本不同，同时在使用的过程中要注意<br />attachEvent方法 按钮onclick<br />addEventListener方法 按钮click<br />attachEvent方法， （ie系列）<br />addEventListener方法 Mozilla系列<br /><br />例子如下: 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></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;3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /></span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_54_177_Open_Image" onclick="this.style.display='none'; Codehighlighter1_54_177_Open_Text.style.display='none'; Codehighlighter1_54_177_Closed_Image.style.display='inline'; Codehighlighter1_54_177_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_54_177_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_54_177_Closed_Text.style.display='none'; Codehighlighter1_54_177_Open_Image.style.display='inline'; Codehighlighter1_54_177_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">SCRIPT&nbsp;</span><span style="color: #ff0000">LANGUAGE</span><span style="color: #0000ff">="JavaScript"</span><span style="color: #0000ff">&gt;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_54_177_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_54_177_Open_Text"><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">&nbsp;5</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_73_94_Open_Image" onclick="this.style.display='none'; Codehighlighter1_73_94_Open_Text.style.display='none'; Codehighlighter1_73_94_Closed_Image.style.display='inline'; Codehighlighter1_73_94_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_73_94_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_73_94_Closed_Text.style.display='none'; Codehighlighter1_73_94_Open_Image.style.display='inline'; Codehighlighter1_73_94_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="background-color: #f5f5f5; color: #0000ff">function</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;method1()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_73_94_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_73_94_Open_Text"><span style="background-color: #f5f5f5; color: #000000">{<br /></span><span style="color: #008080">&nbsp;6</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">method1</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">&nbsp;7</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />}</span></span><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">&nbsp;8</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_114_135_Open_Image" onclick="this.style.display='none'; Codehighlighter1_114_135_Open_Text.style.display='none'; Codehighlighter1_114_135_Closed_Image.style.display='inline'; Codehighlighter1_114_135_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_114_135_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_114_135_Closed_Text.style.display='none'; Codehighlighter1_114_135_Open_Image.style.display='inline'; Codehighlighter1_114_135_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="background-color: #f5f5f5; color: #0000ff">function</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;method2()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_114_135_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_114_135_Open_Text"><span style="background-color: #f5f5f5; color: #000000">{<br /></span><span style="color: #008080">&nbsp;9</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">method2</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">10</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />}</span></span><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">11</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_155_176_Open_Image" onclick="this.style.display='none'; Codehighlighter1_155_176_Open_Text.style.display='none'; Codehighlighter1_155_176_Closed_Image.style.display='inline'; Codehighlighter1_155_176_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_155_176_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_155_176_Closed_Text.style.display='none'; Codehighlighter1_155_176_Open_Image.style.display='inline'; Codehighlighter1_155_176_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="background-color: #f5f5f5; color: #0000ff">function</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;method3()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_155_176_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_155_176_Open_Text"><span style="background-color: #f5f5f5; color: #000000">{<br /></span><span style="color: #008080">12</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">method3</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">13</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">14</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">SCRIPT</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></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">16</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;&nbsp;value</span><span style="color: #0000ff">="dom&nbsp;元素事件属性绑定的按钮"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="button1"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;&nbsp;value</span><span style="color: #0000ff">="IE浏览器:&nbsp;attachEvent进行事件绑定的按钮"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="btn1"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;&nbsp;value</span><span style="color: #0000ff">="火狐浏览器:&nbsp;addEventListener进行事件绑定的按钮"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="btn2"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /></span><span style="color: #008080">20</span><span style="color: #000000"><img id="Codehighlighter1_432_1146_Open_Image" onclick="this.style.display='none'; Codehighlighter1_432_1146_Open_Text.style.display='none'; Codehighlighter1_432_1146_Closed_Image.style.display='inline'; Codehighlighter1_432_1146_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_432_1146_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_432_1146_Closed_Text.style.display='none'; Codehighlighter1_432_1146_Open_Image.style.display='inline'; Codehighlighter1_432_1146_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">SCRIPT&nbsp;</span><span style="color: #ff0000">LANGUAGE</span><span style="color: #0000ff">="JavaScript"</span><span style="color: #0000ff">&gt;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_432_1146_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_432_1146_Open_Text"><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">21</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_438_473_Open_Image" onclick="this.style.display='none'; Codehighlighter1_438_473_Open_Text.style.display='none'; Codehighlighter1_438_473_Closed_Image.style.display='inline'; Codehighlighter1_438_473_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_438_473_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_438_473_Closed_Text.style.display='none'; Codehighlighter1_438_473_Open_Image.style.display='inline'; Codehighlighter1_438_473_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_438_473_Closed_Text">/**/</span><span id="Codehighlighter1_438_473_Open_Text"><span style="background-color: #f5f5f5; color: #008000">/*</span><span style="background-color: #f5f5f5; color: #008000">*方法一:&nbsp;使用元素的事件属性.&nbsp;[这种方式事件只可绑定一次,最后绑定的执行]*</span><span style="background-color: #f5f5f5; color: #008000">*/</span></span><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">22</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_506_522_Open_Image" onclick="this.style.display='none'; Codehighlighter1_506_522_Open_Text.style.display='none'; Codehighlighter1_506_522_Closed_Image.style.display='inline'; Codehighlighter1_506_522_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_506_522_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_506_522_Closed_Text.style.display='none'; Codehighlighter1_506_522_Open_Image.style.display='inline'; Codehighlighter1_506_522_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;button1.onclick&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">function</span><span style="background-color: #f5f5f5; color: #000000">()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_506_522_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_506_522_Open_Text"><span style="background-color: #f5f5f5; color: #000000">{&nbsp;alert(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">1-1</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);&nbsp;}</span></span><span style="background-color: #f5f5f5; color: #000000">;<br /></span><span style="color: #008080">23</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_559_575_Open_Image" onclick="this.style.display='none'; Codehighlighter1_559_575_Open_Text.style.display='none'; Codehighlighter1_559_575_Closed_Image.style.display='inline'; Codehighlighter1_559_575_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_559_575_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_559_575_Closed_Text.style.display='none'; Codehighlighter1_559_575_Open_Image.style.display='inline'; Codehighlighter1_559_575_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;button1.onclick&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">function</span><span style="background-color: #f5f5f5; color: #000000">()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_559_575_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_559_575_Open_Text"><span style="background-color: #f5f5f5; color: #000000">{&nbsp;alert(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">1-2</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);&nbsp;}</span></span><span style="background-color: #f5f5f5; color: #000000">;<br /></span><span style="color: #008080">24</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_580_648_Open_Image" onclick="this.style.display='none'; Codehighlighter1_580_648_Open_Text.style.display='none'; Codehighlighter1_580_648_Closed_Image.style.display='inline'; Codehighlighter1_580_648_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_580_648_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_580_648_Closed_Text.style.display='none'; Codehighlighter1_580_648_Open_Image.style.display='inline'; Codehighlighter1_580_648_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_580_648_Closed_Text">/**/</span><span id="Codehighlighter1_580_648_Open_Text"><span style="background-color: #f5f5f5; color: #008000">/*</span><span style="background-color: #f5f5f5; color: #008000">*方法二:&nbsp;使用attachEvent注册事件.&nbsp;格式如下object.attachEvent(event,function);*</span><span style="background-color: #f5f5f5; color: #008000">*/</span></span><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">25</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;btn1Obj&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;document.getElementById(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">btn1</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">26</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;btn1Obj.attachEvent(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">onclick</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,&nbsp;method1);<br /></span><span style="color: #008080">27</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;btn1Obj.attachEvent(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">onclick</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,&nbsp;method2);<br /></span><span style="color: #008080">28</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;btn1Obj.attachEvent(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">onclick</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,&nbsp;method3);<br /></span><span style="color: #008080">29</span><span style="background-color: #f5f5f5; color: #000000"><img id="Codehighlighter1_830_913_Open_Image" onclick="this.style.display='none'; Codehighlighter1_830_913_Open_Text.style.display='none'; Codehighlighter1_830_913_Closed_Image.style.display='inline'; Codehighlighter1_830_913_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_830_913_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_830_913_Closed_Text.style.display='none'; Codehighlighter1_830_913_Open_Image.style.display='inline'; Codehighlighter1_830_913_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_830_913_Closed_Text">/**/</span><span id="Codehighlighter1_830_913_Open_Text"><span style="background-color: #f5f5f5; color: #008000">/*</span><span style="background-color: #f5f5f5; color: #008000">*方法三:&nbsp;addEventListener.&nbsp;格式如下element.addEventListener(type,listener,useCapture);*</span><span style="background-color: #f5f5f5; color: #008000">*/</span></span><span style="background-color: #f5f5f5; color: #000000"><br /></span><span style="color: #008080">30</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;btn2Obj&nbsp;</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;document.getElementById(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">btn2</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">31</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;btn2Obj.addEventListener(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">click</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,method1,</span><span style="background-color: #f5f5f5; color: #0000ff">false</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">32</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;btn2Obj.addEventListener(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">click</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,method2,</span><span style="background-color: #f5f5f5; color: #0000ff">false</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">33</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;btn2Obj.addEventListener(</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">click</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">,method3,</span><span style="background-color: #f5f5f5; color: #0000ff">false</span><span style="background-color: #f5f5f5; color: #000000">);<br /></span><span style="color: #008080">34</span><span style="background-color: #f5f5f5; color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">执行顺序为method1-&gt;method2-&gt;method3</span><span style="background-color: #f5f5f5; color: #008000"><br /></span><span style="color: #008080">35</span><span style="background-color: #f5f5f5; color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">SCRIPT</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">36</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">attachEvent按照注册倒叙执行:&nbsp;&nbsp;&nbsp;&nbsp;执行顺序为method3-&gt;method2-&gt;method1&nbsp;<br /></span><span style="color: #008080">37</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">addEventListener按照注册顺序执行:&nbsp;&nbsp;&nbsp;&nbsp;执行顺序为method1-&gt;method2-&gt;method3&nbsp;<br /></span><span style="color: #008080">38</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></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">39</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div><br />相关衍生阅读: 
<h1><span style="font-size: 14pt"><a style="font-family: Verdana; text-decoration: underline" href="http://www.html5jscss.com/js-attach-event-74.html">
<h1><span style="color: #0000ff; font-size: 14pt">JavaScript欲速则不达&#8212;&#8212;基本处理事件详解和阻止事件传播</span></h1></a></span></h1><img src ="http://www.blogjava.net/redcoatjk/aggbug/405972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/redcoatjk/" target="_blank">redcoatjk</a> 2013-11-04 14:22 <a href="http://www.blogjava.net/redcoatjk/archive/2013/11/04/405972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Servlet总结</title><link>http://www.blogjava.net/redcoatjk/archive/2011/08/25/357277.html</link><dc:creator>redcoatjk</dc:creator><author>redcoatjk</author><pubDate>Thu, 25 Aug 2011 07:41:00 GMT</pubDate><guid>http://www.blogjava.net/redcoatjk/archive/2011/08/25/357277.html</guid><wfw:comment>http://www.blogjava.net/redcoatjk/comments/357277.html</wfw:comment><comments>http://www.blogjava.net/redcoatjk/archive/2011/08/25/357277.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/redcoatjk/comments/commentRss/357277.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/redcoatjk/services/trackbacks/357277.html</trackback:ping><description><![CDATA[摘自:&nbsp;&nbsp; http://www.iteye.com/topic/766418<br /><br />-----------------------------------------<br /><div><strong>1，什么是Servlet<br /> 2，Servlet有什么作用<br /> 3，Servlet的生命周期<br /> 4，Servlet怎么处理一个请求<br /> 5，Servlet与JSP有什么区别<br /> 6，Servlet里的cookie技术<br /> 7，Servlet里的过滤器<br /> 8，Servlet里的监听器</strong>  <p>&nbsp;</p> <p><br /> 一，什么是Servlet？</p> <p><br /> Servlet是一个Java编写的程序，此程序是基于Http协议的，在服务器端运行的(如tomcat)，</p> <p>&nbsp;</p> <p>是按照Servlet规范编写的一个Java类。</p> <p><br /><br /> 二，Servlet有什么作用？</p> <p><br /> 主要是处理客户端的请求并将其结果发送到客户端。</p> <p><br /><br /> 三，Servlet的生命周期？</p> <p><br /> Servlet的生命周期是由Servlet的容器来控制的，它可以分为3个阶段;初始化，运行，销毁。<br /><br /> 初始化阶段：</p> <p><br /> 1，Servlet容器加载servlet类，把servlet类的.class文件中的数据读到内存中。</p> <p><br /> 2，然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。</p> <p><br /> 3，Servlet容器创建一个servlet对象。</p> <p><br /> 4，Servlet容器调用servlet对象的init方法进行初始化。</p> <p><br /><br /> 运行阶段：</p> <p><br /> 当servlet容器接收到一个请求时，servlet容器会针对这个请求创建servletRequest和servletResponse对象。</p> <p>&nbsp;</p> <p>然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的</p> <p>&nbsp;</p> <p>信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和</p> <p>&nbsp;</p> <p>servletResponse对象。我们不管这个请求是post提交的还是get提交的，最终这个请求都会由service方法来处理。</p><p><br /></p><p><div><strong>web服务器接受到一个http请求后，web服务器会将请求移交给 servlet容器，servlet容器首先对所请求的URL进行解析并根据<br />web.xml  配置文件找到相应的处理servlet，同时将request、response对象传递给它，servlet通过request对象可知道客户端<br />的请求 者、请求信息以及其他的信息等，servlet在处理完请求后会把所有需要返回的信息放入response对象中并返回到客户端，<br />servlet一旦处理 完请求，servlet容器就会刷新response对象，并把控制权重新返回给web服务器。</strong></div><br /></p> <p>&nbsp;</p> <p><br /> 销毁阶段：</p> <p><br /> 当Web应用被终止时，servlet容器会先调用servlet对象的destrory方法，然后再销毁servlet对象，</p> <p>&nbsp;</p> <p>同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中，释放</p> <p>&nbsp;</p> <p>servlet所占用的资源，如关闭数据库连接，关闭文件输入输出流等。</p> <p><br /><br /> 在这里该注意的地方：</p> <p><br /> 在servlet生命周期中，servlet的初始化和和销毁阶段只会发生一次，而service方法执行的次数则取决于servlet被客户</p> <p>&nbsp;</p> <p>端访问的次数</p> <p>&nbsp;</p> <p>&nbsp;</p> <p><br /> 四，Servlet怎么处理一个请求？</p> <p><br /> 当用户发送一个请求到某个Servlet的时候，Servlet容器会创建一个ServletRequst和ServletResponse对象。</p> <p>&nbsp;</p> <p>在ServletRequst对象中封装了用户的请求信息，然后Servlet容器把ServletRequst和ServletResponse对象</p> <p>&nbsp;</p> <p>传给用户所请求的Servlet，Servlet把处理好的结果写在ServletResponse中，然后Servlet容器把响应结果传</p> <p>&nbsp;</p> <p>给用户。</p> <p>&nbsp;</p> <p><br /> 五，Servlet与JSP有什么区别？</p> <p><br /> 1，jsp经编译后就是servlet，也可以说jsp等于servlet。</p> <p><br /> 2，jsp更擅长页面(表现)。servlet更擅长逻辑编辑。 (最核心的区别)。</p> <p><br /> 3，在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,</p> <p>&nbsp;</p> <p>JSP位于MVC设计模式的视图层,而Servlet位于控制层。</p> <p>&nbsp;</p> <p><br /> 六，Servlet里的cookie技术？</p> <p><br /> cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段，是由Netscape公司开发出来的。</p> <p><br /> cookie技术的好处：</p> <p><br /> &nbsp;&nbsp;&nbsp; 1，Cookie有效期限未到时，Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。</p> <p><br /> &nbsp;&nbsp;&nbsp; 2，Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径。<br /> &nbsp;&nbsp;&nbsp; <br /> 创建一个cookie</p> <div id=""><div><div>Java代码 &nbsp;<a title="收藏这段代码"><img src="http://www.iteye.com/images/icon_star.png" alt="收藏代码" /></a></div></div><ol start="1"><li><span>//里面的两个参数分别是cookie的名和cookie的值&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>response.addCookie(<span>new&nbsp;Cookie("abc","10000000"));&nbsp;&nbsp;</span></li></ol></div> <p>&nbsp;</p> <p>使用cookie</p> <div id=""><div><div>Java代码 &nbsp;<a title="收藏这段代码"><img src="http://www.iteye.com/images/icon_star.png" alt="收藏代码" /></a></div></div><ol start="1"><li><span>Cookie[]&nbsp;cook&nbsp;=request.getCookies();//用一个Cookie数组来接收&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>for(int&nbsp;j=0;j&lt;cook.length;j++){//通过循环来打印Cookie&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cook[j].getName():<span>//取cookie的名&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cook[j].getValue():<span>//去cookie的值&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>}&nbsp;&nbsp;</li></ol></div> &nbsp; <p><br /> 七，Servlet里的过滤器？</p> <p><br /> 过滤器的主要作用</p> <p><br /> 1，任何系统或网站都要判断用户是否登录。</p> <p><br /> 2，网络聊天系统或论坛，功能是过滤非法文字</p> <p><br /> 3，统一解决编码</p> <p><br /> (2)怎么创建一个过滤器：</p> <p>&nbsp;</p> <p>1，生成一个普通的class类，实现Filter接口(javax.servlet.Filter;)。</p> <p><br /> 2，重写接口里面的三个方法：init，doFilter，destroy。</p> <p><br /> 3，然后在web.xml配置过滤器。</p> <p><br /><br /> 八，Servlet里的监听器？</p> <p><br /> 监听器的作用：自动执行一些操作。<br /><br /> 三种servlet监听器:</p> <p>&nbsp;</p> <p>对request的监听。对session的监听。对application的监听。<br /><br /> 怎么创建一个session监听器：</p> <p><br /> 1，生成一个普通的class类，如果是对session的监听，则实现HttpSessionListener。</p> <p><br /> 2，然后重写里面的五个方法:</p> <p>&nbsp;</p> <div id=""><div><div>Java代码 &nbsp;<a title="收藏这段代码"><img src="http://www.iteye.com/images/icon_star.png" alt="收藏代码" /></a></div></div><ol start="1"><li><span>public&nbsp;void&nbsp;sessionCreated(HttpSessionEvent&nbsp;arg0)&nbsp;{}&nbsp;//&nbsp;创建&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>public&nbsp;void&nbsp;sessionDestroyed(HttpSessionEvent&nbsp;arg0)&nbsp;{}&nbsp;//&nbsp;销毁&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>public&nbsp;void&nbsp;attributeAdded(HttpSessionEvent&nbsp;arg0)&nbsp;{}&nbsp;//&nbsp;增加&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>public&nbsp;void&nbsp;attributeRemoved(HttpSessionEvent&nbsp;arg0)&nbsp;{}&nbsp;//&nbsp;删除&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>public&nbsp;void&nbsp;attributeReplaced(HttpSessionEvent&nbsp;arg0)&nbsp;{}&nbsp;//&nbsp;替换&nbsp; <br /></span></li></ol></div></div><img src ="http://www.blogjava.net/redcoatjk/aggbug/357277.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/redcoatjk/" target="_blank">redcoatjk</a> 2011-08-25 15:41 <a href="http://www.blogjava.net/redcoatjk/archive/2011/08/25/357277.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>