﻿<?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-jeonok</title><link>http://www.blogjava.net/jeonok/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 15 Apr 2026 13:44:25 GMT</lastBuildDate><pubDate>Wed, 15 Apr 2026 13:44:25 GMT</pubDate><ttl>60</ttl><item><title>js实现页面跳转的几种方式</title><link>http://www.blogjava.net/jeonok/archive/2007/03/28/106811.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Tue, 27 Mar 2007 17:16:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2007/03/28/106811.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/106811.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2007/03/28/106811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/106811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/106811.html</trackback:ping><description><![CDATA[第一种：<br />    &lt;script language=<font color="#00bb00" size="2">"javascript"</font><font color="black" size="2"> type=</font><font color="#00bb00" size="2">"text/javascript"</font><font color="black" size="2">&gt;<br />           window.location.href=</font><font color="#00bb00" size="2">"login.jsp?backurl="</font><font color="black" size="2">+window.location.href; <br />    &lt;/script&gt;<br /><br />第二种：<br />    &lt;script language=</font><font color="#00bb00" size="2">"javascript"</font><font color="black" size="2">&gt;<br />	alert(</font><font color="#00bb00" size="2">"返回"</font><font color="black" size="2">);<br />	window.history.back(-1);<br />   &lt;/script&gt;<br /><br />第三种：<br />   &lt;script language=</font><font color="#00bb00" size="2">"javascript"</font><font color="black" size="2">&gt;<br />	window.navigate(</font><font color="#00bb00" size="2">"top.jsp"</font><font color="black" size="2">);<br />  &lt;/script&gt;<br /><br />第四种：<br />   &lt;script language=</font><font color="#00bb00" size="2">"JavaScript"</font><font color="black" size="2">&gt;<br />          self.location='top.htm';<br />   &lt;/script&gt;<br /><br />第五种：<br />   &lt;script language=</font><font color="#00bb00" size="2">"javascript"</font><font color="black" size="2">&gt;<br />          alert(</font><font color="#00bb00" size="2">"非法访问！"</font><font color="black" size="2">);<br />          top.location='xx.jsp';<br />   &lt;/script&gt;<br /></font><img src ="http://www.blogjava.net/jeonok/aggbug/106811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2007-03-28 01:16 <a href="http://www.blogjava.net/jeonok/archive/2007/03/28/106811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Servlet 中的事件监听</title><link>http://www.blogjava.net/jeonok/archive/2007/03/28/106810.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Tue, 27 Mar 2007 17:14:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2007/03/28/106810.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/106810.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2007/03/28/106810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/106810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/106810.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">关于</span>
								<span lang="EN-US">Servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">中的事件监听</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">在</span>
								<span lang="EN-US">Servlet2.3</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">规范中添加了一些监听</span>
								<span lang="EN-US">web</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">应用中重要事件的能力。这项功能可以让我们根据事件的状态更有效的对资源进行管理和自动化进行。这部分描述了</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的事件监听，包含以下部分：</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">1．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<font size="3">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件的分类和</span>
								<span lang="EN-US">Listener</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">接口</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">2．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">典型的事件监听过程</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">3．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">事件监听的声明和调用</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">4．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">事件监听编码和发布向导</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">5．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">事件监听的方法和相关的类</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件的分类和</span>
								<span lang="EN-US">Listener</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">接口</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span lang="EN-US">Servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件有两个级别：</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">1．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span lang="EN-US">
								<font size="3">Application</font>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">级别事件</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">包含着运行应用程序的虚拟机级别的相关资源和状态，即和</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的</span>
								<span lang="EN-US">Context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">对象相关。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">2．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span lang="EN-US">
								<font size="3">Session</font>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">级别的事件</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">包含着一个单一用户的</span>
								<span lang="EN-US">session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的一系列请求的相关资源和状态，即</span>
								<span lang="EN-US">Http</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的</span>
								<span lang="EN-US">Session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">对象。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">在上面两个级别的事件，又可分别分为两种：</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">1．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">生命周期的改变</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">2．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">属性的改变</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">你可以为上面四种事件创建一个或多个监听类。一个单一的监听类可以监视多种事件。</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">创建一个事件类可以从</span>
								<span lang="EN-US">javax.servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">包或</span>
								<span lang="EN-US">javax.servlet.http</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">包中实现合适的接口。下表中列出了四种事件相关的接口。</span>
						</font>
				</font>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 142pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
														<font face="Courier New">事件种类 </font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
														<font face="Courier New">事件描述 </font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
														<font face="Courier New">接口 </font>
												</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 1">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 142pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span lang="EN-US">Context</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">生命周期的改变</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span lang="EN-US">context</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的建立和即将关闭</span>
														<span lang="EN-US">context</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font face="Courier New">Javax.servlet.ServletContextListener </font>
												</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 2">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 142pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span lang="EN-US">Context</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">属性值的改变</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">添加，删除，修改</span>
														<span lang="EN-US">context</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的属性值</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font face="Courier New">Javax..servlet.ServletContextAttributeListener </font>
												</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 3">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 142pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span lang="EN-US">Session</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">生命周期的改变</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span lang="EN-US">Session</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的创建，注销，超时</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font face="Courier New">Javax.servlet.http.HttpSessionListener </font>
												</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 142pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span lang="EN-US">Session</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">属性值的改变</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font face="Courier New">
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">添加，删除，修改</span>
														<span lang="EN-US">session</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的属性值</span>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font face="Courier New">Javax.servlet.htpp.HttpSessionAttributeListener </font>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
						</font>
				</span>
		</p>
		<p>
				<font face="Courier New">
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">典型的事件监听过程</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">考虑一个</span>
								<span lang="EN-US">web</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">应用是由一组访问数据库的</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">组成的。一个典型的事件监听机制是这样的，创建一个</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">生命周期的事件来管理数据库连接，这个监听器可以有如下的功能：</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">1．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">这个监听器监视着应用程序的启动</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">2．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<font size="3">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">这个应用程序写入日志到数据库中并且把连接对象存储在</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">中</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">3．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span lang="EN-US">
								<font size="3">Servelt</font>
						</span>
						<font size="3">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">使用连接对象来执行</span>
								<span lang="EN-US">SQL</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">4．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">监听器监听应用程序的即将关闭</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 39.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="mso-fareast-font-family: ">
								<span style="mso-list: Ignore">
										<font size="3">5．</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">  </span>
								</span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
								<font size="3">在关闭应用程序之前，先关闭连接对象</font>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
						</font>
				</span>
		</p>
		<p>
				<font face="Courier New">
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">事件监听的声明和调用</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
						</font>
				</span>
		</p>
		<p>
				<font face="Courier New">
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件监听的声明在应用程序的</span>
								<span lang="EN-US">web.xml</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">里，用</span>
								<span lang="EN-US">&lt;listener&gt;</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">元素，该元素是</span>
								<span lang="EN-US">&lt;web-app&gt;</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的子元素。每个监听器都对应一个</span>
								<span lang="EN-US">&lt;listener&gt; </span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">，有一个</span>
								<span lang="EN-US">&lt;listener-class&gt;</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">子元素用来指定对应的类名。在每种事件中，你需要指定你想调用的顺序。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">在应用程序启动之后，并且在第一次请求之前，</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">容器会创建并注册每个监听类的实例。每种事件，监听器是按照他们声明的顺序来注册的。然后，当应用程序开始运行，每种事件监听器安装他们的顺序调用。在最后一次请求之前，所有的监听器都保持活动状态。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">一旦应用程序关闭，</span>
								<span lang="EN-US">session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件首先发生，以他们声明的顺序相反。然后</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件发生也是以声明的顺序相反。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">下面是一个例子：</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
								<font size="3">&lt;web-app&gt;</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">   </span>&lt;display-name&gt;MyListeningApplication&lt;/display-name&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">   </span>&lt;listener&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">      </span>&lt;listener-class&gt;com.acme.MyConnectionManager&lt;/listenerclass&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">   </span>&lt;/listener&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">   </span>&lt;listener&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">      </span>&lt;listener-class&gt;com.acme.MyLoggingModule&lt;/listener-class&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">   </span>&lt;/listener&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">   </span>&lt;servlet&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">      </span>&lt;display-name&gt;RegistrationServlet&lt;/display-name&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">      </span>... </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-spacerun: yes">   </span>&lt;/servlet&gt; </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
								<font size="3">&lt;/web-app&gt;</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">假设</span>
								<span lang="EN-US">MyConnectionMnanager</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">和</span>
								<span lang="EN-US">MyLoggingModule</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">都是实现</span>
								<span lang="EN-US">ServletContextListener</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">接口，</span>
								<span lang="EN-US">MyLoggingModule</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">也是实现了</span>
								<span lang="EN-US">HttpSessionListener</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">接口。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">当应用程序运行，两个监听器都会监听</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">生命周期事件，</span>
								<span lang="EN-US">MyLoggingModule</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">监听器还会监听</span>
								<span lang="EN-US">session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">生命周期。在</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">生命周期中，</span>
								<span lang="EN-US">MyConnectionMananger</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">会首先开始监听，因为它声明在前面。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
						</font>
				</span>
		</p>
		<p>
				<font face="Courier New">
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">事件监听器的编码和发布指南</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">请注意事件监听器类的以下规则和指南：</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 42.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">
										<font size="3">l</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">         </span>
								</span>
						</span>
						<font size="3">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">在多线程的应用程序中，属性可能同时改变。这是不需要</span>
								<span lang="EN-US">Servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">容器来同步结果――在这种情况下监听类本身负责保持数据的完整性。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 42.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">
										<font size="3">l</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">         </span>
								</span>
						</span>
						<font size="3">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">每个监听类都必须有一个</span>
								<span lang="EN-US">public</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的零参数的构造函数。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo5; tab-stops: list 42.0pt">
				<font face="Courier New">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">
										<font size="3">l</font>
										<span style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal">         </span>
								</span>
						</span>
						<font size="3">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">每个监听类文件必须打包到</span>
								<span lang="EN-US">WAR</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">文件，也可以是在</span>
								<span lang="EN-US">/WEB-INF/classes</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">或是包含在</span>
								<span lang="EN-US">/WEB-INF/lib</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">下的</span>
								<span lang="EN-US">JAR</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">文件中。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
						</font>
				</span>
		</p>
		<p>
				<font face="Courier New">
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">注意：在分布式的环境中，事件监听类的作用域是包含这个部署描述文件的虚拟机。不需要分布式的</span>
								<span lang="EN-US">Web</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">容器来传递</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件或是</span>
								<span lang="EN-US">session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件到其他的虚拟机。这个在</span>
								<span lang="EN-US">Sun Microsystem</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的</span>
								<span lang="EN-US">Java Servlet </span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">规范，</span>
								<span lang="EN-US">2.3</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">版本。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Courier New">
						</font>
				</span>
		</p>
		<p>
				<font face="Courier New">
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">
						<font face="Courier New">
								<font size="3">事件监听器的方法和相关的类</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">这部分列出了事件监听器的方法，当</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件或是</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的</span>
								<span lang="EN-US">session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">事件发生时，容器将会调用他们。这些方法的输入的事件对象的类型不一样，因此一下讨论事件类和他们的方法。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="3">
						<font face="Courier New">
								<span lang="EN-US">ServletContextListener</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">方法，</span>
								<span lang="EN-US">ServletContextEvent</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">类</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="3">
						<font face="Courier New">
								<span lang="EN-US">ServletContextListener</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">接口规范以下的方法：</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-tab-count: 1">       </span>void contextInitialized(ServletContextEvent sce) </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="3">
						<font face="Courier New">
								<span lang="EN-US">
										<span style="mso-tab-count: 2">              </span>servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">容器调用这个方法来通知监听器，</span>
								<span lang="EN-US">servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">的</span>
								<span lang="EN-US">context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">已经建立并且应用程序准备处理请求。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">
						<font size="3">
								<font face="Courier New">
										<span style="mso-tab-count: 1">       </span>void contextDestory(ServletContextEvent sce) </font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="3">
						<font face="Courier New">
								<span lang="EN-US">
										<span style="mso-tab-count: 2">              </span>servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">容器调用这个方法来通知监听器应用程序即将关闭。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="3">
						<font face="Courier New">
								<span lang="EN-US">Servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">容器创建一个</span>
								<span lang="EN-US">java.servlet.ServletContextEvent</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">对象作为调用</span>
								<span lang="EN-US">ServletContextListener</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">方法的输入。</span>
								<span lang="EN-US">ServletContextEvent</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">类包含以下方法，你的监听器可以调用</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">
						<font face="Courier New">
								<font size="3">ServletContext getServletContext()</font>
						</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="3">
						<font face="Courier New">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">用这个方法返回已创建的或是将要销毁的</span>
								<span lang="EN-US">servlet context</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ">对象，从中你可以得到你想要的信息</span>
						</font>
				</font>
		</p>
