﻿<?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-DZM.528-随笔分类-JavaEE</title><link>http://www.blogjava.net/duanzhimin528/category/42619.html</link><description>Life is a voyage, not a destination.</description><language>zh-cn</language><lastBuildDate>Wed, 14 Jul 2010 19:15:07 GMT</lastBuildDate><pubDate>Wed, 14 Jul 2010 19:15:07 GMT</pubDate><ttl>60</ttl><item><title>Log4J使用完全手册(转)</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326139.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 14 Jul 2010 14:08:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326139.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/326139.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/326139.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/326139.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Log4J是Apache的一个开放源代码项目(http://logging.apache.org/log4j/docs/)，它是一个日志操作包。通过使用Log4J,可以指定日志信息输出的目的地，控制每一条日志的输出格式，定义日志信息的级别。所有这些功能通过一个配置文件灵活进行配置。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326139.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/326139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-14 22:08 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache安装设置 - Ubuntu中文</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324344.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Thu, 24 Jun 2010 07:39:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324344.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/324344.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324344.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/324344.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/324344.html</trackback:ping><description><![CDATA[
		<p>
				<b>
						<font color="#ff0000" size="4">
								<span class="mw-headline">Apache 安装设置 </span>
						</font>
				</b>
		</p>
		<ul>
				<li> 安装Apache2<br /></li>
		</ul>
		<pre>sudo apt-get install apache2 <br /></pre>
		<ul>
				<li> 编辑/etc/apache2/apache2.conf(新安装的系统可能在/etc/apache2/conf.d/charset)文件，在改动之前，请先将该配置文件做个备份。以便在出错的时候可以恢复。将
