﻿<?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-SmileFace-随笔分类-Java-Studying</title><link>http://www.blogjava.net/SmileFace/category/11074.html</link><description> 与java一起走过的日子</description><language>zh-cn</language><lastBuildDate>Fri, 21 Aug 2009 07:39:20 GMT</lastBuildDate><pubDate>Fri, 21 Aug 2009 07:39:20 GMT</pubDate><ttl>60</ttl><item><title>setting Tomcat for I18N</title><link>http://www.blogjava.net/SmileFace/archive/2009/08/20/291939.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Thu, 20 Aug 2009 05:45:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2009/08/20/291939.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/291939.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2009/08/20/291939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/291939.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/291939.html</trackback:ping><description><![CDATA[In order to supports internationalization (I18N), on Tomcat some additional configuration is necessary. You must<br />
ensure that Tomcat's URI encoding is set to UTF-8. You can do this by editing the Tomcat configuration file<br />
conf/server.xml and adding URIEncoding=&#8221;UTF-8&#8221; to each connector element, as shown below:<br />
<br />
&lt;Connector port="8080"<br />
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />
enableLookups="false" redirectPort="8443" debug="0"<br />
acceptCount="100" connectionTimeout="20000"<br />
disableUploadTimeout="true"<br />
URIEncoding="UTF-8" /&gt;<br />
<br />
And make sure you do this for every connectort.
<img src ="http://www.blogjava.net/SmileFace/aggbug/291939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2009-08-20 13:45 <a href="http://www.blogjava.net/SmileFace/archive/2009/08/20/291939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Notes for "Agile java development"</title><link>http://www.blogjava.net/SmileFace/archive/2009/08/20/291894.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 19 Aug 2009 17:43:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2009/08/20/291894.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/291894.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2009/08/20/291894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/291894.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/291894.html</trackback:ping><description><![CDATA[1.Agile model driven development(AMDD): focus on model<br />
<br />
2.Extreme programmning: focus on full development life cycle.<br />
<br />
3.Jconsole: c:\program files\java\jdk1.6.0_14\bin\jconsole, which could dectect the memory issue, class loading, garbage collection...<br />
<img src ="http://www.blogjava.net/SmileFace/aggbug/291894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2009-08-20 01:43 <a href="http://www.blogjava.net/SmileFace/archive/2009/08/20/291894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Happy reading &lt;Head first Networking&gt;</title><link>http://www.blogjava.net/SmileFace/archive/2009/08/19/291792.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 19 Aug 2009 06:08:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2009/08/19/291792.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/291792.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2009/08/19/291792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/291792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/291792.html</trackback:ping><description><![CDATA[一看书名就知道又是一本通俗易懂的书。果不其然，而且比想象的更有意思（我想是简单的缘故吧）。<br />
<br />
书里只是很简单的提及了一些网络的基本概念和运作原理，似乎各个方面都有覆盖，但是因为描述的很浅显，所以建议给：<br />
1 想大致了解DNS，ARP，router等网络知识的人；<br />
2 有闲但是对于网络感兴趣的人；<br />
<br />
其实不错，无聊的时候翻翻，解闷！<br />
<br />
<img src ="http://www.blogjava.net/SmileFace/aggbug/291792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2009-08-19 14:08 <a href="http://www.blogjava.net/SmileFace/archive/2009/08/19/291792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Notes for centos</title><link>http://www.blogjava.net/SmileFace/archive/2009/08/13/290920.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 12 Aug 2009 23:31:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2009/08/13/290920.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/290920.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2009/08/13/290920.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/290920.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/290920.html</trackback:ping><description><![CDATA[centos<br />
<br />
0. /sbin/ifconfig<br />
<br />
1. mysql : <br />
<br />
&nbsp;&nbsp; *remove: yum -y remove mysql mysql-server<br />
&nbsp;&nbsp; *insatll: yum -y install mysql mysql-server<br />
&nbsp;<br />
&nbsp;&nbsp; *check: chkconfig --list | grep mysql<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; *Set to Start on Boot:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chkconfig mysqld on<br />
<br />
&nbsp;&nbsp; *start service:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; service --status-all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; service mysqld start<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check:&nbsp; mysqladmin version&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;<br />
&nbsp;&nbsp; *setup root password: <br />
&nbsp;&nbsp;&nbsp; mysqladmin -u root password ***(this is new password)<br />
<br />
&nbsp;&nbsp;&nbsp; *run:<br />
&nbsp;&nbsp;&nbsp; mysql -u root -p<br />
<br />
&nbsp;&nbsp;&nbsp; *exit:<br />
&nbsp;&nbsp;&nbsp; \q<br />
<br />
&nbsp;&nbsp;&nbsp; *commands:ep t<br />
&nbsp;&nbsp;&nbsp; show databases;<br />
<br />
&nbsp;&nbsp;&nbsp; drop database ***;<br />
<br />
2. Tomcat:<br />
<br />
&nbsp;&nbsp;&nbsp; *install:<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; yum -y install tomcat5 tomcat5-webapps tomcat5-admin-webapps<br />
<br />
&nbsp;&nbsp;&nbsp; *You can find these packages using<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; yum list available tomcat5*<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; or<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; yum search tomcat5<br />
<br />
&nbsp;&nbsp;&nbsp; *Start:<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; service tomcat5 start<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; view:&nbsp;&nbsp; http://localhost:8080/. <br />
<br />
&nbsp;&nbsp;&nbsp; *location:r<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;/usr/share/tomcat5 .<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *setting:<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"$CATALINA_HOME". <br />
<br />
3. JDK:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Originally, centOS only install jre. so we need install jdk by ourselves.<br />
&nbsp;&nbsp;&nbsp;&nbsp; *To install from the command line:
<blockquote class="code"><strong>$</strong>yum install
java-1.6.0-openjdk<tt>-devel</tt> <br />
<br />
You can also install all
the OpenJDK&nbsp;6 packages, including the API documentation, by
using the wildcard <tt>java-1.6.0-openjdk*</tt>.<br />
<br />
</blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *location: &nbsp; &nbsp; &nbsp; &nbsp; /usr/lib/jvm...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *check:&nbsp; java -version<br />
<blockquote class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
<br />
</blockquote><br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/SmileFace/aggbug/290920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2009-08-13 07:31 <a href="http://www.blogjava.net/SmileFace/archive/2009/08/13/290920.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读书：《Agile Java Development with Spring，Hibernate，and Eclipse》</title><link>http://www.blogjava.net/SmileFace/archive/2009/07/25/288296.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Fri, 24 Jul 2009 23:38:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2009/07/25/288296.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/288296.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2009/07/25/288296.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/288296.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/288296.html</trackback:ping><description><![CDATA[<p>最近赋闲，借来这本书看。本来希望很大，期冀可以学到些东西。结果，事与愿违。<br />
<br />
总的感觉：这书一般，不推荐给大家，尤其是对于有项目开发经验的人。在这个200多页的书里，作者罗列了项目开发方法，开发工具，开发环境等等。因为涉及内容太多，所以每个知识点都是一带而过，不过讲讲优点，缺点。所以感觉四不像。<br />
<br />
如果你是个没有项目开发经验的人，想全面地了解目前web开发的基本过程，项目可能涉及的技术方面，可以看看。<br />
<br />
<br />
下面是自己的一些读书笔记，你们可以掠过：</p>
<p>1.Agile model driven development(AMDD): focus on model</p>
<p>2.Extreme programmning: focus on full development life cycle.</p>
<p>3.Jconsole: c:\program files\java\jdk1.6.0_14\bin\jconsole, which could dectect the memory issue, class loading, </p>
<p>garbage collection...<br />
&nbsp; </p>
<p>Java profilers: analyze the heap for memory usage and leaks, CPU utilization, trace object and methods,determine performance bottlenecks...</p>
<p>4.Ant new feature: </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;exec command="date"/&gt;</p>
<p>&nbsp;&nbsp; Get:&nbsp; fetch a file using HTTP GET.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;get src="http://visualpatterns.com/comics/funny.gif" dest="funny.gif"&nbsp; verbose="true"/&gt;</p>
<p>&nbsp;&nbsp; Sleep: pause processing.<br />
&nbsp;<br />
&nbsp;&lt;sleep seconds="2"/&gt;<br />
&nbsp; <br />
&nbsp;&nbsp; FTP: use FTP directly. The example transfe the files to ftp server automatically using windows scheduled tasks<br />
&nbsp;&lt;ftp server="mirror.kernel.org" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; action="get"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remotedir=...&gt; &lt;/ftp&gt;</p>
<p>&nbsp;&nbsp; MAIL: ...</p>
<p>5. JMX: my thought: I can use it to track how many user signed into, and so on.</p>
<p>6.unchecked exception: do not need to be caught by the code. Checked exception require the code to either cathch the exception or throw it up the call chain using throws. "If&nbsp; a client can reasonble to recover from an exception, make it a checked exception. If client cannot do anything to recover from the excepetion, make it unchecked"<br />
</p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/288296.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2009-07-25 07:38 <a href="http://www.blogjava.net/SmileFace/archive/2009/07/25/288296.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PreparedStatement接口</title><link>http://www.blogjava.net/SmileFace/archive/2006/12/23/89614.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Fri, 22 Dec 2006 17:47:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/12/23/89614.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/89614.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/12/23/89614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/89614.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/89614.html</trackback:ping><description><![CDATA[
		<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td align="left" width="100%">
										<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td style="PADDING-LEFT: 5px; LINE-HEIGHT: 25px" align="left" colspan="2">
																		<h3>
																				<font color="#000000">出处：hihi的网站</font>
																		</h3>
																		<h3>
																				<a href="http://home.fego.cn/loading.html?aspxerrorpath=/members/hihi/m_Article/Detail.aspx">
																						<font color="#000000">http://home.fego.cn/loading.html?aspxerrorpath=/members/hihi/m_Article/Detail.aspx</font>
																				</a>
																				<font color="#000000">
																				</font>
																		</h3>
																		<p>
																				<br />
																				<font color="#000000">
																						<font size="4">Java数据库接口JDBC入门基础讲座-第六讲 PreparedStatement接口</font>
																				</font>
																		</p>
																</td>
														</tr>
														<tr>
																<td style="PADDING-LEFT: 5px; LINE-HEIGHT: 25px" align="left">
																		<h4>
																				<font color="#000000">
																				</font> </h4>
																</td>
																<td align="right"> </td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
						<div>
						</div>
						<tr height="100%">
								<td colspan="2">
										<span class="f14">　　<strong>概述</strong><br /><br />　　<font size="2">该 PreparedStatement 接口继承 Statement，并与之在两方面有所不同：<br /><br />　　PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的，该语句为每个 IN 参数保留一个问号（“？”）作为占位符。每个问号的值必须在该语句执行之前，通过适当的setXXX 方法来提供。<br /><br /><br />　　由于 PreparedStatement 对象已预编译过，所以其执行速度要快于 Statement 对象。因此，多次执行的 SQL 语句经常创建为 PreparedStatement 对象，以提高效率。<br /><br />　　作为 Statement 的子类，PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法，用于设置发送给数据库以取代 IN 参数占位符的值。同时，三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。这些方法的 Statement 形式（接受 SQL 语句参数的形式）不应该用于 PreparedStatement 对象。<br /><br />　　1、创建 PreparedStatement 对象<br /><br />　　以下的代码段（其中 con 是 Connection 对象）创建包含带两个 IN 参数占位符的 SQL 语句的 PreparedStatement 对象：<br /><br />PreparedStatement pstmt = con.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?");<br /><br />　　pstmt 对象包含语句 "UPDATE table4 SET m = ? WHERE x = ?"，它已发送给DBMS，并为执行作好了准备。<br /><br />　　2、传递 IN 参数<br /><br />　　在执行 PreparedStatement 对象之前，必须设置每个 ? 参数的值。这可通过调用 setXXX 方法来完成，其中 XXX 是与该参数相应的类型。例如，如果参数具有Java 类型 long，则使用的方法就是 setLong。setXXX 方法的第一个参数是要设置的参数的序数位置，第二个参数是设置给该参数的值。例如，以下代码将第一个参数设为 123456789，第二个参数设为 100000000：<br /><br /></font><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#e6e4dd" border="1"><tbody><tr><td><font size="2">pstmt.setLong(1, 123456789);<br />pstmt.setLong(2, 100000000);</font></td></tr></tbody></table><br /><font size="2">　　一旦设置了给定语句的参数值，就可用它多次执行该语句，直到调用clearParameters 方法清除它为止。在连接的缺省模式下（启用自动提交），当语句完成时将自动提交或还原该语句。<br /><br />　　如果基本数据库和驱动程序在语句提交之后仍保持这些语句的打开状态，则同一个 PreparedStatement 可执行多次。如果这一点不成立，那么试图通过使用PreparedStatement 对象代替 Statement 对象来提高性能是没有意义的。<br /><br />　　利用 pstmt（前面创建的 PreparedStatement 对象），以下代码例示了如何设置两个参数占位符的值并执行 pstmt 10 次。如上所述，为做到这一点，数据库不能关闭 pstmt。在该示例中，第一个参数被设置为 "Hi"并保持为常数。在 for 循环中，每次都将第二个参数设置为不同的值：从 0 开始，到 9 结束。<br /><br /></font><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#e6e4dd" border="1"><tbody><tr><td><font size="2">pstmt.setString(1, "Hi");<br />for (int i = 0; i &lt; 10; i++) {<br />　pstmt.setInt(2, i);<br />　int rowCount = pstmt.executeUpdate();<br />}</font></td></tr></tbody></table><br /><font size="2">　　3、IN 参数中数据类型的一致性<br /><br />　　setXXX 方法中的 XXX 是 Java 类型。它是一种隐含的 JDBC 类型（一般 SQL 类型），因为驱动程序将把 Java 类型映射为相应的 JDBC 类型（遵循该 JDBCGuide中§8.6.2 “映射 Java 和 JDBC 类型”表中所指定的映射），并将该 JDBC 类型发送给数据库。例如，以下代码段将 PreparedStatement 对象 pstmt 的第二个参数设置为 44，Java 类型为 short：<br /><br /></font><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#e6e4dd" border="1"><tbody><tr><td><font size="2">pstmt.setShort(2, 44);</font></td></tr></tbody></table><br /><font size="2">　　驱动程序将 44 作为 JDBC SMALLINT 发送给数据库，它是 Java short 类型的标准映射。<br /><br />　　程序员的责任是确保将每个 IN 参数的 Java 类型映射为与数据库所需的 JDBC 数据类型兼容的 JDBC 类型。不妨考虑数据库需要 JDBC SMALLINT 的情况。如果使用方法 setByte ，则驱动程序将 JDBC TINYINT 发送给数据库。这是可行的，因为许多数据库可从一种相关的类型转换为另一种类型，并且通常 TINYINT 可用于SMALLINT 适用的任何地方<br /></font></span>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/SmileFace/aggbug/89614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-12-23 01:47 <a href="http://www.blogjava.net/SmileFace/archive/2006/12/23/89614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>properties文件再续</title><link>http://www.blogjava.net/SmileFace/archive/2006/12/22/89391.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Thu, 21 Dec 2006 21:11:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/12/22/89391.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/89391.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/12/22/89391.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/89391.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/89391.html</trackback:ping><description><![CDATA[使用J2SEAPI读取Properties文件的六种方法：<br /><br />　　1。使用java.util.Properties类的load()方法示例：<br />                InputStream in=new BufferedInputStream(newFileInputStream(name));<br />                Properties p=new Properties();<br />                p.load(in);<br /><br />　　2。使用java.util.ResourceBundle类的getBundle()方法示例：<br />                  ResourceBundle rb=ResourceBundle.getBundle(name,Locale.getDefault());<br /><br />　　3。使用java.util.PropertyResourceBundle类的构造函数示例：<br />                   InputStream in=newBufferedInputStream(newFileInputStream(name));<br />                  ResourceBundle rb=newPropertyResourceBundle(in);<br /><br />　　4。使用class变量的getResourceAsStream()方法示例：<br />                   InputStream in=JProperties.class.getResourceAsStream(name);<br />                   Properties p=newProperties();<br />                   p.load(in);<br /><br />　　5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法示例：          <br /><br />                   InputStream in=JProperties.class.getClassLoader().getResourceAsStream(name);<br />                   Properties p=new Properties();<br />                    p.load(in);<br /><br />　　6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法示例：InputStreamin=ClassLoader.getSystemResourceAsStream(name);Propertiesp=newProperties();p.load(in);<br /><br />　　补充<br /><br />　　Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法示例：<br /><br />                 InputStream in=context.getResourceAsStream(path);<br />                 Properties p=newProperties();<br />                 p.load(in);<img src ="http://www.blogjava.net/SmileFace/aggbug/89391.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-12-22 05:11 <a href="http://www.blogjava.net/SmileFace/archive/2006/12/22/89391.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于在java中定义常量</title><link>http://www.blogjava.net/SmileFace/archive/2006/12/21/89179.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 20 Dec 2006 20:06:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/12/21/89179.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/89179.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/12/21/89179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/89179.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/89179.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
				<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-CA" style="FONT-SIZE: 10pt; mso-ansi-language: EN-CA; mso-bidi-font-size: 12.0pt">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>首先：java没有叫 全局变量 的东西（有全局变量还叫OO吗？）；原因：Java将所有设计都基于对象的基础上。Java的全局变量只能对一个类内部而言。能够在类内的任何地方使用的变量就是全局变量，而只在某个特定的函数或者局部的程序块内使用的变量则是局部变量。<br /><br />所以：<font size="3">声明为static的变量实质上就是全局变量。当声明一个对象时，并不产生static变量的拷贝，而是该类所有的实例变量共用同一个static变量。</font><br /><br />使用：java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI(3.14...),可以写一个类Math,定义static变量PI,调用Math.PI就可以使用了,这样就达到我们使用全局变量的目的了。<br /><br /></o:p>
				</span>
		</p>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">1、将一个</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">package</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">中需要的常量集中到一个</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">XyzConstants</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">之类的</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">interface</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">里声明，</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br />
		</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">就像普通的</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">field</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">那样声明就行了。</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br />public interface SomeConstants {<br />   public <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:place w:st="on"><st1:placename w:st="on">int</st1:placename><st1:placetype w:st="on">PORT</st1:placetype></st1:place> = 80;<br />   public String IP = "166.111.16.1";<br />   public boolean test = true;<br />}</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">就可以。</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br />
		</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">用到常量的类</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">implements</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">这个接口</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">..</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">简单情况这样就行乐。</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br />
				<br />
		</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">2、更</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">formal</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的做法是写一个类维护所有的常量，负责从配置文件（例如properties文件或xml文件）读取所有的常量的值。</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br />
		</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">可以在一个</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">static {} </span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">块里从配置文件中初始化所有</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">static</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的变量。</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">这样有利于提高软件的可配置性。改些东东不用动代码，比较好。</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br />
		</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">最好要有</span>
		<span lang="EN-GB" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; LETTER-SPACING: 0.2pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-GB; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">config Tool</span>
		<span lang="ZH-CN" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; LETTER-SPACING: 0.2pt; mso-ansi-language: EN-GB; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">负责写配置文件。<br /><br />3.其他说明：<br /><font face="Verdana" size="1"><br />定义一个公开类,在里面加static 变量。<br />public class infos{<br />  private infos(){<br />  }<br />   public static int PORT = 80;<br />   public static String IP = "166.111.166.111";<br />   public static boolean test = true;<br />   public static finale String MYNAME="zzz"; //定义中用了finale,就是不能改变指的。<br />}<br />在别的class中调用这些变量就是: infos.PORT,infos.IP,infos.test,infos.MYNAME<br />多个class交互时可以通过改变这些变量的值来传递信息。比如 infos.test被别的class改成了false,可能表示某一件事已经失败或已经做过，其它class就可以提前知道这些信息。</font></span>