<img src ="http://www.blogjava.net/jeonok/aggbug/106810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2007-03-28 01:14 <a href="http://www.blogjava.net/jeonok/archive/2007/03/28/106810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>事务</title><link>http://www.blogjava.net/jeonok/archive/2006/11/10/80497.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Fri, 10 Nov 2006 14:24:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/10/80497.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/80497.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/10/80497.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/80497.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/80497.html</trackback:ping><description><![CDATA[
		<h2 align="justify">事务：是单个的原子的操作的集合，由独立的操作组成，又一种一致的状态转化为另一种一致的状态。</h2>
		<ul>
				<li style="MARGIN-RIGHT: 0px">
						<h2>事物的四个属性ACID：</h2>
				</li>
				<ul>
						<li style="MARGIN-RIGHT: 0px">
								<h2>  原子性：事务是一个不可分割的工作单元。要么全部执行、要么全部不执行。</h2>
						</li>
						<li style="MARGIN-RIGHT: 0px">
								<h2>一致性：总体上不能破坏业务规则，使一种一致状态转化为另一种一致状态。</h2>
						</li>
						<li style="MARGIN-RIGHT: 0px">
								<h2>隔离性：每个事务必须独立于其他事务执行，并且事务中的操作同时发生。</h2>
						</li>
						<li style="MARGIN-RIGHT: 0px">
								<h2>持久性：确保事务提交后，其输入是永久性的。</h2>
						</li>
				</ul>
		</ul>
		<h2 style="MARGIN-RIGHT: 0px">事务的开始：标准SQL-99：START TRANSACTION</h2>
		<h2 style="MARGIN-RIGHT: 0px">                         MYSQL：用START TRANSACTION和BEGIN来启动事物</h2>
		<h2 style="MARGIN-RIGHT: 0px">                         ORACLE：不支持START TRANSACTION ，它是自动启动的</h2>
		<h2 style="MARGIN-RIGHT: 0px">在提交事务（COMMIT）之前可以用ROLLBACK回滚事务。</h2>
		<h2 style="MARGIN-RIGHT: 0px">ORACLE事务保存点的设置(MYSQL不支持)：SAVEPOINT 保存点名称；</h2>
		<h2 style="MARGIN-RIGHT: 0px">ORACLE中设置事务提交模式的方法：SET AUTOCOMMIT ON/OFF</h2>
		<h2 style="MARGIN-RIGHT: 0px">MYSQL中的方法是：SET AUTOCOMMIT=0/1   </h2>
		<h2 style="MARGIN-RIGHT: 0px"> </h2>
		<h2 style="MARGIN-RIGHT: 0px">高级事务：</h2>
		<ul>
				<li>
						<h2 style="MARGIN-RIGHT: 0px">    ORACLE中支持的事务隔离级别有：1）只读事务  2）提交读（默认）3）可串行读</h2>
				</li>
		</ul>
		<h2 style="MARGIN-RIGHT: 0px">设置语法为（ORACLE）：</h2>
		<h2 style="MARGIN-RIGHT: 0px">             SET TRANSACTION</h2>
		<h2 style="MARGIN-RIGHT: 0px">               {{READ ONLY|READ WRITE}</h2>
		<h2 style="MARGIN-RIGHT: 0px">                  |ISOLATION LEVEL</h2>
		<h2 style="MARGIN-RIGHT: 0px">                     { READ COMMIT|SERIALIZABLE}}；    </h2>
