﻿<?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-临渊羡鱼，不如退而结网</title><link>http://www.blogjava.net/jhx800/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 05 Dec 2008 14:51:36 GMT</lastBuildDate><pubDate>Fri, 05 Dec 2008 14:51:36 GMT</pubDate><ttl>60</ttl><item><title>How to play DOS game in linux </title><link>http://www.blogjava.net/jhx800/archive/2008/12/05/244473.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Thu, 04 Dec 2008 16:38:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/12/05/244473.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/244473.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/12/05/244473.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/244473.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/244473.html</trackback:ping><description><![CDATA[<h3 entry-title="">
<a href="http://benvarnanaco.blogspot.com/2008/12/how-to-play-dos-game-in-linux.html">How to play DOS game in linux</a>
</h3>
install dosbos<br />
<ol>
    <li>uprmi dosbox</li>
    <li>dosbox (normal user)<br />
    </li>
    <li>in dosbox commend terminal<br />
    </li>
    <li>mount c /game-dir</li>
    <li>c:</li>
    <li>play.bat</li>
</ol>
OK!!<br />
<br />
<br />
http://benvarnanaco.blogspot.com/<br />
<img src ="http://www.blogjava.net/jhx800/aggbug/244473.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-12-05 00:38 <a href="http://www.blogjava.net/jhx800/archive/2008/12/05/244473.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ip查询和ip反查询</title><link>http://www.blogjava.net/jhx800/archive/2008/12/04/244282.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Thu, 04 Dec 2008 02:10:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/12/04/244282.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/244282.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/12/04/244282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/244282.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/244282.html</trackback:ping><description><![CDATA[<p><font style="background-color: #fbf7eb"><a href="http://www.123cha.com/ip/">http://www.123cha.com/ip/</a></font><br />
</p>
<p><br />
&nbsp;</p>
<p><br />
&nbsp;</p>
<p><br />
&nbsp;</p>
<p><font style="background-color: #fbf7eb">http://domain-suggestions.domaintools.com/?q=membersreverse-ip.php</font></p>
<img src ="http://www.blogjava.net/jhx800/aggbug/244282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-12-04 10:10 <a href="http://www.blogjava.net/jhx800/archive/2008/12/04/244282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js经典效果</title><link>http://www.blogjava.net/jhx800/archive/2008/12/02/243842.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Tue, 02 Dec 2008 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/12/02/243842.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/243842.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/12/02/243842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/243842.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/243842.html</trackback:ping><description><![CDATA[http://bbs.blueidea.com/thread-2486328-1-1.html
<img src ="http://www.blogjava.net/jhx800/aggbug/243842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-12-02 09:34 <a href="http://www.blogjava.net/jhx800/archive/2008/12/02/243842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>netbeans+chinese+download...glassfish+tomcat6</title><link>http://www.blogjava.net/jhx800/archive/2008/12/01/243632.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Mon, 01 Dec 2008 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/12/01/243632.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/243632.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/12/01/243632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/243632.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/243632.html</trackback:ping><description><![CDATA[<p>NetBeans
IDE 6.5 完全支持所有 Java 平台（Java SE、Java EE、Java ME 和 JavaFX），此外还是 PHP、Ajax
和 JavaScript、Groovy 和 Grails、Ruby 和 Ruby on Rails 以及 C/C++
软件开发的理想工具。6.5 发行版增强了对 Web 框架 (Hibernate, Spring, JSF, JPA)、GlassFish v3
应用服务器以及数据库的支持。此外，它还包括新增的在 IDE 范围内快速搜索的快捷键、更加友好的用户界面以及自动在保存时编译功能。</p>
<ul>
    <li>NetBeans 6.5 国内本地下载：<br />
    <a href="http://zh-cn.netbeans.org/download/6.5/ml/">http://zh-cn.netbeans.org/download/6.5/ml/</a></li>
    <li>查看 NetBeans 6.5 发行信息：<br />
    <a href="http://zh-cn.netbeans.org/community/releases/65/index.html">http://zh-cn.netbeans.org/community/releases/65/index.html</a></li>
    <li>JDK 1.6 Update 10 本地下载：<br />
    <a href="http://developers.sun.com.cn/download/java_se.html">http://developers.sun.com.cn/download/java_se.html</a></li>