<img src ="http://www.blogjava.net/SmileFace/aggbug/89179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-12-21 04:06 <a href="http://www.blogjava.net/SmileFace/archive/2006/12/21/89179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDom基本概念和使用</title><link>http://www.blogjava.net/SmileFace/archive/2006/12/21/89178.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 20 Dec 2006 18:40:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/12/21/89178.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/89178.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/12/21/89178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/89178.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/89178.html</trackback:ping><description><![CDATA[出处：<a href="http://www.360doc.com/showWeb/0/0/162473.aspx">http://www.360doc.com/showWeb/0/0/162473.aspx</a><br /><br />一、前言<br />    JDOM是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果，2000年初，JDOM作为一个开放源代码项目正式开始研发。JDOM是一种解析XML的Java工具包。 
<p>    DOM适合于当今流行的各种语言，包括Java,JavaScripte,VB,VBScript，Perl,C,C++等。它了为HTML和XML文档提供了一个可应用于不同平台的编程接口。W3C DOM的最新信息可从http://www.w3.org/TR2001/WD-DOM-Lever-3-Core-20010913查阅。微软在http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmconxmldomuserguide.asp上也有DOM的详细技术信息。</p><p>   DOM的设计为了适用于不同的语言，它保留了不同语言中非常相似的API。但是它并不适合于Java编程者的习惯。而JDOM作为一种轻量级API被制定，它最核心的要求是以Java为中心，只适合于Java语言，它遵循DOM的接口主要规则，除去了DOM中为了兼容各语言而与Java习惯的不同。</p><p>二、使用JDOM的前提条件<br />   须要有SAX、DOM解析器的类文件，JDOM只是一种适合Java程序员来使用的Java XML解析器，目前流行的Java XML解析器还有：Apache Xerces Java、JAXP。<br />Xerces Java解析器是完全用Java编写的XML解析器，最新版本是2.5，它支持以下标准和API：<br />（1） XML1.0规范（第二版本）<br />（2） XML命名空间规范<br />（3） DOM2核心标准规范<br />（4） SAX2核心扩展<br />（5） JAXP1.2 ：是Sun提供的使用Java处理XML的接口API。<br />（6） XML Schema结构和数据类型标准</p><p>      还有最好的是它开放源代码，我们可以在http://xml.apache.org/dist/xerces-j/ 处去下载。下载文件Xerces-J-bin.2.5.0.zip。<br />解压下载文件，得到四个压缩包加到项目的路径中（其实不要全加，但不熟的情况下考虑这么做）。<br />JDOM的二进制版本下载：http://www.jdom.org/downloads/index.html<br />把解压后的jdom.jar文件加到项目的类路径中，另外便于调试，还要下载它的源代码。</p><p>三、使用JDOM解析XML<br />     好了，现在该是正题了。下面通过一个简单的例子说明一下怎么用JDOM这一适合Java程序员习惯的工具包来解析XML文档。<br />为了简单，我用了如下XML作为要解析的XML文件：<br />&lt;?xml version="1.0" encoding="gb2312"?&gt;<br />&lt;books&gt;<br />   &lt;book email="zhoujunhui"&gt;<br />     &lt;name&gt;rjzjh&lt;/name&gt;<br />     &lt;price&gt;60.0&lt;/price&gt;<br />  &lt;/book&gt;<br />&lt;/books&gt;<br />够简单的吧，但它对于我们关心的东西都有了，子节点，属性。<br />下面是用于解析这个XML文件的Java文件：<br /></p><pre>1 public class JDomParse {
2	public JDomParse(){
3		String xmlpath="library.xml";
4		SAXBuilder builder=new SAXBuilder(false);
5		try {
6			Document doc=builder.build(xmlpath);
7			Element books=doc.getRootElement();
8			List booklist=books.getChildren("book");
9			for (Iterator iter = booklist.iterator(); iter.hasNext();) {
10				Element book = (Element) iter.next();
11				String email=book.getAttributeValue("email");
12				System.out.println(email);
13				String name=book.getChildTextTrim("name");
14				System.out.println(name);
15				book.getChild("name").setText("alterrjzjh");
16
17			}
18
19			XMLOutputter outputter=new XMLOutputter();
20			outputter.output(doc,new FileOutputStream(xmlpath));
21
22		} catch (JDOMException e) {
23			e.printStackTrace();
24		} catch (IOException e) {
25			e.printStackTrace();
26		}
27	}
28	public static void main(String[] args) {
29		new JDomParse();
30	}
31}</pre>不到30行代码，现在我对代码解释一下：<br />四、解释代码<br />引用的类：<br />import java.io.FileOutputStream;<br />import java.io.IOException;<br />import java.util.Iterator;<br />import java.util.List;<br />//下面是引用到JDOM中的类<br />import org.jdom.Document;<br />import org.jdom.Element;<br />import org.jdom.JDOMException;<br />import org.jdom.input.SAXBuilder;<br />import org.jdom.output.XMLOutputter;<br />（1）使用JDOM首先要指定使用什么解析器。如：<br />        SAXBuilder builder=new SAXBuilder(false); 这表示使用的是默认的解析器<br />（2）得到Document，我们以后要进行的所有操作都是对这个Document操作的：<br />        Document doc=builder.build(xmlpath);<br />（3）得到根元素：<br />        Element books=doc.getRootElement();<br />在JDOM中所有的节点（DOM中的概念）都是一个org.jdom.Element类，当然他的子节点也是一个org.jdom.Element类。<br />（4）得到元素（节点）的集合：<br />      List booklist=books.getChildren("book");<br />这表示得到“books”元素的所在名称为“book”的元素，并把这些元素都放到一个List集合中<br />（5）轮循List集合<br />     for (Iterator iter = booklist.iterator(); iter.hasNext();) {<br />       Element book = (Element) iter.next();<br />    ｝<br />还有一种轮循方法是：<br />    for(int i=0;I&lt;booklist.size();I++){<br />      Element book=(Element)booklist.get(i);<br />    }<br />（6）取得元素的属性：<br />    String email=book.getAttributeValue("email");<br />   取得元素book的属性名为“email”的属性值。<br />（7）取得元素的子元素（为最低层元素）的值：<br />    String name=book.getChildTextTrim("name");<br />    注意的是，必须确定book元素的名为“name”的子元素只有一个。<br />（8）改变元素（为最低层元素）的值：<br />    book.getChild("name").setText("alterrjzjh");<br />    这只是对Document的修改，并没有在实际的XML文档中进行修改<br />（9）保存Document的修改到XML文件中：<br />   XMLOutputter outputter=new XMLOutputter();<br />    outputter.output(doc,new FileOutputStream(xmlpath));<br /><br />我们先要有一个XMLOutputter类，再把已经修改了的Document保存进XML文档中。<br />到此。用JDOM解析和处理XML文档讲解完了，麻雀虽小，五脏俱全。现在已对JDOM有个整体上的概念了吧。<br /><br />进一步可以参考的文章：<a href="http://www.1-100.org/JSP/13190.htm">http://www.1-100.org/JSP/13190.htm</a><img src ="http://www.blogjava.net/SmileFace/aggbug/89178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-12-21 02:40 <a href="http://www.blogjava.net/SmileFace/archive/2006/12/21/89178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于properties文件</title><link>http://www.blogjava.net/SmileFace/archive/2006/12/19/88773.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Tue, 19 Dec 2006 05:36:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/12/19/88773.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/88773.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/12/19/88773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/88773.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/88773.html</trackback:ping><description><![CDATA[
		<span class="javascript" id="text109">建设一个完整的J2EE应用总会有很多系统参数，例如Datasource、INITIAL_CONTEXT_FACTORY、PROVIDER_URL等等，怎么才能最方便的存取，并且便于系统部署，移植呢？ <br /><br />就是－－.properties属性文件。<br /><br />掌握他的使用方法后，您可以象使用一个Class一样使用您的.properties属性文件。 <br /><br />Java中提供了一个java.util.Properties工具类，使用Properties类您可以方便的从一个.properties属性文件中读取设置参数，示例代码如下： <br /><br />    Properties props = new Properties(); <br />    props.load(new FileInputStream("filename.properties")); <br />    String value = props.getProperty("propertyname"); <br /><br />如果您的.properties文件打包入一个Jar或War文件，您可以使用ClassLoader的getResourceAsStream()方法得到一个InputStream对象，示例代码如下： <br /><br />        Properties props = new Properties(); <br />        props.load(getClass().getResourceAsStream("com/company/application/application.properties")); <br />        String value = props.getProperty("propertyname"); <br /><br />不过这种方式应该适用于较少量的访问吧，比如应用系统的初始化等等。 <br />如果需要频繁得到信息，就不太适合了。</span>
		<br />
		<br />另解： 他就象是数据可以存放在*.txt中，但是当数据变得很复杂，就要用专门的东西来存放---数据库，用java.util.Properties类来存储配置参数提供一种以Java为中心的数据存储配置方案，对Java有一定的依赖性，另外功能上也很匮乏，相当于*.txt,目前对于稍微复杂一些的系统存储配置都采用通用的xml方案，可以充分利用xml的强大功能,相当于数据库。<br /><br />Properties文件就象一个文本文件，文件中使用属性和值来保存数据，如：abc.name=Colin。使用Porperites文件来保存实际上就是创建一个Properites文件，在程序关闭的时候，将数据写入文件，再等程序启动的时候，从这个Properties文件中读出数据。<br /><br />出处：<a href="http://www.cjsdn.net/post/view?bid=2&amp;id=109&amp;sty=3&amp;age=0&amp;tpg=1&amp;ppg=1#109">http://www.cjsdn.net/post/view?bid=2&amp;id=109&amp;sty=3&amp;age=0&amp;tpg=1&amp;ppg=1#109</a><img src ="http://www.blogjava.net/SmileFace/aggbug/88773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-12-19 13:36 <a href="http://www.blogjava.net/SmileFace/archive/2006/12/19/88773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于serilization</title><link>http://www.blogjava.net/SmileFace/archive/2006/12/16/88090.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Fri, 15 Dec 2006 20:11:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/12/16/88090.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/88090.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/12/16/88090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/88090.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/88090.html</trackback:ping><description><![CDATA[
		<div class="floatright">
				<span id="hzhok">
				</span>
		</div>
		<p>
				<!-- 画中画广告结束 -->
				<span class="top11">首先要了解java默认的序列化行为，java将一切关于对象的信息都保存了下了，也就是说，有些时候那些不需要保存的也被保存了下来。一般情况下，我们仅仅需要保存逻辑数据就可以了。不需要保存的数据我们可以用关键字transient标出。<br /><br />例如：<br /><br />import java.io.*; <br /><br />public class Serial implements Serializable { <br /><br />　int company_id; <br /><br />　String company_addr; <br /><br />　transient boolean company_flag; <br /><br />} <br /><br /><br />其中的company_flag字段将不会参与序列化与反序列化，但同时也增加了为它初始值的责任。这也是序列化常常导致的问题之一。因为序列化相当于一个只接受数据流的public构造函数，这种对象构造方法是语言之外的。但他仍然是一种形式上的构造函数。如若你的类不能够通过其他方面来保证初始化，则你需要额外的提供readObject方法，首先正常的反序列化，然后对transient标示的字段进行初始化。 <br /><br />在不适合的时候，使用java默认的序列化行为可能会带来速度上的影响，最糟糕的情况是，可能导致溢出。在某些数据结构的实现中，经常会充斥着各种的循环引用，而java的默认序列化行为，并不了解你的对象结构，其结果就是java试图通过一种昂贵的“图遍历”来保存对象状态。可想而知，不但慢而且可能溢出。这时候你就要提供自己的readObject，来代替默认的行为。 </span>
		</p>
		<p>
				<span class="top11">note: <a href="http://developer.51cto.com/art/200601/20017.htm">http://developer.51cto.com/art/200601/20017.htm</a></span>
		</p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/88090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-12-16 04:11 <a href="http://www.blogjava.net/SmileFace/archive/2006/12/16/88090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用tomcat连接池配置mysql数据库连接</title><link>http://www.blogjava.net/SmileFace/archive/2006/12/01/84705.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Thu, 30 Nov 2006 21:03:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/12/01/84705.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/84705.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/12/01/84705.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/84705.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/84705.html</trackback:ping><description><![CDATA[5月份的时候，我的一篇blog里提到这个内容，那时候没有深入写，现在还是补补吧：<br /><br />在配置之前需要把数据库启动程序copy到tomcat的common/lib下。<br /><br />1、在Tomcat 的“管理”工具中，添加“数据源”。键入以下值：