<img src ="http://www.blogjava.net/jeonok/aggbug/80497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-10 22:24 <a href="http://www.blogjava.net/jeonok/archive/2006/11/10/80497.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle中最常见的异常</title><link>http://www.blogjava.net/jeonok/archive/2006/11/10/80496.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Fri, 10 Nov 2006 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/10/80496.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/80496.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/10/80496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/80496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/80496.html</trackback:ping><description><![CDATA[
		<ol>
				<li>
						<h2>CURSOR-ALREADY-OPEN：如果打开一个已经打开的游标时的异常。</h2>
				</li>
				<li>
						<h2>DUP-VAL-ON-INDEX：如果试图添加行带有重复主键值或者唯一索引值时产生的异常。</h2>
				</li>
				<li>
						<h2> INVALID-NUMBER：将不包含数字的字符串转换成数字时产生。</h2>
				</li>
				<li>
						<h2>NO-DATA-FOUND： 使用select into语句将一个值存入一个变量，但是select语句没有返回行十产生</h2>
				</li>
				<li>
						<h2>TOO-MANY-ROWS：使用select into语句给变量负值，但返回了多个行。</h2>
				</li>
				<li>
						<h2>OTHERS：其他异常。</h2>
				</li>
		</ol>
<img src ="http://www.blogjava.net/jeonok/aggbug/80496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-10 21:50 <a href="http://www.blogjava.net/jeonok/archive/2006/11/10/80496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>存储过程</title><link>http://www.blogjava.net/jeonok/archive/2006/11/09/80278.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Thu, 09 Nov 2006 14:46:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/09/80278.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/80278.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/09/80278.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/80278.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/80278.html</trackback:ping><description><![CDATA[
		<ul>
				<li>
						<h2>我的理解，存储过程就相当于JAVA中的方法；它可以</h2>
				</li>
				<ul>
						<li>
								<h2>输入参数和输出参数的形式将多个值返回至调用过程或批处理。</h2>
						</li>
						<li>
								<h2>包含数据库执行操作（包括调用其他过程）的编程语句。</h2>
						</li>
						<li>
								<h2>向调用过程或批处理返回状态值，以表明成功或失败（以及失败原因）。</h2>
						</li>
				</ul>
				<li>
						<h2>储存过程的优点：</h2>
				</li>
				<ul>
						<li>
								<h2>允许模块化程序设计。只需要创建一次并储存在数据库中，以后可以在程序中调用该程序任意次。</h2>
						</li>
						<li>
								<h2>允许更快执行。大量的SQL代码需要执行的时候，存储过程要比SQL代码的执行过程快。</h2>
						</li>
						<li>
								<h2>减少网络流量：多行SQL代码可以由一行执行存储过程的单独语句实现，而不需发送多条SQL代码。</h2>
						</li>
						<li>
								<h2>可以作为安全机制使用。对没有权限直接使用存储过程中代码的用户，给予他们使用储存过程的权限。</h2>
						</li>
				</ul>
				<li>
						<h2>创建储存过程： create or replace procedure 储存名 AS begin 储存过程主体 end; /  ----   oracle(支持IS代替AS)</h2>
				</li>
				<li>
						<h2>使用存储过程：call 存储过程名（program）;</h2>
				</li>
				<li>
						<h2>删除和更改存储过程名：drop procedure 存储过程名； alter procedure procName;</h2>
				</li>
				<li>
						<h2>定义变量：declare 变量名 变量类型（长度）；</h2>
				</li>
				<li>
						<h2>游标是代表一个结果集的一种方式，他允许循环遍历一个行集合，每次一行。</h2>
				</li>
				<li>
						<h2>声明游标：declare 游标名 cursor is sql查询；</h2>
				</li>
		</ul>