</li>
		</ul>
		<pre>AddDefaultCharset ISO-8859-1  改为  AddDefaultCharset GB2312<br /></pre>
		<p>当然如果你网站的编码用的是UTF-8的话，也可以改为<br /></p>
		<p>AddDefaultCharset UTF-8<br /></p>
		<p> 这样的话，我们就不会每次打开网页都是乱码了！<br /></p>
		<p>
				<font color="#ff0000" size="4">
						<b>增加安全模块</b>
				</font>
		</p>
		<p>
				<font size="4">
						<font size="3">       增加安全模块，以保障Apache服务的正常运行，现在我们安装mod-security。（可选）</font>
						<b>
						</b>
				</font>
		</p>
		<p style="text-indent: 2em;">首先安装libapache2-mod-security包 </p>
		<p style="text-indent: 2em;">sudo apt-get install libapache2-mod-security </p>
		<p style="text-indent: 2em;">该模块默认是没激活的，我们可以在/etc/apache2/mods-available目录下看到有mod-security.load文件，但在/etc/apache2/mods-enabled目录却没有它的软链接。我们现在激活它： </p>
		<p style="text-indent: 2em;">$sudo ln -s /etc/apache2/mods-available/mod-security.load /etc/apache2/mods-enabled/mod-security.load </p>
		<p style="text-indent: 2em;">$sudo cp /usr/share/doc/libapache2-mod-security/examples/httpd2.conf.example-full /etc/apache2/mods-available/mod-security.conf </p>
		<p style="text-indent: 2em;">$sudo cp /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-available/mod-security.conf.orig </p>
		<p style="text-indent: 2em;">$sudo vi /etc/apache2/mods-available/mod-security.conf </p>
		<p style="text-indent: 2em;">
				<font color="#ff0000">==== mod-security.conf 文件内容开始==== </font>
		</p>
		<p style="text-indent: 2em;"># 检测内容长度以避免堆溢出攻击 </p>
		<p style="text-indent: 2em;">SecFilterForceByteRange 32 254 =&gt;SecFilterForceByteRange 32 126 </p>
		<p style="text-indent: 2em;"># debug设置 </p>
		<p style="text-indent: 2em;">SecFilterDebugLevel 9 =&gt;SecFilterDebugLevel 0 </p>
		<p style="text-indent: 2em;"># 设置缺省的动作 </p>
		<p style="text-indent: 2em;">SecFilterDefaultAction "deny,log,status:499" =&gt;SecFilterDefaultAction "deny,log,status:404" </p>
		<p style="text-indent: 2em;"># 把设置传递给子目录 </p>
		<p style="text-indent: 2em;">SecFilterInheritance Off </p>
		<p style="text-indent: 2em;"># Redirect user on filter match </p>
		<p style="text-indent: 2em;"># 当匹配sh的时候,重新定向到一个特殊的警告页面,该页面是自行编写的，写些警告的话让攻击者知难而退，该段先不要生效，等到相关配置配好之后再失效不迟。记住在配好之后要使之生效。 </p>
		<p style="text-indent: 2em;">#SecFilter sh redirect:http://localhost/hack/warning.htm </p>
		<p style="text-indent: 2em;"># Prevent OS specific keywords </p>
		<p style="text-indent: 2em;">#过滤一些敏感的东西，我们使用*是为了攻击者使用/etc/./passwd来绕开检测 </p>
		<p style="text-indent: 2em;">SecFilter /etc/passwd =&gt;SecFilter /etc/*passwd </p>
		<p style="text-indent: 2em;">SecFilter /bin/*sh </p>
		<p style="text-indent: 2em;"># Very crude filters to prevent SQL injection attacks </p>
		<p style="text-indent: 2em;"># 防止SQL插入(SQL Injection)攻击 </p>
		<p>      SecFilter "delete[[[space|space]]]+from"
SecFilter "insert[[[space|space]]]+into"
SecFilter "select.+from"
SecFilter "select[[[space|space]]]+from"
SecFilter "union[[[space|space]]]+from"
</p>
		<p style="text-indent: 2em;">
				<font color="#ff0000">==== mod-security.conf 文件内容结束==== </font>
		</p>
		<p style="text-indent: 2em;">sudo ln -s /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-enabled/mod-security.conf </p>
		<p style="text-indent: 2em;">重启Apache2服务即可。 </p>
		<p style="text-indent: 2em;">sudo /etc/init.d/apache2 restart </p>
		<p style="text-indent: 2em;">备注：第三步可能会引起部分网站不能正常运行，可以参照着去掉某些限制，由于是安全模块，所以参照的是防火墙的做法，关掉一切不安全的，再根据需要打开必要的。 </p>
		<font size="4">
				<b>
						<span class="mw-headline">
								<font color="#ff0000">测试环境</font>
						</span>
				</b>
		</font>
		<ul>
				<li> 操作系统：Ubuntu 9.0.4
</li>
				<li> 测试机地址：10.39.6.59
</li>
				<li> 测试机域名：*.firehare.com
</li>
		</ul>
		<a name=".E5.9F.BA.E6.9C.AC.E9.85.8D.E7.BD.AE" id=".E5.9F.BA.E6.9C.AC.E9.85.8D.E7.BD.AE">
		</a>
		<h3>
				<span class="editsection">
						<a href="http://wiki.ubuntu.org.cn/index.php?title=Apache%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%8C%87%E5%8D%97&amp;action=edit&amp;section=3" title="编辑段落：基本配置">
						</a>
				</span>
				<span class="mw-headline">
						<font color="#ff0000">基本配置</font>
				</span>
		</h3>
		<p>我们都知道，如果我们想在单台机器上设置多个域名或主机名时，我们就要用到基于名称的虚拟主机了。那么要如何进行设置呢？这就是本指南想解决的问题
了。在 Ubuntu 的 /etc/apache2/ 目录下有个 Apache2 的主配置文件
apache2.conf。在该文件中我们可以看到有这么一行内容：
</p>
		<pre>Include /etc/apache2/sites-enabled/[^.#]*<br /></pre>
		<p>这行的意思表明该文件包含了 /etc/apache2/sites-enabled/ 目录中文件名不含 "." 或 "#"
这两个字符的所有文件。而当我们列出该目录的文件时，发现只有一个 000-default 的软链接文件，实际连接的是
/etc/apache2/sites-available 目录中的 default 文件，不难看出该文件的文件名中并不包含 "." 或
"#"。所以这个文件当然是要被配置文件 apache2.conf
所包含的了。打开该文件，发现它其实是一个虚拟主机的配置文件，不过由于该文件中的虚拟主机为
*，所以它实际上是一个通用配置文件。如果我们要建立虚拟主机的话，那么就要把该文件改成如下所示：
</p>
		<pre>NameVirtualHost 10.39.6.59<br />&lt;VirtualHost 10.39.6.59&gt;<br />ServerName www.firehare.com<br />ServerAdmin ubuntu.firehare@gmail.com<br /><br />DocumentRoot /var/www/<br />&lt;Directory /&gt;<br />Options FollowSymLinks<br />AllowOverride None<br />&lt;/Directory&gt;<br />&lt;Directory /var/www/&gt;<br />Options Indexes FollowSymLinks MultiViews<br />AllowOverride None<br />Order allow,deny<br />allow from all<br /># This directive allows us to have apache2's default start page<br /># in /apache2-default/, but still have / go to the right place<br /># Commented out for Ubuntu<br />#RedirectMatch ^/$ /apache2-default/<br />&lt;/Directory&gt;<br /><br />ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/<br />&lt;Directory "/usr/lib/cgi-bin"&gt;<br />AllowOverride None<br />Options ExecCGI -MultiViews +SymLinksIfOwnerMatch<br />Order allow,deny<br />Allow from all<br />&lt;/Directory&gt;<br /><br />ErrorLog /var/log/apache2/error.log<br /><br /># Possible values include: debug, info, notice, warn, error, crit,<br /># alert, emerg.<br />LogLevel warn<br /><br />CustomLog /var/log/apache2/access.log combined<br />ServerSignature On<br /><br />Alias /doc/ "/usr/share/doc/"<br />&lt;Directory "/usr/share/doc/"&gt;<br />Options Indexes MultiViews FollowSymLinks<br />AllowOverride None<br />Order deny,allow<br />Deny from all<br />Allow from 127.0.0.0/255.0.0.0 ::1/128<br />&lt;/Directory&gt;<br /><br />&lt;/VirtualHost&gt;<br /></pre>
		<p>下面我们来分析一下上面这段设置中与虚拟主机有关的设置语句：
</p>
		<ul>
				<li> `NameVirtualHost 10.39.6.59`：表示我们要做的是一个基于名称的虚拟主机，且其 IP 地址为 10.39.6.59
</li>
				<li> `&lt;VirtualHost 10.39.6.59&gt; 和 &lt;/VirtualHost&gt;`：表示在其中的是一个虚拟主机的配置
</li>
				<li> `ServerName www.firehare.com`：设置虚拟主机的域名
</li>
				<li> `ServerAdmin ubuntu.firehare@gmail.com`：设置该虚拟主机网管员的邮件
</li>
				<li> `DocumentRoot /var/www/`：设置该虚拟主机的主目录路径
</li>
				<li> `ErrorLog /var/log/apache2/error.log`：设置该虚拟主机的出错信息
</li>
				<li> `CustomLog /var/log/apache2/access.log combined`：设置该虚拟主机的访问信息
</li>
		</ul>
		<p>这样我们就配置了一个虚拟主机 www.firehare.com。但由于这是缺省配置，所以在 Apache2 重启之后，无论你输入 DNS
服务器中指向这个主机的任何域名，都会被导向 www.firehare.com 这个缺省配置所指向的 /var/www
这个目录的。除非该域名被其他虚拟主机配置所用，比如我们还配置了 edunuke.firehare.com
指向本机，且配置了相应的虚拟主机，这样的话，输入域名 edunuke.firehare.com 就会被对应该域名的目录中。
</p>
		<a name=".E8.BF.9B.E4.B8.80.E6.AD.A5.E8.AF.B4.E6.98.8E" id=".E8.BF.9B.E4.B8.80.E6.AD.A5.E8.AF.B4.E6.98.8E">
		</a>
		<h3>
				<span class="editsection">
						<a href="http://wiki.ubuntu.org.cn/index.php?title=Apache%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%8C%87%E5%8D%97&amp;action=edit&amp;section=4" title="编辑段落：进一步说明">
						</a>
				</span>
				<span class="mw-headline">
						<font color="#ff0000">进一步说明</font>
				</span>
		</h3>
		<p>为了说明清楚 我们再添加一个虚拟主机站点 edunuke.firehare.com，首先到
/etc/apache2/sites-available/ 目录中建立一个文件 edunuke。当然这个文件名中是没有 "." 或 "#"
这两个字符的了。然后编辑该文件：
</p>
		<pre>&lt;VirtualHost 10.39.6.59&gt;<br />ServerName edunuke.firehare.com<br />ServerAdmin ubuntu.firehare@firehare.com<br />DocumentRoot "/var/www/edunuke/"<br />ErrorLog "/var/log/apache2/edunuke_errors.log"<br />CustomLog "/var/log/apache2/edunuke_accesses.log" common    <br />&lt;/VirtualHost&gt;<br /></pre>
		<p>设置的具体含义同上面的相似，这是我就不再多说了。然后再运行命令：
</p>
		<pre>sudo a2ensite edunuke<br /></pre>
		<p>这样的话，虚拟主机站点 edunuke.firehare.com 就已经安装好了。这时你也可以在
/etc/apache2/sites-enabled/ 目录中发现多了一个到
/etc/apache2/sites-available/edunuke 的软链接。接下来就是将 Apache2
重启来使虚拟主机站点运行起来：
</p>
		<pre>sudo /etc/init.d/apache2 restart  这里可以使用reload 重新加载<br /></pre>
		<p>这样你在浏览器上输入 edunuke.firehare.com 的话，就会被指向 /var/www/edunuke
目录了，而输入其他指向本机的域名则都会指到缺省配置中的 /var/www 目录中。熟悉 Apache2
的朋友会问为什么这样麻烦，放在一个文件中不也是可以吗？为什么要用两个文件呢？其实很简单，因为如果我要对 edunuke
站点进行维护时，我只要运行命令：
</p>
		<pre>sudo a2dissite edunuke<br />sudo /etc/init.d/apache2 restart<br /></pre>
		<p>即可，这样既可以维护 edunuke 这个站点，同时还不影响其他站点的正常运行。
</p>
		<a name=".E9.AB.98.E7.BA.A7.E9.85.8D.E7.BD.AE" id=".E9.AB.98.E7.BA.A7.E9.85.8D.E7.BD.AE">
		</a>
		<h3>
				<span class="editsection">
						<a href="http://wiki.ubuntu.org.cn/index.php?title=Apache%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%8C%87%E5%8D%97&amp;action=edit&amp;section=5" title="编辑段落：高级配置">
						</a>
				</span>
				<font color="#ff0000">
						<span class="mw-headline">高级配置 </span>
				</font>
		</h3>
		<p>上面谈了一下简单的虚拟主机配置方法。这个基本上能满足我们大部分的需要。但如果要是安装 Zope+Plone
的话，上面的这点设置是远远不够的，由于 Zope+Plone
结构所采用的端口并非是80端口，所以我们还得做端口重定向。为了能够做这个，我们得激活 Rewrite 和 Proxy
两个模块。激活模块很简单，同站点配置目录一样，在 Apache2 中也有两个模块配置目录：mods-available 和
mods-enabled。在 mods-available 目录中的是所有可用的模块，而在 mods-enabled 目录中的则是已被安装到
Apache2 中的模块。由于在 mods-available 目录中已经有了 Rewrite 和 Proxy
模块的配置引导文件，所以只需要简单地将其安装到 Apache2 中即可。使用命令：
</p>
		<pre>sudo a2enmod rewrite<br />sudo a2enmod proxy<br /></pre>
		<p>然后，添加虚拟主机站点 plone.firehare.com，同 edunuke
站点创建相似在/etc/apache2/sites-available/ 目录中建立一个文件 plone。显然这个文件名中是没有 "." 或
"#" 这两个字符的了。然后编辑该文件：
</p>
		<pre>&lt;VirtualHost 10.39.6.59&gt;<br />ServerName plone.firehare.com<br />ServerAdmin ubuntu.firehare@firehare.com<br />ErrorLog "/var/log/apache2/plone_errors.log"<br />CustomLog "/var/log/apache2/plone_accesses.log" common<br /><br />RewriteEngine on<br />RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1 [L,P]<br /><br />&lt;Proxy *&gt;<br />Order Deny,Allow<br />Deny from all<br />Allow from all<br />&lt;/Proxy&gt;<br /><br />&lt;/VirtualHost&gt;<br /></pre>
		<p>这样就安装好了 plone.firehare.com 虚拟主机站点，可以在浏览器中地址栏中输入 <a href="http://plone.firehare.com/" class="external free" title="http://plone.firehare.com" rel="nofollow">http://plone.firehare.com</a> 就可以重定向到 Zope+Plone 站点去了。
</p>
		<br />
		<p>
				<a name="mod-security.conf_.E6.96.87.E4.BB.B6.E5.86.85.E5.AE.B9.E5.BC.80.E5.A7.8B" id="mod-security.conf_.E6.96.87.E4.BB.B6.E5.86.85.E5.AE.B9.E5.BC.80.E5.A7.8B">
				</a>
		</p>
<img src ="http://www.blogjava.net/duanzhimin528/aggbug/324344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-06-24 15:39 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/06/24/324344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>快速建立Subversion服务器</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/05/20/321479.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Thu, 20 May 2010 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/05/20/321479.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/321479.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/05/20/321479.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/321479.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/321479.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文是使用Subversion最快速的教程，在最短的时间里帮助您建立起一套可用的服务器环境，只需略加调整就可以应用到实际项目当中。本教程分为以下几个部门，不仅仅是快速入门，最后我们还有一些高级功能的说明，为了说明简单，教程是在windows下使用的方式，以方便资源有限的项目使用，对于UNIX环境下，区别并不大。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/05/20/321479.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/321479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-05-20 16:19 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/05/20/321479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP容器的初始化和销毁 - ServletContext（转）</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/04/20/318814.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Tue, 20 Apr 2010 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/04/20/318814.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/318814.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/04/20/318814.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/318814.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/318814.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ServletContext 被 Servlet 程序用来与 Web 容器通信。例如写日志，转发请求。每一个 Web 应用程序含有一个Context，被Web应用内的各个程序共享。因为Context可以用来保存资源并且共享，所以我所知道的 ServletContext 的最大应用是Web缓存----把不经常更改的内容读入内存，所以服务器响应请求的时候就不需要进行慢速的磁盘I/O了。<br>ServletContextListener 是 ServletContext 的监听者，如果 ServletContext 发生变化，如服务器启动时 ServletContext 被创建，服务器关闭时 ServletContext 将要被销毁。<br>在JSP文件中，application 是 ServletContext 的实例，由JSP容器默认创建。Servlet 中调用 getServletContext()方法得到 ServletContext 的实例。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/04/20/318814.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/318814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-04-20 10:19 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/04/20/318814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java读写cookie</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/04/02/317260.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 02 Apr 2010 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/04/02/317260.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/317260.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/04/02/317260.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/317260.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/317260.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/04/02/317260.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/317260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-04-02 09:51 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/04/02/317260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu下安装和配置Apache2</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 05 Mar 2010 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/314564.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/314564.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/314564.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在Windows下，Apache的配置文件通常只有一个，就是httpd.conf。但我在Ubuntu Linux上用apt-get install apache2命令安装了Apache2后，竟然发现它的httpd.conf（位于/etc/apache2目录）是空的！进而发现Ubuntu的 Apache软件包的配置文件并不像Windows的那样简单，它把各个设置项分在了不同的配置文件中，看起来复杂，但仔细想想设计得确实很合理。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/314564.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-03-05 10:15 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2:利用标签显示List嵌套Map </title><link>http://www.blogjava.net/duanzhimin528/archive/2010/02/01/311526.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Mon, 01 Feb 2010 09:12:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/02/01/311526.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/311526.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/02/01/311526.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/311526.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/311526.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: struts2:利用标签显示List嵌套Map &nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/02/01/311526.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/311526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-02-01 17:12 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/02/01/311526.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Session实现在线统计的功能(HttpSessionListener)</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/01/18/309969.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Mon, 18 Jan 2010 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/01/18/309969.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/309969.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/01/18/309969.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/309969.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/309969.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如何用Session实现在线统计的功能，其实只要对Servlet规范详细了解一下，明白其基本原理，编写一个类似的功能并不是一件很复杂的事情。这个例子是基于2.3以上的规范编写的，最主要功能就是提供在线用户列表显示（既然用户列表都可以显示了，那人数统计自然也不在话下了）。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/01/18/309969.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/309969.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-01-18 16:52 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/01/18/309969.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP防止重复提交,重复刷新,后退</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/01/06/308416.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 06 Jan 2010 04:24:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/01/06/308416.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/308416.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/01/06/308416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/308416.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/308416.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JSP防止重复提交,防止重复刷新,防止后退问题以及处理方式&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/01/06/308416.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/308416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-01-06 12:24 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/01/06/308416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2.0标签应用–for循环的实现</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/12/30/307763.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 30 Dec 2009 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/12/30/307763.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/307763.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/12/30/307763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/307763.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/307763.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: struts2.0标签应用–for循环的实现&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/12/30/307763.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/307763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-12-30 15:01 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/12/30/307763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>提高JAVA代码质量，减少代码缺陷</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305282.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 09 Dec 2009 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305282.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/305282.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/305282.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/305282.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这是最新一期IBM developworks的专题，摘录了一些挺有用的建议和概念。高质量代码中往往缺陷更少！确保高的 Java 代码质量有两个步骤：尽早并经常地编写各个层次的测试用例，以及持续的监测质量状况&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305282.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/305282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-12-09 14:10 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery+struts+json</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305264.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 09 Dec 2009 04:10:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305264.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/305264.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/305264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/305264.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在struts中采用jquery利用json数据来动态无刷新更新页面。首先要准备一下基本知识,struts目前已经是展示层的业内标准；jquery这里我们需要使用jquery的ajax方式获取后台数据;json是一种数据交换格式(不太清楚的可以看我之前的几篇文章《actionscript数据交互的几种类型》，《JSON简介》),项目构建工具maven。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305264.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/305264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-12-09 12:10 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/12/09/305264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2使用之值栈与OGNL-使用</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/11/25/303656.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 25 Nov 2009 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/11/25/303656.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/303656.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/11/25/303656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/303656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/303656.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 访问属性，访问方法，访问静态属性和方法，访问构造方法，访问数组，访问集合 – 投影、选择(? ^ $)，集合的伪属性&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/11/25/303656.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/303656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-11-25 16:47 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/11/25/303656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2标签使用 (#$%)/js命名空间</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/11/13/302226.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 13 Nov 2009 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/11/13/302226.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/302226.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/11/13/302226.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/302226.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/302226.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: session中存有UserVO值对象，其中有networkListMap(当前用户所创建的network,以network的name为 key，network的信息为value)，当前用户所在的network信息(name,description)，当前用户可以点击页面上的 network列表切换network.&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/11/13/302226.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/302226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-11-13 14:49 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/11/13/302226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2标签集 </title><link>http://www.blogjava.net/duanzhimin528/archive/2009/11/12/302071.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Thu, 12 Nov 2009 03:38:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/11/12/302071.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/302071.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/11/12/302071.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/302071.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/302071.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: struts2标签集 &nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/11/12/302071.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/302071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-11-12 11:38 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/11/12/302071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分享J2EE学习的20个网站</title><link>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301793.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Tue, 10 Nov 2009 03:07:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301793.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/301793.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/301793.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/301793.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前人栽树，后人乘凉。想当初自己初学Java时为了解决一个很基础的问题，好多的朋友热心的回复我，帮我分析错误。现在为了方便那些Java新手，特给出自己感觉比较好的学习网站和论坛，希望对朋友们能有点帮助。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301793.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/301793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2009-11-10 11:07 <a href="http://www.blogjava.net/duanzhimin528/archive/2009/11/10/301793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>