</ul>
<img src ="http://www.blogjava.net/jhx800/aggbug/243632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-12-01 09:50 <a href="http://www.blogjava.net/jhx800/archive/2008/12/01/243632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>http://support.apple.com/downloads/Mac_OS_X_10_5_3_Update</title><link>http://www.blogjava.net/jhx800/archive/2008/11/28/243280.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Fri, 28 Nov 2008 08:35:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/11/28/243280.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/243280.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/11/28/243280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/243280.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/243280.html</trackback:ping><description><![CDATA[<p><font style="background-color: #fbf7eb"><a href="http://support.apple.com/downloads/Mac_OS_X_10_5_3_Update">http://support.apple.com/downloads/Mac_OS_X_10_5_3_Update</a></font> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font style="background-color: #fbf7eb"><a href="http://download.macwind.com/Maya2008_osx.zip">http://download.macwind.com/Maya2008_osx.zip</a></font></p>
<p><font style="background-color: #fbf7eb"></font>&nbsp;</p>
<p><font style="background-color: #fbf7eb"></font>&nbsp;</p>
<p><font style="background-color: #fbf7eb">http://hot.yikuai.com/info_61376.html</font></p>
<img src ="http://www.blogjava.net/jhx800/aggbug/243280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-11-28 16:35 <a href="http://www.blogjava.net/jhx800/archive/2008/11/28/243280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>seam 命令</title><link>http://www.blogjava.net/jhx800/archive/2008/11/27/243043.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Thu, 27 Nov 2008 09:27:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/11/27/243043.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/243043.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/11/27/243043.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/243043.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/243043.html</trackback:ping><description><![CDATA[<p>首先，我们需要根据现有的开发环境对seam-gen进行配置：JBoss AS安装目录、Eclipse workspace及数据库连接。这些都很容易，只要敲入： </p>
<pre class="programlisting">cd jboss-seam-2.0.x
seam setup</pre>
<p>根据弹出的提示输入开发环境的相关信息: </p>
<pre class="programlisting">C:\Projects\jboss-seam&gt;seam setup
Buildfile: build.xml
setup:
[echo] Welcome to seam-gen :-)
[input] Enter your Java project workspace [C:/Projects]
[input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.0.GA]
[input] Enter the project name [myproject]
helloworld
[input] Is this project deployed as an EAR (with EJB components) or a WAR (with no EJB support) [ear] (ear,war,)
[input] Enter the Java package name for your session beans [com.mydomain.helloworld]
org.jboss.helloworld
[input] Enter the Java package name for your entity beans [org.jboss.helloworld]
[input] Enter the Java package name for your test cases [org.jboss.helloworld.test]
[input] What kind of database are you using? [hsql] (hsql,mysql,oracle,postgres,mssql,db2,sybase,)
mysql
[input] Enter the Hibernate dialect for your database [org.hibernate.dialect.MySQLDialect]
[input] Enter the filesystem path to the JDBC driver jar [lib/hsqldb.jar]
../../mysql-connector.jar
[input] Enter JDBC driver class for your database [com.mysql.jdbc.Driver]
[input] Enter the JDBC URL for your database [jdbc:mysql:///test]
[input] Enter database username [sa]
gavin
[input] Enter database password []
[input] skipping input as property hibernate.default_schema.new has already been set.
[input] Enter the database catalog name (it is OK to leave this blank) []
[input] Are you working with tables that already exist in the database? [n] (y,n,)
y
[input] Do you want to drop and recreate the database tables and data in import.sql each time you deploy? [n] (y,n,)
n
[propertyfile] Creating new property file: C:\Projects\jboss-seam\seam-gen\build.properties
[echo] Installing JDBC driver jar to JBoss server
[echo] Type 'seam new-project' to create the new project
BUILD SUCCESSFUL
Total time: 1 minute 17 seconds
C:\Projects\jboss-seam&gt;</pre>
<p>该工具提供了相应的默认值，因此你可以直接按Enter键。 </p>
<p>最重要的是你要对EAR部署还是WAR部署进行选择。EAR项目支持EJB 3.0 并需要Java EE 5。而WAR包不支持EJB 3.0，但可在J2EE环境中部署。 另外WAR也更较简单，便于理解。假若你已安装了EJB3 profile，那你就用<tt class="literal">ear</tt>好了，否则，就只好用 <tt class="literal">war</tt>。 在此假设我们选择了EAR部署，当然此教程也适用于WAR部署。 </p>
<p>如果你手上有现成的数据模型，请确保你已输入现有数据库的表名。 </p>
<p>这些设置保存在 <tt class="literal">seam-gen/build.properties</tt> 文件中，但你可通过运行 <tt class="literal">seam setup</tt> 来再次修改。 </p>
<p>现在我们就可以在Eclipse workspace目录中创建一个新的项目，只需输入： </p>
<pre class="programlisting">seam new-project</pre>
<pre class="programlisting">C:\Projects\jboss-seam&gt;seam new-project
Buildfile: build.xml
validate-workspace:
validate-project:
copy-lib:
[echo] Copying project jars ...
[copy] Copying 58 files to C:\Projects\helloworld\lib
[copy] Copying 9 files to C:\Projects\helloworld\embedded-ejb
file-copy-war:
file-copy-ear:
[echo] Copying resources needed for EAR deployment to the C:\Projects\helloworld/resources directory...
new-project:
[echo] A new Seam project named 'helloworld' was created in the C:\Projects directory
[echo] Type 'seam explode' and go to http://localhost:8080/helloworld
[echo] Eclipse Users: Add the project into Eclipse using File &gt; New &gt; Project and select General &gt; Project (not Java Project)
[echo] NetBeans Users: Open the project in NetBeans
BUILD SUCCESSFUL
Total time: 7 seconds
C:\Projects\jboss-seam&gt;</pre>
<p>这组操作复制了Seam jar文件及相应的jar文件与JDBC驱动jar到新建的Eclipse项目中，并生成了所需的源文件及其配置文件、一个模板文件和样式文件，及相应的Eclipse元数据及Ant构建脚本。 只要你依此操作 <tt class="literal">New -&gt; Project... -&gt; General -&gt; Project -&gt; Next</tt>，输入<tt class="literal">Project name</tt> （此例为<tt class="literal">helloworld</tt>），并接着点击 <tt class="literal">Finish</tt>，就可将Eclipse项目自动部署到JBoss AS分解式的（exploded）目录结构中，请不要在新项目向导中选择 <tt class="literal">Java Project</tt>。 </p>
<p>若Eclipse中的默认的JDK不是Java SE 5 或Java SE 6，你就得通过 <tt class="literal">Project -&gt; Properties -&gt; Java Compiler</tt> 来选择与Java SE 5 兼容的JDK。 </p>
<p>另外，可在Eclipse之外输入 <tt class="literal">seam explode</tt> 来部署项目。 </p>
<p>在 <tt class="literal">http://localhost:8080/helloworld</tt> 中查看此应用的首页。 <tt class="literal">view/home.xhtml</tt> 是个使用 <tt class="literal">view/layout/template.xhtml</tt> 模板生成的Facelets 页面，试着在Eclipse中编辑此页面或该模板，并在浏览器中刷新页面，立即看到结果。 </p>
<p>别被在项目目录中的如此多的XML配置文件给吓晕了。那都是些标准的Java EE的东西，它们只需生成一次就不用再去理会了。 在所有的Seam项目中，90%的配置内容都是一样的（这些可由seam-gen来帮我们完成）。 </p>
<p>新生成的项目包含了三个数据库及持久化配置文件。<tt class="literal">jboss-beans.xml</tt>、<tt class="literal">persistence-test.xml</tt> 及 <tt class="literal">import-test.sql</tt> 文件是用在当TestNG对HSQLDB进行单元测试时。 在 <tt class="literal">import-test.sql</tt> 中的数据库Schema及其测试数据总是在测试前就已转入数据库中。 <tt class="literal">myproject-dev-ds.xml</tt>、<tt class="literal">persistence-dev.xml</tt> 及 <tt class="literal">import-dev.sql</tt> 文件是在部署应用到开发数据库时使用的。 数据库schema是否可在部署时自动导出，取决于你是否在设置seam-gen环境时配置了已存在的数据库。 <tt class="literal">myproject-prod-ds.xml</tt>、<tt class="literal">persistence-prod.xml</tt> 及 <tt class="literal">import-prod.sql</tt> 文件是在部署应用到生产数据库时使用的。在部署时数据库schema并不自动导出。 </p>
<div class="section" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="d0e2701"></a>2.3.&nbsp;创建新动作</h2>
</div>
</div>
<div></div>
</div>
<p>若你熟知传统的action-style Web框架，你或许想知道在Java中如何来创建无状态action方法的简单Web页面。如果你输入： </p>
<pre class="programlisting">seam new-action</pre>
<p>则Seam将弹出一些信息并为你的项目生成新的Facelets页面及Seam组件。 </p>
<pre class="programlisting">C:\Projects\jboss-seam&gt;seam new-action
Buildfile: build.xml
validate-workspace:
validate-project:
action-input:
[input] Enter the Seam component name
ping
[input] Enter the local interface name [Ping]
[input] Enter the bean class name [PingBean]
[input] Enter the action method name [ping]
[input] Enter the page name [ping]
setup-filters:
new-action:
[echo] Creating a new stateless session bean component with an action method
[copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld
[copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld
[copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld\test
[copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld\test
[copy] Copying 1 file to C:\Projects\helloworld\view
[echo] Type 'seam restart' and go to http://localhost:8080/helloworld/ping.seam
BUILD SUCCESSFUL
Total time: 13 seconds
C:\Projects\jboss-seam&gt;</pre>
<p>新增Seam组件后，我们需要重启分解式目录部署（exploded directory deployment）。 输入<tt class="literal">seam restart</tt>，或在Eclipse中已生成项目的 <tt class="literal">build.xml</tt> 中运行 <tt class="literal">restart</tt> target就可完成。 另一种方式是在Eclipse中通过编辑 <tt class="literal">resources/META-INF/application.xml</tt> 文件来强制重启。 <span class="emphasis"><em>请注意，在每次修改应用程序时并不需要重启JBoss。</em></span> </p>
<p>试着在浏览器中输入 <tt class="literal">http://localhost:8080/helloworld/ping.seam</tt> 地址并点击按钮，看看发生了什么。 在项目的 <tt class="literal">src</tt> 目录中可看到完成此动作的源代码。 试着在 <tt class="literal">ping()</tt> 方法中设置个断点，再次点击按钮，又发生了什么？ </p>
<p>最后，在测试包中找到 <tt class="literal">PingTest.xml</tt> 文件，并用Eclipse的TestNG插件来运行测试。 此外，还可用 <tt class="literal">seam test</tt> 或生成的build文件中的 <tt class="literal">test</tt> target来运行测试。 </p>
</div>
<div class="section" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="d0e2751"></a>2.4.&nbsp;创建有动作的表单（form）</h2>
</div>
</div>
<div></div>
</div>
<p>下一步就是来创建表单了。请输入： </p>
<pre class="programlisting">seam new-form</pre>
<pre class="programlisting">C:\Projects\jboss-seam&gt;seam new-form
Buildfile: C:\Projects\jboss-seam\seam-gen\build.xml
validate-workspace:
validate-project:
action-input:
[input] Enter the Seam component name
hello
[input] Enter the local interface name [Hello]
[input] Enter the bean class name [HelloBean]
[input] Enter the action method name [hello]
[input] Enter the page name [hello]
setup-filters:
new-form:
[echo] Creating a new stateful session bean component with an action method
[copy] Copying 1 file to C:\Projects\hello\src\com\hello
[copy] Copying 1 file to C:\Projects\hello\src\com\hello
[copy] Copying 1 file to C:\Projects\hello\src\com\hello\test
[copy] Copying 1 file to C:\Projects\hello\view
[copy] Copying 1 file to C:\Projects\hello\src\com\hello\test
[echo] Type 'seam restart' and go to http://localhost:8080/hello/hello.seam
BUILD SUCCESSFUL
Total time: 5 seconds
C:\Projects\jboss-seam&gt;</pre>
<p>再次重启应用程序，并在浏览器中输入 <tt class="literal">http://localhost:8080/helloworld/hello.seam</tt> 就可看到结果了。 接着看下所生成的代码，并运行测试。试着给表单加入一些字段及Seam组件（记着在每次更改Java代码时重新部署）。 </p>
</div>
<div class="section" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="d0e2765"></a>2.5.&nbsp;从现有数据库生成应用程序</h2>
</div>
</div>
<div></div>
</div>
<p>在数据库中手工创建一些表。（如果你需要切换不同的数据库，只需再次运行 <tt class="literal">seam setup</tt> 即可。）现请输入： </p>
<pre class="programlisting">seam generate-entities</pre>
<p>接着重新部署，并在浏览器中输入 <tt class="literal">http://localhost:8080/helloworld</tt> 就可看到结果了。 你可以试着浏览数据库，编辑现有的对象，并创建新的对象。如果你看下所生成的代码，你可能会对如此简单的代码感到惊讶。 让开发人员，尤其是那些不甘于受Seam-gen摆布的开发人员，简单地手工编写数据访问代码，是Seam的设计目标之一。 </p>
</div>
<div class="section" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="d0e2780"></a>2.6.&nbsp;将应用部署为EAR</h2>
</div>
</div>
<div></div>
</div>
<p>最后，我们想知道能否用标准的Java EE包来部署应用。首先，通过运行 <tt class="literal">seam unexplode</tt> 来移走分解式目录（exploded directory)。 在命令行中输入 <tt class="literal">seam deploy</tt> 或运行生成的Build脚本文件中的 <tt class="literal">deploy</tt> target就可完成EAR的部署，用 <tt class="literal">seam undeploy</tt> 命令或运行 <tt class="literal">undeploy</tt> 目标可卸下EAR。 </p>
<p>默认情况下，应用程序会用 <span class="emphasis"><em>dev profile</em></span> 来部署，EAR将包含<tt class="literal">persistence-dev.xml</tt>及<tt class="literal">import-dev.sql</tt>文件，<tt class="literal">myproject-dev-ds.xml</tt> 文件也会被部署。 通过输入以下的命令你就可以更改profile, 并可使用 <span class="emphasis"><em>prod profile</em></span>： </p>
<pre class="programlisting">seam -Dprofile=prod deploy</pre>
<p>你甚至可以给你的应用程序定义新的部署profile，只需在项目中加入合适的文件， 例如：<tt class="literal">persistence-staging.xml</tt>、<tt class="literal">import-staging.sql</tt> 及 <tt class="literal">myproject-staging-ds.xml</tt> — 并选择使用了 <tt class="literal">-Dprofile=staging</tt> 名字的profile。 </p>
</div>
<div class="section" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="gettingstarted-hotdeployment"></a>2.7.&nbsp;Seam与增量热部署</h2>
</div>
</div>
<div></div>
</div>
<p>将Seam应用部署成exploded目录的好处是，你能在开发时得到增量热部署的支持。 你只需在 <tt class="literal">components.xml</tt> 中添加这一行来启用Seam和Facelet中的debug模式即可: </p>
<pre class="programlisting">&lt;core:init debug="true"/&gt;</pre>
<p>这样一来，重新部署以下文件时就不一定要完全地重启web应用了： </p>
<div class="itemizedlist">
<ul type="disc">
    <li>
    <p>任意Facelet页面</p>
    <li>
    <p>任意 <tt class="literal">pages.xml</tt> 文件</p>
    </li>
</ul>
</div>
<p>若想对Java代码进行变更，就需要完全的应用重启。 （在JBoss中，对于EAR部署，这需要用touch命令改变顶层的部署描述文件：对于EAR部署，则是<tt class="literal">application.xml</tt>，而对于WAR部署，则是<tt class="literal">web.xml</tt> 。） </p>
<p>但你真正想加快编辑/编译/测试的流程，Seam支持对JavaBean组件进行增量式重部署。 为了用上此功能，你必须把JavaBean组件部署到 <tt class="literal">WEB-INF/dev</tt> 目录中，以便它们能被特殊的Seam类加载器加载，而不是WAR或EAR类加载器。 </p>
<p>请注意以下的限制： </p>
<div class="itemizedlist">
<ul type="disc">
    <li>
    <p>必须是JavaBean组件，而不能是EJB3 Beans（此限制正在解决中） </p>
    <li>
    <p>实体Bean不可热部署 </p>
    <li>
    <p>通过 <tt class="literal">components.xml</tt> 部署的组件可能无法热部署 </p>
    <li>
    <p>在 <tt class="literal">WEB-INF/dev</tt> 之外部署的任何类都无法访问可热部署的组件 </p>
    <li>
    <p>须启用Seam的debug模式 </p>
    </li>
</ul>
</div>
<p>如果你用Seam-gen创建WAR项目，增量热部署对于src/action目录下的类是直接可用的，但是对于EAR项目不行。 </p>
</div>
<img src ="http://www.blogjava.net/jhx800/aggbug/243043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-11-27 17:27 <a href="http://www.blogjava.net/jhx800/archive/2008/11/27/243043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring配置文件的12种写法，自己观摩</title><link>http://www.blogjava.net/jhx800/archive/2008/11/26/242797.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Wed, 26 Nov 2008 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/11/26/242797.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/242797.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/11/26/242797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/242797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/242797.html</trackback:ping><description><![CDATA[<p>Spring是一个强大的Java应用框架，它广泛地应用于Java应用程序中，为Plain Old Java Objects（POJO）提供企业级服务。Spring利用依赖注入机制来简化工作，同时提高可测试性。其配置文件（通常是XML格式）中指定了 Spring bean、依赖性以及bean所需的服务。但是，这些XML配置文件既冗长又不实用。对于需要定义大量Spring bean的大型项目来说，它们难以阅读和管理。<br />
在本文中，我将向您展示12种用于Spring XML配置的最佳实践。其中的一些实践与其说是最佳实践，倒不如说是必要实践。注意，其他因素（如域模型的设置）也可能影响XML的配置，但是本文重点研究XML配置的可读性和可管理性。 </p>
<p><font size="4"><strong>1。避免使用自动绑定（autowiring）功能</strong></font><br />
Spring 可以通过bean类的自省自动绑定依赖性，所以不必显式指明bean的属性和构造函数。Bean属性可以通过属性名称或类型匹配来实现自动绑定。构造函数 通过类型匹配来实现自动绑定。甚至可以指定自动检测autowiring模式，它可以引导Spring选择一种适当的运行机制。先来看看下面的一个例子：<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="orderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.OrderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autowire="byName"/&gt;<br />
OrderService 类的属性名在容器中用于匹配bean实例。自动绑定可能会节省一些键入工作量并减少混乱。但是在现实项目中不应该使用这种方式，因为它牺牲了配置的可读性 和可维护性。许多指南和介绍中大肆吹捧自动绑定是Spring的一项极好的特性，而没有提到这一特性所带来的牺牲。依我来看，这就像Spring中的对象 池（object－pooling），更大程度上只是宣传的噱头。对于精简XML配置文件来说，它是一个好办法，但它实际上增加了复杂性，尤其是在运行包 含大量类声明的项目时。虽然Spring允许混合使用自动绑定和显式绑定，但这会使XML配置更加晦涩难懂。 </p>
<p><font size="4"><strong>2.使用命名约定</strong></font><br />
该 原则对于Java编码也一样适用。在项目中使用清晰的、描述性的、一致的命名约定将非常有利于开发人员理解XML配置。例如，对于bean ID，可以按照Java类字段名约定来命名它。OrderServiceDAO实例的bean ID应该命名为orderServiceDAO。对于大型项目，可以在bean ID前面加上包名作为前缀。 <font color="#ffffff"></font></p>
<p><font size="4"><strong>3. 使用简洁形式</strong></font><br />
简洁形式避免了冗长，因为它将属性值和引用从子元素中移入属性中。例如下面的例子：<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="orderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.OrderService"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="companyName"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;lizjason&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="orderDAO"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/constructor-arg&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br />
可以使用简洁形式将上述代码重写为：<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="orderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.OrderService"&gt;
<div class="Bve872"></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="companyName"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="lizjason"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg ref="orderDAO"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt; <font color="#ffffff"></font>
<p>&nbsp;</p>
<p>简洁形式自1.2版本起就可以使用。注意，对于&lt;ref local="..."&gt;，没有简洁形式。<br />
简洁形式不但可以节约键入工作量，而且可以使XML配置文件更清晰。当一个配置文件中定义了大量的类时，它可以显著提高可读性。 <font color="#ffffff"></font></p>
<p><font size="4"><strong>4. 对于构造函数参数匹配，类型比下标好</strong></font><br />
当构造函数含有一个以上同种类型的参数，或者属性值的标签已经被占用时，Spring允许使用从0开始的下标来避免混淆。例如：<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="billingService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.BillingService"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg index="0" value="lizjason"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg index="1" value="100"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br />
利用type属性来编写会更好一些，如下：<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="billingService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.BillingService"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg type="java.lang.String"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="lizjason"/&gt;
<div class="Bve872"></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg type="int" value="100"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;
<p class="Bve872"></p>
<p>&nbsp;</p>
<p>使用index可以减少一些代码，但是与type属性相比，它更易于出错且难于阅读。只有在构造函数参数不明确的时候，才应该使用index。
<p class="Bve872"></p>
<p>&nbsp;</p>
<p><font size="4"><strong>5. 尽可能重用已定义的bean</strong></font><br />
Spring 提供了一种类似于继承的机制来减少配置信息的复制并简化XML配置。定义一个子类，它就可以从父类那里继承配置信息，而父类实际上成为子类的一个模板。这 就是大型项目中所谓的重用。只需在父类bean中设置abstract=true，然后在子bean中指定parent引用。例如：<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="abstractService" abstract="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.AbstractService"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="companyName"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="lizjason"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;
<p class="Bve872"></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;bean id="shippingService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parent="abstractService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.ShippingService"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="shippedBy" value="lizjason"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;
<p class="Bve872"></p>
<p>&nbsp;</p>
<p>ShippingService类从abstractService类继承companyName属性的值——lizjason。如果一个bean没有指定类或工厂方法，那么这个bean便是抽象的。
<p class="Bve872"></p>
<p>&nbsp;</p>
<p><font size="4"><strong>6. 在导入时，首选通过ApplicationContext来汇编bean定义</strong></font><br />
像Ant脚本中的导入一样，Spring的import元素对于汇编模块化的bean定义来说是很有用的。例如：<br />
&nbsp;&nbsp;&nbsp; &lt;beans&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;import resource="billingServices.xml"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;import resource="shippingServices.xml"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean id="orderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.OrderService"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;beans&gt; </p>
<p>然 而，相对于使用import在XML配置中进行预汇编，通过ApplicationContext来配置这些bean则显得更加灵活。使用 ApplicationContext的话，XML配置也更易于管理。可以向ApplictionContext构造函数传递一组bean定义，如下：<br />
&nbsp;&nbsp;&nbsp; String[] serviceResources =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"orderServices.xml",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "billingServices.xml",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "shippingServices.xml"};<br />
&nbsp;&nbsp;&nbsp; ApplicationContext orderServiceContext = new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ClassPathXmlApplicationContext(serviceResources);
<p class="Bve872"></p>
<p>&nbsp;</p>
<p><font size="4"><strong>7. 使用id作为bean标识符</strong></font><br />
可 以指定一个id或名称来作为bean标识符。虽然使用id不能提高可读性，但是它可以利用XML分析程序来对bean引用进行验证。如果由于XML IDREF的约束而不能使用某个id，那么可以使用名称来作为bean的标识符。XML IDREF的约束是：id必须以字母（或者XML规范中定义的标点符号）开头，后面是字母、数字、连字符、下划线、冒号或句点。实际上，很少会遇到XML IDREF约束问题。 </p>
<p><font size="4"><strong>8. 在开发阶段使用依赖性检查（dependency-check）</strong></font><br />
可以在bean定义中为dependency-check属性设置一个非默认值，比如simple、objects或all，以便容器进行依赖性检查。当需要显式或通过自动绑定设置bean的全部属性（或某类属性）时，依赖性检查便显得很有用。<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="orderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.OrderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dependency-check="objects"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="companyName"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="lizjason"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg ref="orderDAO"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;
<div class="Bve872"></div>
<p>&nbsp;</p>
<p>在这个例子中，容器确保为orderService bean设置的属性不是primitives或collections。也可以为所有的bean设置默认依赖性检查，但是我们很少这样做，因为有些bean属性根本就不必设置。
<div class="Bve872"></div>
<p>&nbsp;</p>
<p><font size="4"><strong>9. 为每个配置文件添加首部注释</strong></font><br />
最好使用描述性的id和名称来取代XML配置文件中的内置注释。此外，添加一个配置文件首部也很有用，它可以概述文件中所定义的bean。可以选择将描述添加到description标签中。例如：<br />
&nbsp;&nbsp;&nbsp; &lt;beans&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;description&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This file defines billing service<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; related beans and it depends on<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baseServices.xml,which provides<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; service bean templates...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/description&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp; &lt;/beans&gt;<br />
使用description标签的一个好处是可以轻松地利用工具从标签中选获取描述内容。 </p>
<p><strong>10. 对于更改，团队成员要积极交流</strong><br />
在重构Java代码时，需要随时更新配置文件并通知团队成员。XML配置文件也是代码，它们是应用程序的至关重要的部分，但是它们难于阅读和维护。大部分情况下，需要同时阅读XML配置文件和运行中的Java代码。 </p>
<p><strong>11. Setter注入优于构造函数注入</strong><br />
Spring提供了3种类型的依赖注入：构造函数注入（constructor injection）、setter注入（setter injection）和方法注入（method injection）。我们一般只用前两种。<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="orderService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.OrderService"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constructor-arg ref="orderDAO"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;
<p class="Bve872"></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;bean id="billingService"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.lizjason.spring.BillingService"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="billingDAO"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ref="billingDAO"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt; <font color="#ffffff"></font></p>
<p>在 这个例子中，orderService类使用的是构造函数注入，而BillingService类使用的是setter注入。构造函数注入可以确保 bean不会在一个非法状态下被创建，但是setter注入更加灵活且更易于管理，尤其是在类包含许多属性并且其中一些可选的情况下。 <font color="#ffffff"></font></p>
<p><strong>12. 不要滥用依赖注入</strong><br />
最 后一点，Spring ApplicationContext可以为您创建Java对象，但并不是所有的Java对象都应通过依赖注入来创建。例如，全局对象不应该通过 ApplicationContext来创建。Spring是一个很棒的框架，但是，就可读性和易管理性而言，如果定义了大量bean，基于XML的配置 就可能成为问题。过度使用依赖注入会使XML配置变得复杂且臃肿。要知道，借助于功能强大的IDE（如Eclipse和IntelliJ），Java代码 比XML文件更加易读、易维护、易管理。
<p class="Bve872"></p>
<p>&nbsp;</p>
<p><strong>结束语</strong><br />
XML是通用的Spring配置方式。但如果定 义了大量bean，基于XML的配置就会变得冗长而不实用。Spring提供了丰富的配置选项，恰当地利用其中的选项可以使XML配置更清晰，但是，有些 选项（如autowiring）往往会降低配置文件的可读性和可维护性。遵循本文中所描述的最佳实践，将有助于您创建出清晰易读的XML配置文件。 <font color="#ffffff"></font></p>
<br />
<img src ="http://www.blogjava.net/jhx800/aggbug/242797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-11-26 15:47 <a href="http://www.blogjava.net/jhx800/archive/2008/11/26/242797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>十大web扫描工具</title><link>http://www.blogjava.net/jhx800/archive/2008/11/22/242015.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Sat, 22 Nov 2008 12:36:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/11/22/242015.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/242015.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/11/22/242015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/242015.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/242015.html</trackback:ping><description><![CDATA[<strong>
<p>注：本文部分来自IT技术_IT专家网<br />
</p>
<p>http://hi.baidu.com/baiker2008<br />
<br />
<br />
1. Nikto</strong></p>
<p><strong><a href="http://www.3800hk.com/Soft/zhly/2349.html">http://www.3800hk.com/Soft/zhly/2349.html</a></strong></p>
<p>　　这是一个开源的Web服务器扫描程序，它可以对Web服务器的多种项目(包括3500个潜在的危险文件/CGI，以及超过900个服务器版本，还有250多个服务器上的版本特定问题)进行全面的测试。其扫描项目和插件经常更新并且可以自动更新(如果需要的话)。</p>
<p>　　Nikto可以在尽可能短的周期内测试你的Web服务器，这在其日志文件中相当明显。不过，如果你想试验一下(或者测试你的IDS系统)，它也可以支持LibWhisker的反IDS方法。</p>
<p>　　不过，并非每一次检查都可以找出一个安全问题，虽然多数情况下是这样的。有一些项目是仅提供信息(&#8220;info only&#8221; )类型的检查，这种检查可以查找一些并不存在安全漏洞的项目，不过Web管理员或安全工程师们并不知道。这些项目通常都可以恰当地标记出来。为我们省去不少麻烦。</p>
<p>　　<strong>2. Paros proxy</strong></p>
<p>&nbsp;</p>
<p>　　这是一个对Web应用程序的漏洞进行评估的代理程序，即一个基于Java的web代理程序，可以评估Web应用程序的漏洞。它支持动态地编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个Web通信记录程序，Web圈套程序(spider)，hash 计算器，还有一个可以测试常见的Web应用程序攻击(如SQL注入式攻击和跨站脚本攻击)的扫描器。</p>
<p>　　<strong>3. WebScarab:</strong></p>
<p>　　它可以分析使用HTTP 和HTTPS协议进行通信的应用程序，WebScarab可以用最简单地形式记录它观察的会话，并允许操作人员以各种方式观查会话。如果你需要观察一个基于HTTP(S)应用程序的运行状态，那么WebScarabi就可以满足你这种需要。不管是帮助开发人员调试其它方面的难题，还是允许安全专业人员识别漏洞，它都是一款不错的工具。</p>
<p>　　<strong>4. WebInspect：</strong></p>
<p>　　这是一款强大的Web应用程序扫描程序。SPI Dynamics的这款应用程序安全评估工具有助于确认Web应用中已知的和未知的漏洞。它还可以检查一个Web服务器是否正确配置，并会尝试一些常见的Web攻击，如参数注入、跨站脚本、目录遍历攻击(directory traversal)等等。</p>
<p>　　<strong>5. Whisker/libwhisker :</strong></p>
<p>　　Libwhisker是一个Perla模块，适合于HTTP测试。它可以针对许多已知的安全漏洞，测试HTTP服务器，特别是检测危险CGI的存在。Whisker是一个使用libwhisker的扫描程序。</p>
<p>　　<strong>6. Burpsuite：</strong></p>
<p>　　这是一个可以用于攻击Web应用程序的集成平台。Burp套件允许一个攻击者将人工的和自动的技术结合起来，以列举、分析、攻击Web应用程序，或利用这些程序的漏洞。各种各样的burp工具协同工作，共享信息，并允许将一种工具发现的漏洞形成另外一种工具的基础。</p>
<p>　　<strong>7. Wikto:</strong></p>
<p>　　可以说这是一个Web服务器评估工具，它可以检查Web服务器中的漏洞，并提供与Nikto一样的很多功能，但增加了许多有趣的功能部分，如后端miner和紧密的Google集成。它为MS.NET环境编写，但用户需要注册才能下载其二进制文件和源代码。</p>
<p><strong>8. Acunetix Web Vulnerability Scanner :</strong></p>
<p>　　这是一款商业级的Web漏洞扫描程序，它可以检查Web应用程序中的漏洞，如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面，并且能够创建专业级的Web站点安全审核报告。</p>
<p>　　<strong>9. Watchfire AppScan：</strong></p>
<p>　　这也是一款商业类的Web漏洞扫描程序。AppScan在应用程序的整个开发周期都提供安全测试，从而测试简化了部件测试和开发早期的安全保证。它可以扫描许多常见的漏洞，如跨站脚本攻击、HTTP响应拆分漏洞、参数篡改、隐式字段处理、后门/调试选项、缓冲区溢出等等。</p>
<p>　　<strong>10. N-Stealth：</strong></p>
<p>　　N-Stealth是一款商业级的Web服务器安全扫描程序。它比一些免费的Web扫描程序，如Whisker/libwhisker、 Nikto等的升级频率更高，它宣称含有&#8220;30000个漏洞和漏洞程序&#8221;以及&#8220;每天增加大量的漏洞检查&#8221;，不过这种说法令人质疑。还要注意，实际上所有通用的VA工具，如Nessus, ISS Internet Scanner, Retina, SAINT, Sara等都包含Web 扫描部件。(虽然这些工具并非总能保持软件更新，也不一定很灵活。)N-Stealth主要为Windows平台提供扫描，但并不提供源代码。</p>
<img src ="http://www.blogjava.net/jhx800/aggbug/242015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-11-22 20:36 <a href="http://www.blogjava.net/jhx800/archive/2008/11/22/242015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mandriva 2009 google 应用</title><link>http://www.blogjava.net/jhx800/archive/2008/11/22/241920.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Fri, 21 Nov 2008 16:26:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/11/22/241920.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/241920.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/11/22/241920.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/241920.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/241920.html</trackback:ping><description><![CDATA[<h3><a name="Mandriva_2009">Mandriva 2009</a></h3>
<p><a name="Mandriva_2009">If you are using Mandriva 2009, you need install following mandatory packages: </a></p>
<ul>
    <li><a name="Mandriva_2009">gcc-c++ </a></li>
    <li><a name="Mandriva_2009">zip </a></li>
    <li><a name="Mandriva_2009">flex </a></li>
    <li><a name="Mandriva_2009">desktop-file-utils </a></li>
    <li><a name="Mandriva_2009">shared-mime-info </a></li>
    <li><a name="Mandriva_2009">libltdl3-devel </a></li>
    <li><a name="Mandriva_2009">zlib1-devel </a></li>
    <li><a name="Mandriva_2009">libxml2-devel </a></li>
    <li><a name="Mandriva_2009">libdbus-1-devel </a></li>
    <li><a name="Mandriva_2009">libnm_util-devel </a></li>
    <li><a name="Mandriva_2009">libstartup-notification-1-devel </a></li>
    <li><a name="Mandriva_2009">libgstreamer0.10-devel </a></li>
    <li><a name="Mandriva_2009">libgstreamer-plugins-base0.10-devel </a></li>
    <li><a name="Mandriva_2009">libxulrunner-devel (Mandatory for GTK version, optional for Qt version) </a></li>
</ul>
<p><a name="Mandriva_2009">If you want to use GUI and sidebar based on GTK library, you need following packages: </a></p>
<ul>
    <li><a name="Mandriva_2009">librsvg2-devel </a></li>
    <li><a name="Mandriva_2009">libcurl-devel </a></li>
    <li><a name="Mandriva_2009">libcairo-devel </a></li>
    <li><a name="Mandriva_2009">libgtk+2.0_0-devel </a></li>
</ul>
<p><a name="Mandriva_2009">If you want to use GUI based on QT library, you need following packages: </a></p>
<ul>
    <li><a name="Mandriva_2009">libqt4-devel </a></li>
</ul>
<p><a name="Mandriva_2009">If you want to build source code checked out from svn trunk, you also need following packages: </a></p>
<ul>
    <li><a name="Mandriva_2009">autoconf </a></li>
    <li><a name="Mandriva_2009">automake </a></li>
    <li><a name="Mandriva_2009">libtool </a></li>
</ul>
<p><a name="Mandriva_2009">You can use urpmi to install these packages, for example: </a></p>
<pre><a name="Mandriva_2009">#urpmi gcc-c++ zip flex desktop-file-utils shared-mime-info <br />
libltdl3-devel zlib1-devel libxml2-devel libdbus-1-devel libnm_util-devel <br />
libstartup-notification-1-devel libgstreamer0.10-devel libgstreamer-plugins-base0.10-devel <br />
libxulrunner-devel librsvg2-devel libcurl-devel libcairo-devel libgtk+2.0_0-devel <br />
libqt4-devel autoconf automake libtool</a></pre>
<h2><a name="Prepare_build_system">Prepare build system</a></h2>
<p><a name="Prepare_build_system">There
are two different build systems can be used to build this project,
autoconf/automake and cmake. Though cmake build system has been
included in official source package since 0.10.3, it's still in
experimental stage. So autoconf/automake is still the best choice for
most users. </a></p>
<p><a name="Prepare_build_system">If you want to
try out cmake build system, you need install cmake version 2.4 or above
first. Most distributions ship cmake package nowadays. </a></p>
<p><a name="Prepare_build_system">If
you want to build source code checked out from svn trunk, you need run
autotools/bootstrap.sh script before starting build. For example: </a></p>
<pre><a name="Prepare_build_system">$ svn checkout http://google-gadgets-for-linux.googlecode.com/svn/trunk/ ggl-trunk<br />
<br />
$ cd ggl-trunk<br />
<br />
$ sh autotools/bootstrap.sh</a></pre>
<h1><a name="Build">Build</a></h1>
<p><a name="Build">autoconf/automake
based build system is highly recommended for normal users. cmake build
system usually uses less time to build this project, but may still
contain some problems. </a></p>
<p><a name="Build">Both build systems
support out-of-tree build, that is, the build task can be done in a
separated directory instead of inside the source code directory. Then
you can remove all temporary files generated by build system easily
without touching the source files. This approach is highly recommended.
</a></p>
<h2><a name="Build_with_autoconf/automake">Build with autoconf/automake</a></h2>
<h3><a name="Invoke_configure_script">Invoke configure script</a></h3>
<p><a name="Invoke_configure_script">You
need run configure script to generate makefile before building. For
example, you can use following commands to perform an out-of-tree
build: </a></p>
<p><a name="Invoke_configure_script"><strong>Prepare source code:</strong> </a></p>
<pre><a name="Invoke_configure_script">$ tar jxf google-gadgets-for-linux-0.10.3.tar.bz2<br />
<br />
$ cd google-gadgets-for-linux-0.10.3</a></pre>
<p><a name="Invoke_configure_script">Or, if you want to use he bleeding-edge version: </a></p>
<pre><a name="Invoke_configure_script">$ svn checkout http://google-gadgets-for-linux.googlecode.com/svn/trunk/ ggl-trunk<br />
<br />
$ cd ggl-trunk<br />
<br />
$ sh autotools/bootstrap.sh</a></pre>
<p><a name="Invoke_configure_script"><strong>Run configure script out-of-tree:</strong> </a></p>
<pre><a name="Invoke_configure_script">$ mkdir build<br />
<br />
$ cd build<br />
<br />
$ ../configure --prefix=/usr</a></pre>
<p><a name="Invoke_configure_script">It
might take one or two minutes to run configure script, if anything goes
well, a configure summary will be displayed, such as: </a></p>
<pre><a name="Invoke_configure_script">Build options:<br />
<br />
&nbsp; Version &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "0.10.3"<br />
<br />
&nbsp; Install prefix &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/usr<br />
<br />
&nbsp; Install included libltdl &nbsp; &nbsp; &nbsp;no<br />
<br />
&nbsp; Build shared libs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Buildstatic libs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Enable debug &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;no<br />
<br />
&nbsp; Host type &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; linux<br />
<br />
&nbsp; OEM brand &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
<br />
<br />
&nbsp;Libraries:<br />
<br />
&nbsp; GTK SVG Support &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build libggadget-gtk &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;yes<br />
<br />
&nbsp; Build libggadget-qt &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build libggadget-dbus &nbsp; &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build libggadget-npapi &nbsp; &nbsp; &nbsp; &nbsp;yes<br />
<br />
<br />
<br />
&nbsp;Extensions:<br />
<br />
&nbsp; Build dbus-script-class &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build gtk-edit-element &nbsp; &nbsp; &nbsp; &nbsp;yes<br />
<br />
&nbsp; Build gtkmoz-browser-element &nbsp;yes<br />
<br />
&nbsp; Build qtwebkit-browser &nbsp; &nbsp; &nbsp; &nbsp;no<br />
<br />
&nbsp; Build gst-audio-framework &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build gst-video-element &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build gtk-system-framework &nbsp; &nbsp;yes<br />
<br />
&nbsp; Build gtk-flash-element &nbsp; &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build qt-system-framework &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build linux-system-framework &nbsp;yes<br />
<br />
&nbsp; Build smjs-script-runtime &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build qt-script-runtime &nbsp; &nbsp; &nbsp; no<br />
<br />
&nbsp; Build curl-xml-http-request &nbsp; yes<br />
<br />
&nbsp; Build qt-xml-http-request &nbsp; &nbsp; yes<br />
<br />
&nbsp; Build libxml2-xml-parser &nbsp; &nbsp; &nbsp;yes<br />
<br />
<br />
<br />
&nbsp;Hosts:<br />
<br />
&nbsp; Build gtk host &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;yes<br />
<br />
&nbsp; Build qt host &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yes</a></pre>
<p><a name="Invoke_configure_script">The
result might be different on different system. If some dependency
libraries are missing, corresponding build option might be set to "no".
For example, above result shows that my QT library may be too old to
support qtwebkit-browser and qt-script-runtime extensions. </a></p>
<p><a name="Invoke_configure_script">Among
above results, The most important are "Build gtk host" and "Build qt
host", if non of these options are "yes", then means some mandatory
dependent packages might be missing. You need at least one host to be
built. </a></p>
<p><a name="Invoke_configure_script">The "--prefix"
parameter of configure script controls the target directory where you
want to install the project. Usually "/usr" is the best choice for
normal users. However, default value is "/usr/local", and on some
systems, it might not work properly. So "--prefix=/usr" is highly
recommended for all users. </a></p>
<p><a name="Invoke_configure_script">Besides "--prefix" parameter, there are some other parameters you might want to use: </a></p>
<ul>
    <li><a name="Invoke_configure_script">--enable-debug </a></li>
</ul>
<blockquote><a name="Invoke_configure_script">It
enables debug build, which will generate slower and larger binary but
suitable for debugging. This option is not recommended for normal
users. </a></blockquote>
<ul>
    <li><a name="Invoke_configure_script">--with-browser-plugins-dir </a></li>
</ul>
<blockquote><a name="Invoke_configure_script">Since 0.10.3, Google Gadgets for Linux support </a><a linkindex="34" href="http://code.google.com/apis/desktop/docs/releasenotes-v58.html" rel="nofollow">new APIs</a>
introduced in Google Desktop for Windows 5.8. The most important one is
the "Full support for Flash", that is, a desktop gadget can play a .swf
file from the internet directly. On Linux, it requires adobe flash
browser plugin. This option specifies the directory where the flash
plugin can be found. The directory might be different on different
Linux distributions, for example:
<ul>
    <li>On Ubuntu/Debian: /usr/lib/xulrunner-addons/plugins </li>
    <li>On openSUSE: /usr/lib/browser-plugins  (32bit system) or /usr/lib64/browser-plugins (64bit system) </li>
    <li>On Fedora: /usr/lib/mozilla/plugins  (32bit system) or /usr/lib64/mozilla/plugins (64bit system) </li>
</ul>
</blockquote>
<ul>
    <li>--libdir </li>
</ul>
<blockquote>Specifies
the directory to install shared libraries. The default value is
"${prefix}/lib". On 32bit Linux systems, this option can usually be
omitted. But on 64bit Linux systems, the value are different on
different systems. On Ubuntu/Debian, it has no difference between 32bit
and 64bit systems. On openSUSE and Fedora, it shall be specified
explicitly to ${prefix}/lib64, where ${prefix} is the directory
specified by --prefix parameter. For example, if you are using openSUSE
11.0 64bit, then you need use following configure command:
<pre>$ ../configure --prefix=/usr --libdir=/usr/lib64 --with-browser-plugins-dir=/usr/lib64/browser-plugins</pre>
</blockquote>
<ul>
    <li>--help </li>
</ul>
<blockquote>To display a complete lists of parameters that you can use.
</blockquote>
<img src ="http://www.blogjava.net/jhx800/aggbug/241920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-11-22 00:26 <a href="http://www.blogjava.net/jhx800/archive/2008/11/22/241920.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>adobe在线配色方案</title><link>http://www.blogjava.net/jhx800/archive/2008/11/21/241873.html</link><dc:creator>Seven</dc:creator><author>Seven</author><pubDate>Fri, 21 Nov 2008 09:12:00 GMT</pubDate><guid>http://www.blogjava.net/jhx800/archive/2008/11/21/241873.html</guid><wfw:comment>http://www.blogjava.net/jhx800/comments/241873.html</wfw:comment><comments>http://www.blogjava.net/jhx800/archive/2008/11/21/241873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhx800/comments/commentRss/241873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhx800/services/trackbacks/241873.html</trackback:ping><description><![CDATA[<font style="background-color: #fbf7eb">http://kuler.adobe.com</font>
<img src ="http://www.blogjava.net/jhx800/aggbug/241873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhx800/" target="_blank">Seven</a> 2008-11-21 17:12 <a href="http://www.blogjava.net/jhx800/archive/2008/11/21/241873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>