<img src ="http://www.blogjava.net/jeonok/aggbug/80278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-09 22:46 <a href="http://www.blogjava.net/jeonok/archive/2006/11/09/80278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>视图小节</title><link>http://www.blogjava.net/jeonok/archive/2006/11/09/80264.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Thu, 09 Nov 2006 13:40:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/09/80264.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/80264.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/09/80264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/80264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/80264.html</trackback:ping><description><![CDATA[
		<ul>
				<li>
						<h2>
								<font size="6">视图</font>,是用户查看数据表中数据的一种方式,用户可以通过它浏览数据表中部分或者全部数据.视图就像是一个表一样,但是实际上是引用的其基表中的的数据。同时如果想视图的基表中添加列，试图中是不会出现新的列的，除非删除或重新创建视图。此外视图不能加参数。</h2>
				</li>
				<li>
						<h2>视图的优点：</h2>
				</li>
				<ul>
						<li>
								<h2>将用户的注意力集中到特定的数据上，保护数据的安全。</h2>
						</li>
						<li>
								<h2>简化了数据的查询和处理操作。</h2>
						</li>
						<li>
								<h2>有利于简化数据交换的操作。</h2>
						</li>
						<li>
								<h2>有利于简化对用户权限的管理</h2>
						</li>
				</ul>
				<li>
						<h2>创建视图：create view 视图名 AS  query(任何SQL查询)；</h2>
				</li>
				<li>
						<h2>更改视图：alter view 视图名 as newquery;   ---(mysql中用)    create or replace view 视图名 as newquery;  ---(oracle中用)</h2>
				</li>
				<li>
						<h2>查看视图：show create view 视图名；  ---（mysql）</h2>
				</li>
				<li>
						<h2>删除视图： drop view 视图名；</h2>
				</li>
		</ul>
