﻿<?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>IT博客-月亮弯弯-文章分类-Java 技术频道</title><link>http://www.cnitblog.com/donny/category/3341.html</link><description>不努力，你离要饭只有3天</description><language>zh-cn</language><lastBuildDate>Sat, 01 Oct 2011 23:20:04 GMT</lastBuildDate><pubDate>Sat, 01 Oct 2011 23:20:04 GMT</pubDate><ttl>60</ttl><item><title>搭建基于 Java 的 WEB 应用程序（二）</title><link>http://www.cnitblog.com/donny/articles/13760.html</link><dc:creator>小悦</dc:creator><author>小悦</author><pubDate>Mon, 17 Jul 2006 03:35:00 GMT</pubDate><guid>http://www.cnitblog.com/donny/articles/13760.html</guid><wfw:comment>http://www.cnitblog.com/donny/comments/13760.html</wfw:comment><comments>http://www.cnitblog.com/donny/articles/13760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/donny/comments/commentRss/13760.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donny/services/trackbacks/13760.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Tomcat 的数据库连接池						   配置好 Log4j 之后，就可以很方面的跟踪这个项目，Debug 起来也很方便。接下来就要慢慢搭建 WEB 的底层了。   之前传统的数据库连接池一般都是在 Tomcat 的 Admin 页面直接操作的。又或者自己利用 JDBC 手动配置。   Apache 最近推出了一个开源项目，基于 DBCP 的数据库连接池。具体内容可以参考这里：http...&nbsp;&nbsp;<a href='http://www.cnitblog.com/donny/articles/13760.html'>阅读全文</a><img src ="http://www.cnitblog.com/donny/aggbug/13760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donny/" target="_blank">小悦</a> 2006-07-17 11:35 <a href="http://www.cnitblog.com/donny/articles/13760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搭建基于 Java 的 WEB 应用程序（一）</title><link>http://www.cnitblog.com/donny/articles/13758.html</link><dc:creator>小悦</dc:creator><author>小悦</author><pubDate>Mon, 17 Jul 2006 03:14:00 GMT</pubDate><guid>http://www.cnitblog.com/donny/articles/13758.html</guid><wfw:comment>http://www.cnitblog.com/donny/comments/13758.html</wfw:comment><comments>http://www.cnitblog.com/donny/articles/13758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/donny/comments/commentRss/13758.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/donny/services/trackbacks/13758.html</trackback:ping><description><![CDATA[
		<h4 align="center">Log4j的配置</h4>
		<p align="left">   <font size="2">最近在公司一直是做一些比较小型的 WEB 应用程序。例如接收错误报告的服务器端，OA 内部的 MIS 系统。所以把之前做过的东西记录一下，当是学习经验也好，个人备忘录也好。<br /><br />   先说一下这次的开发环境：JDK 5.0，MySQL 5.0，Tomcat 5.0.X。<br /><br />   IDE 方面：用的 Java Editer 是 JBuilder 2005，可能现在更多的人都喜欢用 Eclipse，因为它的插件机制非常的灵活。可凡事都是先入为主，用 JBuilder 这么久了，总是觉得用 JBuilder 写代码才有安全感。MySQL 方面用的是 MySQL Front 3.2，是一个功能强大而且非常灵活的图形化工具。好了，现在可以开始了。<br /><br />   首先配置 Log4j。Log4j是 Apache 的一个开源项目。它不但可以用在 Java 的 WEB 应用程序中，现在已经被改进为能用于多个范畴内跟踪项目的最好的日志工具。有次以为整个项目很小，所以就没有用 Log4j。结果项目是要部署在 Linux 上面的，由于在 Debian 上面运行 Tomcat ，控制台是看不到信息的，所以部署出错之后 Debug 就很麻烦。受了教训之后，之后每次做基于 Java 的 WEB 应用程序时，第一个就要先把 Log4j 配置好。<br /><br />   Log4j 可以从 Apache 的官方主页下载，目前最新版本为 1.2.13。下载地址为 ：<a href="http://logging.apache.org/site/binindex.cgi">http://logging.apache.org/site/binindex.cgi</a>。<br /><br />   配置 Log4j，主要配置 3 个文件。首先是 Log4j 的配置文件：Log4j.properties。在这里就不详细说整个文件的详细配置，参考下面的代码，就能迅速的完成 Log4j 的配置。<br /><br /></font></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">#</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000"> 定义了两个输出端<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.rootLogger </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> debug</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000"> A1</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000"> A2<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000"> 定义A1输出到控制器<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1 </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> org.apache.log4j.ConsoleAppender<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">3</span>
				<span style="COLOR: #000000"> 定义A1的布局模式为PatternLayout<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1.layout </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> org.apache.log4j.PatternLayout<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">4</span>
				<span style="COLOR: #000000"> 定义A1的输出格式<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1.layout.ConversionPattern </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> %-4r </span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">[</span>
				<span style="COLOR: #800000">%t</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">]</span>
				<span style="COLOR: #000000"> %-5p %c - %m%n<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">5</span>
				<span style="COLOR: #000000"> 定义A2输出到文件<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A2 </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> org.apache.log4j.RollingFileAppender<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">6</span>
				<span style="COLOR: #000000"> 定义A2要输出到哪一个文件<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /># 默认输出路径为 %tomcat_home%\bin 目录下<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /># 这里改成 %tomcat_home%\logs 目录<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A2.File </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">../logs/oamis.lkog<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">7</span>
				<span style="COLOR: #000000"> 定义A2的输出文件的最大长度<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A2.MaxFileSize </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> 1000KB<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">8</span>
				<span style="COLOR: #000000"> 定义A2的备份文件数<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A2.MaxBackupIndex </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">9</span>
				<span style="COLOR: #000000"> 定义A2的布局模式为PatternLayout<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A2.layout </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> org.apache.log4j.PatternLayout<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="COLOR: #000000">10</span>
				<span style="COLOR: #000000"> 定义A2的输出格式<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />#log4j.appender.A2.layout.ConversionPattern </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A2.layout.ConversionPattern </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> %t  :%-5p  :%c  :%m%n<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
		</div>
		<p align="left">   Log4j.propertis 文件一般放在 WEB-INF 目录下。以便于在 WEB 启动时就加载它。接下来就是定义一个 Servlet 来初始化 Log4j。比如定义一个叫 Log4jInit 的 Servlet 来初始化 Log4j。<br /><br />   </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> javax.servlet.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> javax.servlet.http.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> java.io.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.log4j.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_143_834_Open_Image" onclick="this.style.display='none'; Codehighlighter1_143_834_Open_Text.style.display='none'; Codehighlighter1_143_834_Closed_Image.style.display='inline'; Codehighlighter1_143_834_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_143_834_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_143_834_Closed_Text.style.display='none'; Codehighlighter1_143_834_Open_Image.style.display='inline'; Codehighlighter1_143_834_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> Log4jInit </span>
				<span style="COLOR: #0000ff">extends</span>
				<span style="COLOR: #000000"> HttpServlet </span>
				<span id="Codehighlighter1_143_834_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cnitblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_143_834_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">Initialize global variables</span>
						<span style="COLOR: #008000">
								<br />
								<img id="Codehighlighter1_227_599_Open_Image" onclick="this.style.display='none'; Codehighlighter1_227_599_Open_Text.style.display='none'; Codehighlighter1_227_599_Closed_Image.style.display='inline'; Codehighlighter1_227_599_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_227_599_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_227_599_Closed_Text.style.display='none'; Codehighlighter1_227_599_Open_Image.style.display='inline'; Codehighlighter1_227_599_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> init() </span>
						<span style="COLOR: #0000ff">throws</span>
						<span style="COLOR: #000000"> ServletException </span>
						<span id="Codehighlighter1_227_599_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_227_599_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        String prefix </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> getServletContext().getRealPath(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">/</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">
										<img src="http://www.cnitblog.com/images/dot.gif" />
										<img src="http://www.cnitblog.com/images/dot.gif" />
										<img src="http://www.cnitblog.com/images/dot.gif" />
										<img src="http://www.cnitblog.com/images/dot.gif" />
										<img src="http://www.cnitblog.com/images/dot.gif" />..Log4j Starting!</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(prefix </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">WEB-INF/Log4j.properties</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        org.apache.log4j.PropertyConfigurator.configure(prefix </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">WEB-INF/Log4j.properties</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">----------------------------------</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">Process the HTTP Get request</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> doGet(HttpServletRequest request, HttpServletResponse response) </span>
						<span style="COLOR: #0000ff">throws</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_766_772_Open_Image" onclick="this.style.display='none'; Codehighlighter1_766_772_Open_Text.style.display='none'; Codehighlighter1_766_772_Closed_Image.style.display='inline'; Codehighlighter1_766_772_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_766_772_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_766_772_Closed_Text.style.display='none'; Codehighlighter1_766_772_Open_Image.style.display='inline'; Codehighlighter1_766_772_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            ServletException, IOException </span>
						<span id="Codehighlighter1_766_772_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_766_772_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">Clean up resources</span>
						<span style="COLOR: #008000">
								<br />
								<img id="Codehighlighter1_826_832_Open_Image" onclick="this.style.display='none'; Codehighlighter1_826_832_Open_Text.style.display='none'; Codehighlighter1_826_832_Closed_Image.style.display='inline'; Codehighlighter1_826_832_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_826_832_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_826_832_Closed_Text.style.display='none'; Codehighlighter1_826_832_Open_Image.style.display='inline'; Codehighlighter1_826_832_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> destroy() </span>
						<span id="Codehighlighter1_826_832_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_826_832_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<p align="left">   这个 Servlet 主要是完成对 Log4j 的初始化。要使这个 Servlet 在 WEB 启动时就加载，还需对 web.xml 做如下配置：<br /><br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">servlet</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">servlet-name</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">log4jinit</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">servlet-name</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">servlet-class</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">com.kingsoft.servlets.Log4jInit</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">servlet-class</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">load-on-startup</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">load-on-startup</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">servlet</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p align="left">加上一句 &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;，表示在 WEB 启动时，就先加载这个 Servlet。<br /><br /><br /><br />下面测试一下：<br /><br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_23_331_Open_Image" onclick="this.style.display='none'; Codehighlighter1_23_331_Open_Text.style.display='none'; Codehighlighter1_23_331_Closed_Image.style.display='inline'; Codehighlighter1_23_331_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_23_331_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_331_Closed_Text.style.display='none'; Codehighlighter1_23_331_Open_Image.style.display='inline'; Codehighlighter1_23_331_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> TestLog4j </span>
				<span id="Codehighlighter1_23_331_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cnitblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_23_331_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">private</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> org.apache.log4j.Category log </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> org.apache.log4j.Category.<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            getInstance(TestLog4j.</span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">);<br /><img id="Codehighlighter1_168_207_Open_Image" onclick="this.style.display='none'; Codehighlighter1_168_207_Open_Text.style.display='none'; Codehighlighter1_168_207_Closed_Image.style.display='inline'; Codehighlighter1_168_207_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_168_207_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_168_207_Closed_Text.style.display='none'; Codehighlighter1_168_207_Open_Image.style.display='inline'; Codehighlighter1_168_207_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> TestLog4j() </span>
						<span id="Codehighlighter1_168_207_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_168_207_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        log.info(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">Init Method</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_252_329_Open_Image" onclick="this.style.display='none'; Codehighlighter1_252_329_Open_Text.style.display='none'; Codehighlighter1_252_329_Closed_Image.style.display='inline'; Codehighlighter1_252_329_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_252_329_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_252_329_Closed_Text.style.display='none'; Codehighlighter1_252_329_Open_Image.style.display='inline'; Codehighlighter1_252_329_Open_Text.style.display='inline';" src="http://www.cnitblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> main(String[] args) </span>
						<span id="Codehighlighter1_252_329_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnitblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_252_329_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        log.info(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">todo-:)</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        TestLog4j test </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> TestLog4j();<br /><img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cnitblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
		<p align="left">Log4j 就配置好了。以后在每个类里面使用，只要定义一个 Category 对象就 OK了。只要 info、debug、error等方法的使用，请参考 Log4j 的 API Document。<br /><br /><br />下一节主要写 Tomcat 的数据库连接池。<br /></p>
<img src ="http://www.cnitblog.com/donny/aggbug/13758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/donny/" target="_blank">小悦</a> 2006-07-17 11:14 <a href="http://www.cnitblog.com/donny/articles/13758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>