<ul><li>JNDI 名称：<tt>jdbc/blue</tt></li><li>数据源 URL：<tt>jdbc:mysql://localhost/home</tt></li><li>JDBC 驱动程序类：<tt>org.gjt.mm.mysql.Driver</tt></li><li>用户名：<tt>root</tt></li><li>口令： ×××</li></ul><p>2、在conf/catalina/localhost下找到与“项目名.xml”文件，程序名是webapps目录下的项目文件夹名称。在此文件中的 <tt>&lt;context&gt;</tt> 标记之间添加以下资源链接： </p><pre class="examplecode">   &lt;ResourceLink name="jdbc/blue" type="javax.sql.DataSource" global="jdbc/blue"/&gt;<br /><br />注意：一定要加在这个文件中，而不是在项目文件夹里的web.xml中。至少我这样做时结果不对。<br /><br />3、 接下来就是测试了。测试程序很重要，尽量用简单的了。以下是我的测试程序：<br /><br /><br /><br /><br /><br />&lt;%@ page contentType="text/html; charset=GBK"%&gt;<br />&lt;%@ page import="java.sql.*,javax.sql.DataSource,javax.naming.*"%&gt;<br />&lt;html&gt;<br />&lt;head&gt;&lt;title&gt;test.jsp&lt;/title&gt;&lt;/head&gt;<br />&lt;body bgcolor="#ffffff"&gt;</pre><pre class="examplecode">&lt;% <br />Context initCtx=new InitialContext();<br />DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/blue");</pre><pre class="examplecode">try<br />{<br />out.println("test! &lt;br&gt;");<br />Connection conn=ds.getConnection();<br />out.println("data from database:&lt;br&gt;");<br />Statement stmt=conn.createStatement();<br />ResultSet rs =stmt.executeQuery("select * from dept");<br />while(rs.next())<br />{</pre><pre class="examplecode">out.println(rs.getString(1));<br />out.println(rs.getString(2));</pre><pre class="examplecode">}<br />rs.close();<br />stmt.close();<br />}<br />catch(Exception e)<br />{<br />e.printStackTrace();<br />}<br />%&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Good Luck!</pre><img src ="http://www.blogjava.net/SmileFace/aggbug/84705.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-12-01 05:03 <a href="http://www.blogjava.net/SmileFace/archive/2006/12/01/84705.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat中有2中方法配置 servlet</title><link>http://www.blogjava.net/SmileFace/archive/2006/10/11/74404.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Tue, 10 Oct 2006 19:01:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/10/11/74404.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/74404.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/10/11/74404.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/74404.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/74404.html</trackback:ping><description><![CDATA[今天才知道，有2种方法：<br /><br />1、适用于所有的servlet：只需修改conf目录下的server.xml即可自动匿名访问所有的servlet。<br /><br />To let Tomcat run anonymous servlet classes that have not been defined in a <i>web.xml</i> file, you can enable the Tomcat "invoker" servlet by removing the comments around the <tt>servlet-mapping</tt> element in the <span class="docEmphasis">web.xml</span> file in the Tomcat <span class="docEmphasis"><font style="BACKGROUND-COLOR: #ffffff">conf</font></span> directory:<pre>  &lt;!-- The mapping for the <font style="BACKGROUND-COLOR: #ffffff">invoker</font> servlet --&gt;