<img src ="http://www.blogjava.net/jeonok/aggbug/80264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-09 21:40 <a href="http://www.blogjava.net/jeonok/archive/2006/11/09/80264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的表连接小结</title><link>http://www.blogjava.net/jeonok/archive/2006/11/07/79724.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Tue, 07 Nov 2006 15:09:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/07/79724.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/79724.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/07/79724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/79724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/79724.html</trackback:ping><description><![CDATA[
		<ol dir="ltr">
				<li>
						<h2 style="MARGIN-RIGHT: 0px">使用两表相等连接(标准形式): select table1.column1, table1.column2,table2.column3 from table1 join table2 on  table1.column1= table2.column2;(使用别名在列后(如table1.column1后)加   as 别名)</h2>
				</li>
				<li>
						<h2 style="MARGIN-RIGHT: 0px">事业多表相等连接:select * from table1 join table2 on  table1.column1= table2.column2 join table3 on table1.column3= table3.column4;\</h2>
				</li>
				<li>
						<h2 style="MARGIN-RIGHT: 0px">内连接: 内连接是使用比较运算符根据每个表共有的列的值匹配两个表中的行.: select table1.column1,table2.column2 from table1 inner join table2 on table1.column1 = table2.column;</h2>
				</li>
				<li>
						<h2 style="MARGIN-RIGHT: 0px">外连接:是考虑到源表有些不匹配的情况分为三种:左外连接(以左表为准,右表中没有匹配的指就显示空),右外连接(以右表为准,左表中没有匹配的指就显示空),全外连接(左,右外连接都要执行) 即关键语法为left outer join,right outer join,full outer join</h2>
				</li>
		</ol>
<img src ="http://www.blogjava.net/jeonok/aggbug/79724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-07 23:09 <a href="http://www.blogjava.net/jeonok/archive/2006/11/07/79724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>/* 实施数据完整性的方法*/</title><link>http://www.blogjava.net/jeonok/archive/2006/11/02/78797.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Thu, 02 Nov 2006 15:03:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/02/78797.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/78797.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/02/78797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/78797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/78797.html</trackback:ping><description><![CDATA[
		<p>
				<font size="5">      1）实体完整性：实体的存在是独立于数据库的，一个表如果与它所代表的实体完全一致，我们就说该表具有试题完整性。实体完整性强制表的表示符列或主键的完整性（通过索引、唯一约束、主键或标示列（自动增长的列）属性）。<br />      2）域完整性：指给定列的输入有效性。强制域有效性的方法有：限制类型（通过数据类型）、格式（通过检查约束和规则）或可能值的范围（通过外键约束、检查约束、默认值定义、非空约束和规则）。<br />      3）引用完整性：保持表之间已定义的关系，确保键值在所有表中的一致性。<br />      4）用户自定义完整性：可以定义不属于其他任何完整性的特定业务规则。<br /></font>
		</p>
<img src ="http://www.blogjava.net/jeonok/aggbug/78797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-02 23:03 <a href="http://www.blogjava.net/jeonok/archive/2006/11/02/78797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关系型数据库小结</title><link>http://www.blogjava.net/jeonok/archive/2006/11/01/78562.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Wed, 01 Nov 2006 14:36:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/01/78562.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/78562.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/01/78562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/78562.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/78562.html</trackback:ping><description><![CDATA[
		<p>
				<font size="4">      今天学习了关系型数据库设计，昨天的模糊开始有点点头绪了。因为有点实际的东西做了。<br />      重要概念：　规范化数据，指数据被组织成一种结构，既可以保持数据的完整性，同时最小化数据的冗余。<br />一<br />      最基本的规则——范式<br />      第一范式：１、一个行的每一列必须是原子性的。即只能有一个值。<br />                        ２、表中每一行必须包含相同数量的列。<br />　　　　      　３、一个表中的所有行必须是不同的。<br /><br />      第二范式：１、必须遵循第一范式。<br />                         ２、非主键列必须依赖于主键列。<br />　   第三范式：１、必须遵循第二范式。<br />                         ２、非主键列必须依赖于主键列，且必须彼此相互独立。<br />二<br />      关系：一对一、一对多、多对多<br />      外键：表中的一到多个列与另一个表中的一到多个列相匹配。<br />      实体：一个代表一系列相关数据的对象。<br />三<br />      创建数据模型：<br />      识别实体，规范化数据，识别关系，改进数据模型。</font>
		</p>