&lt;!--

  &lt;servlet-mapping&gt;

    &lt;servlet-name&gt;invoker&lt;/servlet-name&gt;

    &lt;url-pattern&gt;/servlet/*&lt;/url-pattern&gt;

  &lt;/servlet-mapping&gt;

--&gt;</pre><p class="docText">When you edit <i>web.xml</i> in the Tomcat <span class="docEmphasis">conf</span> directory, the servlet is ready to go。<br /><br />例如，after saving <i>Ch09_06.java</i> and building the project, start Tomcat with the Tomcat plug-in's buttons and navigate to <span class="docEmphasis">http://localhost:8080/Ch09_06/<font style="BACKGROUND-COLOR: #ffffff">servlet</font>/org.eclipsebook.ch09.Ch09_06</span>. <br /><br />2、就是编辑每个项目中的web.xml文件：<br /><br />lternatively, if you don't want to edit <i>web.xml</i> in the Tomcat <span class="docEmphasis">conf</span> directory to enable anonymous servlets, you can create a local <i>web.xml</i> for each project you create with the Tomcat plug-in. </p><img src ="http://www.blogjava.net/SmileFace/aggbug/74404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-10-11 03:01 <a href="http://www.blogjava.net/SmileFace/archive/2006/10/11/74404.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Toad</title><link>http://www.blogjava.net/SmileFace/archive/2006/09/29/72700.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Thu, 28 Sep 2006 18:11:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/09/29/72700.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/72700.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/09/29/72700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/72700.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/72700.html</trackback:ping><description><![CDATA[
		<p>今天下载了一个Toad for mysql， 是freeware。 可是安装它之前还要装.Net的framework2让我很不舒服。Anyway,  I still need to use it, right? So, I decide not to think about it. Ok, just install everything it asked. The result is important to me. I have not too much time. Go ahead, my great plan !!! </p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/72700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-09-29 02:11 <a href="http://www.blogjava.net/SmileFace/archive/2006/09/29/72700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>看书看书还是看书</title><link>http://www.blogjava.net/SmileFace/archive/2006/08/09/62663.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 09 Aug 2006 14:58:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/08/09/62663.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/62663.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/08/09/62663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/62663.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/62663.html</trackback:ping><description><![CDATA[
		<p>前一阵突然发现图书馆可以借到很多我想要的书（UML,XML,J2EE，EJB），于是一口气预定了几十本，结果拿回来本本都想看（^_^，稍微夸张了点，但是百分之六十是不错的，一点要看呀）。这下忙死我了，真不知道怎么分身才好。没啥好说的，看呀。所以，再也没有时间看电视，娱乐，没时间仔细耕耘我的blog了。就这样吧，等我的技术见长，我再好好总结吧。<br /><br />只是有一点很深的体会： 学一个技术，一定要系统的看书，一本足矣。</p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/62663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-08-09 22:58 <a href="http://www.blogjava.net/SmileFace/archive/2006/08/09/62663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>近期计划</title><link>http://www.blogjava.net/SmileFace/archive/2006/07/05/56632.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Tue, 04 Jul 2006 19:33:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/07/05/56632.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/56632.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/07/05/56632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/56632.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/56632.html</trackback:ping><description><![CDATA[前几天出去大瀑布玩了一下，似乎放松了些。现在要收心了。本来计划周五就考scjp的，结果没有位置，再者我还没有看模拟题，心理不是态有底，于是决定再等2天看看。<br /><br />今天看了j2ee书的第2章application assembly and deployment，接下来的第3、4、5章都是servlet和jsp的，于是我决定暂时就看到这里，从现在开始准备scjp，等下周考完后，开始准备scwcd时再看。<br /><br />老师给的文章还没看，唉，也要留点时间呢。<img src ="http://www.blogjava.net/SmileFace/aggbug/56632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-07-05 03:33 <a href="http://www.blogjava.net/SmileFace/archive/2006/07/05/56632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>where can find  answer for Java programming question</title><link>http://www.blogjava.net/SmileFace/archive/2006/06/23/54785.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Fri, 23 Jun 2006 14:13:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/06/23/54785.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/54785.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/06/23/54785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/54785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/54785.html</trackback:ping><description><![CDATA[ (From: <a href="http://www.MindView.net">www.MindView.net</a>) 
<h2 align="center">Your Java Programming Questions</h2><blockquote><!--- --><p>There are several people who have kindly offered to answer Java questions. So please send all questions to:</p><ol><li>Sun has a "<a href="http://developer.java.sun.com/developer/onlineTraining/new2java/"><font color="#008000">New To Java</font></a>" Programming Information Center to help get you started.<br /><br /></li><li>Bill Venners, who teaches with me, has created the <a href="http://www.artima.com/forums/forum.jsp?forum=1"><font color="#008000">Java Answers Forum</font></a>. He said: "I wanted to create a place where programmers could ask and answer each other questions, where the questions and answers would remain indefinitely and be searchable." <br /><br /></li><li>The forums at <a href="http://www.techinterviews.com/index.php?cat=4"><font color="#008000">TechInterviews</font></a> have many people asking and answering Java questions.<br /><br /></li><li><a href="http://www-106.ibm.com/developerworks/java/newto/"><font color="#008000">IBM DeveloperWorks</font></a> contains some nice introductory material.<br /><br /><!--
<LI>Robert Hurd has created <A HREF="http://www.codecollection.com">
Code Collection</A>, An
Internet technology help web site to assist Java programmers. You can send
programming questions to <A HREF="mailto:rhurd@codecollection.com">
rhurd@codecollection.com</A>.  --></li><li>Kathy Kozel has created <a href="http://www.javaranch.com/"><font color="#008000">http://www.javaranch.com/</font></a> for the same reason. You can send programming questions to <a href="mailto:kathykozel@javaranch.com"><font color="#008000">kathykozel@javaranch.com</font></a><br /><br /></li><li>Marcus Green maintains the <a href="http://www.jchq.net/discus/"><font color="#008000">Java Certification Exam Discussion Forum</font></a><br /><br /></li><li>Another page about certification <a href="http://www.levteck.com/"><font color="#008000">www.levteck.com</font></a>.<br /><br /></li><li>Raymond Blum is available to answer Java questions. He has several years experience in Java and other O-O languages and is currently consulting as an OO mentor and Java instructor. You can send him questions at <a href="mailto:raytrace@thebyteboard.com"><font color="#008000">raytrace@thebyteboard.com</font></a><br /><br /></li><li>David Reilly has a web site devoted to answering Java questions, which seems well-targeted to beginners. You can go directly to his <a href="http://www.javacoffeebreak.com/faq/"><font color="#008000">FAQ</font></a>. <br /><br /></li><li><a href="http://www.jfind.com/"><font color="#008000">JFind</font></a> keeps a list of answers and snippets.<br /><br /></li><li>The <a href="http://www.javafaq.nu/java/"><font color="#008000">JavaFAQ</font></a> specializes in Java questions and answers, including Java Daily Tips, many online Java books, a weekly newsletter, and they provide a free "Java Tips" e-book.<br /><br /></li><li><a href="mailto:charbell@bellsouth.net"><font color="#008000">Charles Bell</font></a> says he will be happy to try to answer questions; he also has a web site at <a href="http://www.quantumhyperspace.com/"><font color="#008000">http://www.quantumhyperspace.com</font></a>.<br /><br /></li><li>jGuru.com <a href="http://www.jguru.com/"><font color="#008000">http://www.jguru.com</font></a> maintains a set of community-driven, topical FAQs where developers can pose questions or answer those already posed.<br /><br /></li><li>Kevin Brown has created an <a href="http://www.egroups.com/group/JavaThink"><font color="#008000">egroup</font></a> "For those who are working through and would like to discuss the book." <br /><br /></li><li>Here's another study group for TIJ: <a href="http://groups.yahoo.com/group/JavaThink/"><font color="#008000">http://groups.yahoo.com/group/JavaThink/</font></a>.<br /><br /></li><li>For JSP (Java Server Pages) questions, <a href="http://www.jspinsider.com/"><font color="#008000">JSPInsider</font></a> claims to have "a refreshing take on JSP." JSPInsider is based upon a group of developers sharing information to help the JSP community make the most out of JSP. They also have a <a href="http://www.jspinsider.com/jspbuzz/current.html"><font color="#008000">newsletter</font></a>.<br /><br /></li><li>From a bulletin from Sun: "HotDispatch, Inc. and Sun Microsystems, Inc. are helping to bring people together in a real-time marketplace for Java technology support ... [if] you like the idea of getting technical help at competitive prices, visit: <a href="http://developer.java.sun.com/developer/support/Hotdispatch/"><font color="#008000">http://developer.java.sun.com/developer/support/Hotdispatch/</font></a>"<br /><br /></li><li>Dr. Heinz Max Kabutz publishes an <b>Advanced</b> Java newsletter. Not for the uninitiated, but I find something fascinating in every issue. To subscribe, either send an email <a href="mailto:join-thejavaspecialists@burst.sparklist.com?subject=Join"><font color="#008000">here</font></a> or do it via the web <a href="http://burst.sparklist.com/scripts/lyris.pl?enter=thejavaspecialists"><font color="#008000">here</font></a>. He has back issues <a href="http://www.javaspecialists.co.za/archive/archive.html"><font color="#008000">here</font></a>.<br /><br /></li><li>Programmer's Heaven provides a <a href="http://www.programmersheaven.com/c/MsgBoard/sublist.asp?SubID=15&amp;Setting="><font color="#008000">Java Message Board</font></a> for Q &amp; A.<br /><br /></li></ol></blockquote><img src ="http://www.blogjava.net/SmileFace/aggbug/54785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-06-23 22:13 <a href="http://www.blogjava.net/SmileFace/archive/2006/06/23/54785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 中serelization的作用</title><link>http://www.blogjava.net/SmileFace/archive/2006/06/20/53876.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Mon, 19 Jun 2006 19:02:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/06/20/53876.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/53876.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/06/20/53876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/53876.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/53876.html</trackback:ping><description><![CDATA[今天看到chapter 7中讲到sereliaztion，很是糊涂，于是search了一下，嗯，果然有大侠解释的比较清楚,z摘录如下：<br /><br />Object serialization的定义： <br />Object serialization 允许你将实现了Serializable接口的对象转换为字节序列，这些字节序列可以被完全存储以备以后重新生成原来的对象。  <br /><br />serialization不但可以在本机做，而且可以经由网络操作（就是猫小说的RMI）。这个好处是很大的----因为它自动屏蔽了操作系统的差异，字节顺序（用Unix下的c开发过网络编程的人应该知道这个概念，我就容易在这上面犯错）等。比如，在Window平台生成一个对象并序列化之，然后通过网络传到一台Unix机器上，然后可以在这台Unix机器上正确地重构这个对象。 <br /><br /><br />Object serialization主要用来支持2种主要的特性： <br />1。Java的RMI(remote method invocation).RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象时，就需要用到serializaiton机制来发送参数和接收返回直。 <br /><br />2。Java的JavaBeans.   Bean的状态信息通常是在设计时配置的。Bean的状态信息必须被存起来，以便当程序运行时能恢复这些状态信息。这也需要serializaiton机制。<img src ="http://www.blogjava.net/SmileFace/aggbug/53876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-06-20 03:02 <a href="http://www.blogjava.net/SmileFace/archive/2006/06/20/53876.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>备战SCJP</title><link>http://www.blogjava.net/SmileFace/archive/2006/06/13/52355.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Tue, 13 Jun 2006 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/06/13/52355.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/52355.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/06/13/52355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/52355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/52355.html</trackback:ping><description><![CDATA[一周没写blog了，因为一直沉浸在scjp的知识里，^_^。<br /><br />从图书馆借来了sun的SCJP和SCWCD的考试指导书（这点我要盛赞一下这里的图书馆了，真是好呀。真的是给每一个人服务的。人手一个借书卡（限借30本吧，好像），然后所有的图书馆都是联网的，可以预定，只要你耐心，你想看的书，DVD一定是可以看到的。唉，我老人家刚来这里的时候，就梦想着等若干年后我有那个money了，也在我们那个小城市办个图书馆之类的，而且先从儿童图书开始呀。唉，这里的小孩实在太幸福了，我嫉妒很呀。唉，扯的太远了）。先看SCJP的，觉得很好。真的很实用。唉，惭愧，虽然我老人家也编程几载了，可是如今看着SCJP 里的基本知识点，居然很多不是很清楚呢。老公总是问我，SCJP 有用吗？我一直也不知道怎么回答。现在我知道了，就是不为SCJP，为了把基础垫扎实，让自己心安，这个SCJP 我也是要考的，哈哈。<br /><br />继续努力吧，我自己，哈哈<img src ="http://www.blogjava.net/SmileFace/aggbug/52355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-06-13 10:15 <a href="http://www.blogjava.net/SmileFace/archive/2006/06/13/52355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SWT基础</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/25/47996.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Thu, 25 May 2006 04:11:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/25/47996.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/47996.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/25/47996.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/47996.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/47996.html</trackback:ping><description><![CDATA[SWT是一个IBM开发的跨平台GUI开发工具包。一个SWT应用程序的基本组成部分为显示界面（Display）、命令界面（Shell，使命令进入并使运行初始化）和窗口部件（Widgets）。Display负责管理事件循环和控制UI线程和其他线程之间的通讯。Shell是应用程序中被操作系统窗口管理器管理的窗口。每个SWT应用程序至少需要一个Display和大于等于1个的Shell实例。<br /><br />如果一个应用程序使用了多个线程，那么每个线程都使用的是Display对象分配给它自己的实例。程序员可以使用静态方法Display.getCurent()来得到Display对象的当前活动的实例。 <br /><br />　　Shell用于在特定的操作系统中表现窗口。Shell有两种类型。第1种是高层shell，它是Display的子窗口，同时它也是一个主窗口。第2类是对话shell，这种shell要依赖于其他的shell窗口存在。shell窗口最终成为上述那种类型，要看在创建shell时传递给shell构造函数的是什么风格位（style bits）。一个shell的默认值是DialogShell。也就是说，如果不带参数，那默认就是一个对话shell。而如果给参数赋予了一个Display对象，则该shell将是一个高层shell。 <br /><br />　　<strong>进行SWT开发前的环境设置 <br /><br /></strong>　　为了进行SWT应用开发，你需要把SWT库添加到类路径（classpath）上，并设置必要的环境变量。<br /><br />        首先，你要在ECLIPSE_HOMEeclipsepluginsorg.eclipse.swt.win32_2.1.0wswin32目录下找到swt.jar库文件。注意这里的“org.eclipse.swt.win32_2.1.0”目录是和Eclipse的版本有关的。实在找不到你就用文件搜索功能吧。然后依次打开下面窗口Project-〉Properies-〉JavaBuildPath-〉Libraries-〉Add Variable -〉 Eclipse Home -〉Extend将swt.jar文件加到类路径中。<br /><br />接着，你肯定想编译这个SWT应用了。但是会出现下面所示的运行异常。出现这个异常的原因是swt.jar库使用的是原生库。你需要设置java.library.path环境变量来使用Java中的原生库。 <br /><br />　　控制台（Console ）的输出如下： <br /><br />    java.lang.UnsatisfiedLinkError: no swt-win32-2136 in java.library.path <br />    at java.lang.ClassLoader.loadLibrary(Unknown Source) <br />    at java.lang.Runtime.loadLibrary0(Unknown Source) <br />    at java.lang.System.loadLibrary(Unknown Source) <br />    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:108) <br />    at org.eclipse.swt.internal.win32.OS.〈clinit〉(OS.java:46) <br />    at org.eclipse.swt.widgets.Display.internal_new_GC(Display.java:1291) <br />    at org.eclipse.swt.graphics.Device.init(Device.java:547) <br />    at org.eclipse.swt.widgets.Display.init(Display.java:1316) <br />    at org.eclipse.swt.graphics.Device.〈init〉(Device.java:96) <br />    at org.eclipse.swt.widgets.Display.〈init〉(Display.java:291) <br />    at org.eclipse.swt.widgets.Display.〈init〉(Display.java:287) <br />    at com.swtdesigner.trytry.main(trytry.java:24) <br />    Exception in thread "main" <br /><br />　　按下面的步骤设置java.library.path变量：依次打开Run-〉 Run...-〉 Java Applicaton-〉 "Project" -〉Arguments -〉 VM Arguments。在“VM Arguments”中输入 <br /><br />-Djava.library.path=c:eclipsepluginsorg.eclipse.swt.win32_2.1.0oswin32† <br /><br />　　注意要输入你自己的swt.jar所在的路径。 <br /><img src ="http://www.blogjava.net/SmileFace/aggbug/47996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-25 12:11 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/25/47996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse＋Tomcat开发servlet</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/25/47935.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 24 May 2006 20:14:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/25/47935.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/47935.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/25/47935.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/47935.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/47935.html</trackback:ping><description><![CDATA[以Hello World为例, 其基本步骤是：<br /><br /><br />1．  选择File-&gt;New-&gt;Project<br /><br />2．  在对话框中选择Tomcat Project，然后next<br /><br />3．  输入Project Name，这里可以写HelloWorld，继续next<br /><br />4．  勾上can update server.xml file选项，finish,好了，一个Poject已经创建好了。<br /><br />5．  打开new class 向导，在Name中填入HelloWorld,在Superclass中填入javax.servlet.http.HttpServlet，按下finish，好了，一个servlet就创建好了<br /><br />6．  在HelloWorld.java中重载doGet方法，代码如下：<br /> import javax.servlet.http.HttpServlet;<br /> import javax.servlet.http.HttpServlet;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;<br />import java.io.IOException;<br />import java.io.PrintWriter;<br />import javax.servlet.ServletException;<br /><br />public class HelloWorld extends HttpServlet {<br />       public void doGet(HttpServletRequest request,HttpServletResponse response)<br />      throws IOException, ServletException {<br />       response.setContentType("text/html");<br />       PrintWriter writer = response.getWriter();<br />       writer.println("Hello World!");<br />      }<br />}<br /><br />7.在WEB-INF目录下新建web.xml文件如下：<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"&gt;<br /><br />&lt;web-app&gt;<br />&lt;servlet&gt;<br />&lt;servlet-name&gt;TestServlet&lt;/servlet-name&gt;<br />&lt;servlet-class&gt;HelloWorld&lt;/servlet-class&gt;<br />&lt;/servlet&gt;<br />&lt;servlet-mapping&gt;<br />&lt;servlet-name&gt;TestServlet&lt;/servlet-name&gt;<br />&lt;url-pattern&gt;servlet/HelloWorld&lt;/url-pattern&gt;<br />&lt;/servlet-mapping&gt;<br />&lt;/web-app&gt;<br /><br />8.Ctrl+S保存，右键HelloWorld project,选择Tomcat Project-&gt;update context to server.xml<br />  注意：这里很重要，此步骤eclipse会自动修改了server.xml文件，添加HelloWorld项目。<br /><br />9.在Eclipse中启动Tomcat<br /><br />10.在用浏览器访问<a href="http://localhost:8080/HelloWorld/servlet/HelloWorld">http://localhost:8080/HelloWorld/servlet/HelloWorld</a><br /><br /><img src ="http://www.blogjava.net/SmileFace/aggbug/47935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-25 04:14 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/25/47935.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse 小tips</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/25/47930.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 24 May 2006 17:37:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/25/47930.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/47930.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/25/47930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/47930.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/47930.html</trackback:ping><description><![CDATA[1. 在Eclipse项目中双击HTML文件时，可能希望是用Notepad打开，而不是用系统缺省的IE浏览器打开。实现的方法是打开菜单栏中的Windows－&gt;Preferences对话框，之后在对话框中选择General－&gt;Editors -&gt; file associations，然后添加文件类型，如*.html，再为其指定编辑器即可。<br /><br />2. 在Eclipse在工具栏上提供了一个切换按钮，可以在"显示全部代码"和"只显示所选单元"（这里的单元指的是单个方法、变量、导入的包等）之间切换。<br /><br />3.about view:  <br />       navigator和package exploror是核心部分。前者和Windows的浏览器差不多，能浏览项目文件夹中的所有文件，后者用来浏览项目中的Java包，包中的类，类中的变量和方法等信息。Hierarchy窗口非常实用，它能非常清晰的查看类的层次结构。类中的编译出错信息可以在task view中查到，同时它也可以成为名符其实的任务view：向其中添加新的任务描述信息，来跟踪项目的进度。console则主要用来显示程序的输出信息。在调试程序的时候，会有更丰富的观察view来帮助程序员进行调试，如变量值察看view，断点view等等。<br /><br />4.about perspective:<br /> <br />     一个perspective包括一个或多个editor和view。在开发环境的最右侧的快捷栏中的上部分显示的就是当前所打开的视图图标。可以自定义一个新视图。这些功能都被包括在"Perspective" 菜单中。<br /><br />5 在Java perspective中，工具栏中有两个按钮，分别用来进行调试和运行。并且可能由于安装的插件不同Eclipse会存在多种运行/调试程序的方式，为了确定当前项目用那一种方式运行，需要在项目的属性选项中的设置LauncheràRun/Debug选项。通常我们需要用的是"Java　Applicantion"方式。在这种方式下，如果当前位置是包含main()方法的Java程序，点击调试/运行按钮就会立即开始执行调试/运行功能。如果当前位置是在包或项目上，Eclipse会搜索出当前位置所包含的所有可执行程序，然后由程序员自己选择运行那一个。 <br /><br />在目前的Eclipse的Release和Stable版本中缺省安装了插件开发环境（Plug-in Development Environment，即PDE，它本身也是一个插件），此时系统除了"Java Applicantion" 运行方式，可能还有另外两种方式："Run-time WorkBench"和"Run-time WorkBench with Tracing"，当用PDE开发插件的时候会用到这两种运行方式<br /><br />6 使用插件 <br /><br />下面将介绍如何应用插件来嵌入Tomcat服务器。这个插件并不是Eclipse项目组开发的，而是一家叫sysdeo的公司开发，非常小巧，只有27.8K。你可以到<a href="http://www.sysdeo.com/eclipse/tomcatPlugin.html">http://www.sysdeo.com/eclipse/tomcatPlugin.html</a>去免费下载。另外，这个插件只支持Tomat4.0以上的版本，可以在www.apache.org得到Tomcat的最新版本。 <br /><br />要安装插件只需将下载的zip文件按原路径解压到"你的Eclipse的安装路径plugins"下面，然后重新启动Eclipse。启动后在菜单栏上选择Perspective----&gt;Customize，在打开的对话框中选中Other--&gt;Tomcat。之后马上会发现Eclipse有了两处变化：菜单栏中多了一个Tomcat选项，工具栏中多了两个按钮，上面是大家可能非常熟悉的Tomcat小猫。除此之外，在菜单栏中选择：Windows--&gt;Preferences，打开对话框后会发现这也多了一个Tomcat选项，在这里要求指定你的Tomcat安装根路径。之后还要检查一下在Preferences对话框中的Java--&gt;Installed JRE所指定的JRE和启动Tomcat的JRE是否为同一个JRE，如果不是，可能会导致Tomat不能正常启动。如果以上检查没有问题，就可以用工具栏上的"小猫"直接起动Tomcat了。要注意的是，启动过程很慢. 之后就可以在外部浏览器（如IE）中输入<a href="http://localhost:8080">http://localhost:8080</a>来测试Tomcat是否正常。 <br /><br />7. 尝试在Eclipse中调试Servlet或JSP程序：<br /> <br />我们将用Tomcat自带的Servlet例程HelloWorldExample.java来示范一下如何在Eclipse中调试Sevlet程序。首先要在Java视图中新建一个Java项目，为了方便，可以直接将项目路径指定到HelloWorldExmaple程序所在路径，之后按"Next"，进入Java Settings对话框，选择Libraries标签，并用Add External JARs按钮来指定Servlet.jar包的位置。这里直接用了Tomcat中的Servlet.jar包。 <br /><br />最后，点击"Finish"完成项目的生成。在新生成项目中的default package可以找到HelloWorldExample.java，双击打开文件，并可尝试给HelloWorldExample加上一个断点（双击编辑窗口左侧边界）。之后在外部浏览器中输入<a href="http://localhost:8080/examples/servlet/HelloWorldExample">http://localhost:8080/examples/servlet/HelloWorldExample</a>，再回过来看Eclipse发生了什么变化，是一个调试窗口呀！<br /><br />8 Eclipse插件体系中重要的概念是扩展点（extension points），也就是为插件提供的接口。每一个插件都是在现有的扩展点上开发，并可能还留有自己的扩展点，以便在这个插件上继续开发。 <br /><br />Eclipse系统的核心部分在启动的时候要完成的工作十分简单：启动平台的基础部分和查找系统的插件。在Eclipse中实现的绝大部分功能是由相应的插件完成的，比如WrokBench UI插件完成界面的外观显示，Resource Management插件完成维护或生成项目或文件等资源管理工作（在下面的第二个例子就会用到这个插件），而Version and Configuration Management (VCM)插件则负责完成版本控制功能，等等。虽然以上提到的每一个功能都是绝大多数IDE环境所必备的功能，Eclipse却也把它们都做成了插件模式，甚至用来开发Java程序的开发环境（Java development tooling，JDT）也只不过是Eclipse系统中的一个普通插件而已。整个Eclipse体系结构就象一个大拼图，可以不断的向上加插件，同时，现有插件上还可以再加插件。<br /><br />9 由于软件本身升级比较频繁，经常需要重新设置使用的环境变量或者重新配置，例如把JDK版本从1.3升级到1.4，即JDK目录名可能要从“j2sdk1.3”改为“j2sdk1.4”，如果是这样的话，那么eclipse可能会无法再启动了（它要从环境变量中寻找JAVA_HOME变量，而JAVA_HOME变量值已经从“j2sdk1.3”改为“j2sdk1.4”了）。解决的方法很简单，只要把默认的软件安装目录名去掉版本号即可(如果担心忘记版本号，只要在目录中添加一个readme文件加以说明即可)。例如： jdk安装路径是：D:\Program Files\Java\j2sdk；  eclipse 安装的路径是：D:\Program Files\Java\eclipse<img src ="http://www.blogjava.net/SmileFace/aggbug/47930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-25 01:37 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/25/47930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat结构分析</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/24/47741.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Tue, 23 May 2006 20:08:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/24/47741.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/47741.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/24/47741.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/47741.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/47741.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Arial">1 Web服务器 <br /><br />通常,一个完整的Web服务器包含一个或多个“虚拟主机”.所谓虚拟主机,就是在一个物理的服务器上配置多个域名,每个域名对应相同或不同的应用.这样,客户端看起来好像是有多个主机;Web容器在收到请求时,根据客户端给出的域名来确定处理该请求的虚拟主机.在每个虚拟主机中又可以部署一个或多个Web应用.每个部署在服务器上的Web应用要提供对本应用的生命周期管理等功能.尽管不同的Web服务器的实现各不相同,但都按照服务器-虚拟主机-应用的层次结构进行设计和管理.<br /> <br />2 Tomcat结构分析<br /><br />Apache Tomcat是Servlet/JSP标准的参考实现,作为一个成功的、有着广泛应用的Web容器,Tomcat有着整齐而清晰的内部结构。其中关键的模块有: <br /><br />Server.一个Server模块代表了整个Tomcat容器.它的属性代表了Web容器作为一个整体的特征.一个Server模块主要包括一个或多个Service模块以及顶层的命名资源.在运行期间,Server模块应监听port属性所指定的端口,并对于该端口接受的每一个连接读入其所传入的第1行信息并与shutdown属性所指定的字串进行比较:如果两者相吻合,则执行关闭服务器的步骤;否则,不执行任何操作并断开连接.这种机制为容器的远程管理提供了可能. <br /><br />Service.一个Service模块代表了共享同一个Container实例(通常是Engine实例)的一个或多个Connector实例所组成的逻辑整体.该Container负责处理这个Service中所有Connector接受的请求.Service模块最主要的职责在于:允许加密的Connector以及普通的Connector连接到同一组Web应用.同一个Connector不能同时存在于两个不同的Service中.在同一个Java虚拟机中可以同时存在多个Service实例,但这些实例除了共享最基本的Java运行时类库以外,相互之间是完全独立的. <br /><br /> Connector.Connector模块负责接受来自网络客户端的请求,并将请求的处理结果反馈给客户端.每个Connector实例实际上实现的是一种网络传输协议,它将通过这种协议传入的客户端请求进行分析,构造相应的Request和Response实例,找出适合相应该请求的Container实例,调用该Container的invoke方法,并将Request和Response实例作为参数传入,最终将处理结果或者错误信息反馈给客户端. <br /><br />Engine.Engine是Container的子接口,它代表了整个Servlet引擎.在运行中,Engine永远是Container层次结构的最高级,所以,其setParent()方法若如被调用将总是抛出IllegalArgumentException异常.一个Engine的子Container通常是一个或多个的Host实例. <br /><br />Host.Host代表的实际上就是常说的“虚拟主机”的概念.在一个Tomcat Web服务器中可以同时运行多个Host,每个Host都与一个特定的主机名以及任意个“别名”相绑定.每个客户端的请求都会根据主机名映射到相应的Host进行处理.Host的下级Container通常是一些Context实例. <br /><br />Context.一个Context就是一个独立的Web应用.它包括了Web应用的所有Servlet类、JSP 文件、静态页面和图片、Jar包、环境变量、各种配置参数以及其他各种资源.Context的下级Container通常是Wrapper的实例。</font>
				<br />
				<br />
				<br />原文参见： <a href="http://www.jos.org.cn/1000-9825/17/1195.pdf">http://www.jos.org.cn/1000-9825/17/1195.pdf</a></p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/47741.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-24 04:08 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/24/47741.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Understanding JavaScript and Java</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/18/46714.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Wed, 17 May 2006 16:21:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/18/46714.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/46714.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/18/46714.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/46714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/46714.html</trackback:ping><description><![CDATA[
		<p class="first-para" style="MARGIN: auto 0in">
				<font face="Arial Unicode MS">
						<br />JavaScript and Java are often confused due to their similar names. But that's where most of the similarity ends. JavaScript does resemble Java in a few general ways, but it's a lot looser in terms of data typing, and it's an interpreted language, which means that JavaScript code is compiled at runtime by the client. A Java developer using the Java Developer Kit or a built-in compiler in a Java editor compiles Java, and the compiled code is sent to the client machine to be executed by the Java Virtual Machine (JVM) on the client.</font>
		</p>
		<span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Java and JavaScript are both based on object-oriented models, but Java's compiling requirements, specific data typing restrictions, and object hierarchy requirements, as well as the Java syntax, make Java harder to code, but more powerful. Consequently, JavaScript is more widely adopted for simple development requirements, whereas Java is implemented for more complex functionality.</span>
<img src ="http://www.blogjava.net/SmileFace/aggbug/46714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-18 00:21 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/18/46714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat下Servlet和JavaBean配置步骤</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/12/45817.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Fri, 12 May 2006 04:01:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/12/45817.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/45817.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/12/45817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/45817.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/45817.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">背景：最近在学servlet，遇到了一些问题，经过四处查资料，问题搞定。总结如下：<br />（哈，这是自己的第一篇Blog日志，开篇大吉！）<br /><br />Servlet </span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置步骤：</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; tab-stops: list .5in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">1、</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">tomcat/conf/sever.xml</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中添加项目，例如</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">myapp</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目：</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<span style="mso-spacerun: yes">                </span>&lt;Context path="/myapp" docBase="myapp" debug="0" <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<span style="mso-tab-count: 2">                  </span>
						<span style="mso-tab-count: 1">      </span>
						<span style="mso-tab-count: 1">      </span>reloadable="true" crossContext="true"&gt; <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<span style="mso-spacerun: yes">    </span>
						<span style="mso-tab-count: 1">  </span>
						<span style="mso-tab-count: 1">      </span>&lt;/Context&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">2</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．每编制一个</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">servlet</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，就需要在项目的</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">web-inf /web.xml</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中添加这个</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">servlet</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的配置，例如要新增ContexrServlet，其结构如下：</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">&lt;servlet&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<span style="mso-spacerun: yes">  </span>&lt;servlet-name&gt;ContextServlet&lt;/servlet-name&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<span style="mso-spacerun: yes">  </span>&lt;servlet-class&gt;ContextServlet&lt;/servlet-class&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<span style="mso-spacerun: yes">  </span>&lt;/servlet&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">&lt;servlet-mapping&gt; <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">&lt;servlet-name&gt;ContextServlet&lt;/servlet-name&gt; <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">&lt;url-pattern&gt;/servlet/*&lt;/url-pattern&gt; <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">&lt;/servlet-mapping&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">3</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．编译</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">servlet</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，拷贝</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">class</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件到项目的</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">/web-inf/classes</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下。</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">4</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">．重启</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">tomcat</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，运行。</span>
				<span lang="ZH-CN" style="mso-ansi-language: EN-CA">
				</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">例如，输入</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">ocalhost:8080/myapp/servlet/ContextServlet </span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">即可运行</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注意：</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<span style="mso-spacerun: yes">  </span>
				</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改了</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">web.xml</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以及新加了和修改了</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">class</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，都要重启</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">Tomcat<o:p></o:p></span> (<font face="Verdana" size="2">Just to clarify u need to redeploy your application if you make ANY change in ur classes. This is not the case with jsp files or html files. </font>)</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">JavaBean</span>
				<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注意事项：</span>
				<span lang="EN-CA" style="mso-ansi-language: EN-CA">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in">
				<span lang="EN-CA" style="mso-ansi-language: EN-CA"> <o:p></o:p></span>
		</p>
		<ol style="MARGIN-TOP: 0in" type="1">
				<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo2; tab-stops: list .5in">
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同上；</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">
								<o:p>
								</o:p>
						</span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo2; tab-stops: list .5in">
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">建立自己的</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">Bean</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，一定注意：</span>
						<span lang="EN-CA" style="BACKGROUND: yellow; COLOR: #ff6600; mso-ansi-language: EN-CA; mso-highlight: yellow">javabean</span>
						<span lang="ZH-CN" style="BACKGROUND: yellow; COLOR: #ff6600; FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">文件必须带包名</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，即在</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">javabean</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件开头要有</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">package pname</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">(注意： 这可是个小trick呀，开始的时候我是根本没有注意到问题出在这里呀。)</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">
								<o:p>
								</o:p>
						</span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo2; tab-stops: list .5in">
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编译</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">javabean</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，拷贝</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">class</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件到项目的</span>
						<span lang="EN-CA" style="mso-ansi-language: EN-CA">/web-inf/classes</span>
						<span lang="ZH-CN" style="FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span>
				</li>
				<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo2; tab-stops: list .5in">
						<span lang="ZH-CN" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">重启</span>
						<span lang="EN-CA" style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-ansi-language: EN-CA; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">tomcat</span>
						<span lang="ZH-CN" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ansi-language: EN-CA; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，运行关联的</span>
						<span lang="EN-CA" style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-ansi-language: EN-CA; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">jsp，即可。</span>
				</li>
		</ol>
<img src ="http://www.blogjava.net/SmileFace/aggbug/45817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-12 12:01 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/12/45817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>