<img src ="http://www.blogjava.net/jeonok/aggbug/78562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-01 22:36 <a href="http://www.blogjava.net/jeonok/archive/2006/11/01/78562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对数据库的初步认识</title><link>http://www.blogjava.net/jeonok/archive/2006/11/01/78515.html</link><dc:creator>团队精神</dc:creator><author>团队精神</author><pubDate>Wed, 01 Nov 2006 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/jeonok/archive/2006/11/01/78515.html</guid><wfw:comment>http://www.blogjava.net/jeonok/comments/78515.html</wfw:comment><comments>http://www.blogjava.net/jeonok/archive/2006/11/01/78515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jeonok/comments/commentRss/78515.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jeonok/services/trackbacks/78515.html</trackback:ping><description><![CDATA[ 数据库,就是以某种方式相关的数据的集合。主要的模型有：层次模型，网状模型，关系模型（用最多的），对象模型。第一种模型的缺点就是更改复杂，费时，便利麻烦且易丢失数据。第二种是层次模型的增强，但是仍然有很多层次模型的缺点，一个更改可能导致更复杂的更改。关系模型是独立于应用程序的，使更改数据库设计，而不会影响应用程序成为可能，在表之间定义复杂的关系。<br />      ＳＱＬ是结构化查询语言（Ｓtructured Quer Language）的英文缩写，是一种用于管理关系型数据库并且与数据库中的数据进行通信的计算机语言。ＳＱＬ与ＲＤＢＭＳ协同工作来定义数据库的结构、储存数据、操作数据、获取数据、控制对数据的访问以及确保数据的完整性。ＳＱＬ是数据库语言的标准<br />      ＳＱＬ语句主要有三种：<br />      １、ＤＤＬ语句：用于创建、修改和删除数据库内的数据结构。<br />      ２、ＤＭＬ：　　主要用于储存在数据库中的数据本身的插入、更改、删除和查询（ＳＥＬＥＣＴ）。<br />      ３、ＤＣＬ：　　主要是控制对数据库的访问权限。<br /><br />      ＯＲＡＣＬＥ体系结构：<br />　　主要分为两层：一是ＯＲＡＣＬＥ实例（ＯＲＡＣＬＥ　ＩＮＳＴＡＮＣＥ）　，二是ＯＲＡＣＬＥ９Ｉ的数据文件。<br />        其中ＯＲＡＣＬＥ　ＩＮＳＴＡＮＣＥ又包括系统全局区（ＳＧＡ）和后台处理程序<br />         ＳＧＡ又包裹以下几个重要的区域：<br />      １、块缓冲区高速缓存，用于存放读取自数据文件的数据块副本，或者用户曾经处理过的数据。对应于ＤＢＭＲ（数据写进程）。<br />      ２、重做日志缓冲区：对数据的修改被顺序的记录在该缓冲区，以便必要时候的恢复工作。主要对应于ＬＧＷＲ（日志写进程）。<br />      ３、共享池：　重要用于存放解析过的ＳＱＬ语句的结果，下次写入同样的ＳＱＬ语句时就直接调用该结果，节省了时间，是特地为数据字典提供的一块缓冲池。<img src ="http://www.blogjava.net/jeonok/aggbug/78515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jeonok/" target="_blank">团队精神</a> 2006-11-01 17:17 <a href="http://www.blogjava.net/jeonok/archive/2006/11/01/78515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>