<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>入门讨论论坛最新讨论 - JavaEye</title>
    <description>基础知识，入门问题，简单技术问题交流和讨论版面 - Java编程，Ruby编程，微软.net，AJAX，敏捷软件开发，综合软件技术</description>
    <link>http://www.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>用java编了一个从文件中提取中英文的小东西</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://guyikun.javaeye.com">guyikun</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252919" style="color:red;">http://www.javaeye.com/topic/252919</a>&nbsp;
          发表时间: 2008年10月15日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近正在学习java的文件和流这块内容,闲着没事编了一个能从文件中提取中英文的小程序,可以用来把剧本中的中英文对照给提取出来形成单独的对白等,以前亮亮也写过类似的,主要就是用来练练手.(^_^)<br />&nbsp;&nbsp;&nbsp; 源文件--->被提取的文件&nbsp; (如XXX.txt)<br />&nbsp;&nbsp;&nbsp;&nbsp; 保存到--->将提取的内容存放到 (如YYY.txt)<br />&nbsp;&nbsp;&nbsp;&nbsp; 中文 ---->提取其中的中文<br />&nbsp;&nbsp;&nbsp;&nbsp; 英文 ---->提取其中的英文
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252919" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 15 Oct 2008 00:07:27 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252919</link>
        <guid>http://www.javaeye.com/topic/252919</guid>
      </item>
          <item>
        <title>javascript的中文手册</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ypluck.javaeye.com">ypluck</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252348" style="color:red;">http://www.javaeye.com/topic/252348</a>&nbsp;
          发表时间: 2008年10月13日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我这有个JSCRIPT的中文手册，需要的朋友，可以下载下来<br /><br />以附件上传的，和大家分享
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252348" style="color:red;">已有 <strong>5</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 13 Oct 2008 18:26:04 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252348</link>
        <guid>http://www.javaeye.com/topic/252348</guid>
      </item>
          <item>
        <title>ExtJS 2.2,完成公司图书管理系统的第一个版本.</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yourgame.javaeye.com">yourgame</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252853" style="color:red;">http://www.javaeye.com/topic/252853</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <img src="http://yourgame.javaeye.com/upload/picture/pic/23347/7ca90e15-60a0-3dca-8b17-441ac9460431.png" /><br /><br />系统初步完成,很是欣慰,在此非常感谢dojochina的陈志文老师的帮助.谢谢你老师.
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252853" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 20:32:11 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252853</link>
        <guid>http://www.javaeye.com/topic/252853</guid>
      </item>
          <item>
        <title>开源搜索引擎zilverline配置ant编译环境及简易安装说明</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://monner.javaeye.com">monner</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252852" style="color:red;">http://www.javaeye.com/topic/252852</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近研究了几个比较流行的开源搜索引擎和相关包，其中zilverline属于比较小巧精致，<br />功能强大，<strong>比较完美支持中文，支持多种文件类型</strong>,包括PDF/WORD/XLS/PPT/TXT/RTF等等，<br />而且功能模块很方便扩展，虽然项目稍停滞，但是作为个人使用或者研究，的确值得一试！<br /><br /><br />1.下载zilverline,项目好像已经停滞了，目前最后的版本是zilverline-src-1.5.0.zip<br />&nbsp; 解压源码到特定目录。<br />2.试着用ant编译了下，发现提示有误，zilverline默认是采用maven编译，不过一样可以<br />修改为ant编译。<br />只需要修改如下两个文件：<br /><strong>(1)build.properties</strong><br />最要是关于tomcat的一些基本配置，很直观就可以修改<br />包括URL、端口、管理员用户和密码、Tomcat安装目录。<br /><strong><br />(2)build.xml</strong><br />因zilverline属于以前的停滞项目，当时采用JDK1.4和Tomcat5.0和以前的旧版本编译环境。<br />因此如果对应目前比较流行的JDK1.5+tomcat5.5,需要稍作如下修改：<br /> 1.<br />&nbsp;&nbsp;&nbsp; &lt;path id="master-classpath"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${lib.dir}"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.jar"/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${tomcat.home}/common/lib"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="servlet.jar"/><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^^^^^^^^^^^^^^^^^^^^^^^^此处需要修改，tomcat5.5库已经改名为servlet-api.jar<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset><br />&nbsp;&nbsp;&nbsp; &lt;/path><br /><br />注意：请将build.xml文件中的servlet.jar全部修改为servler-api.jar<br /><br /> 2.注释掉以下taskdef标签<br /><br /> 第115行附近：<br /> &lt;!--taskdef name="obfuscate" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classname="com.yworks.yguard.ObfuscatorTask" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classpath="yguard.jar"/--><br /> 第255行附近：<br />&nbsp;&nbsp; &lt;!--taskdef resource="checkstyletask.properties"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classpath="checkstyle-all-3.3.jar"/--><br /> 第328行附近：<br />&nbsp; &lt;!--taskdef name="jalopy"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classname="de.hunsicker.jalopy.plugin.ant.AntPlugin"><br />&nbsp; &lt;/taskdef--> <br /><br />第349行附近：<br />&nbsp; &lt;!--taskdef resource="checkstyletask.properties"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classpath="checkstyle-all-3.3.jar"/--><br /><br /><br />3.经过以上修改后应该可以正常运行ant进行编译。<br /> ant compile&nbsp; 编译源码<br /> ant clean&nbsp;&nbsp;&nbsp; 清理<br /> ant war&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 生成zilverline.war<br /><br />4.注意：<strong>如果先运行ant clean 后再运行ant compile，可能会发现提示无法正常编译了，<br />那是因为lib目录中缺少部分库，主要是spring包，可以自行下载，放入lib目录。</strong><br />&nbsp; 或者到网站下载zilverline.war，解压后将WEB-INF/lib中的jar包全部拷贝到lib目录。<br /><br />5.至此，应该可以正常编译zilverline了，可以好好研究下，自己修改下。<br /><br />6.编译成功后可以自己用ant命令行部署，<br /> 运行ant deploy 即可自动将zilverline.war 拷贝到你通过第2步中设置的build.properties<br />中的tomcat_home/webapps<br /><br />7.通过浏览器http://localhost:8080/zilverline即可出现页面，竟然可以支持中文，不错吧！<br />选择logon,默认用户名为admin密码password<br />其中WEB-INF/acegi-security.xml中可以修改上述用户名和密码。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252852" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 20:29:46 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252852</link>
        <guid>http://www.javaeye.com/topic/252852</guid>
      </item>
          <item>
        <title>servlet连接sql2000</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://collonn.javaeye.com">collonn</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252431" style="color:red;">http://www.javaeye.com/topic/252431</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong>1：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一定要为sql2000打上 <strong>SQL2KSP4 </strong>补丁，否则的话，不用往下看了</p>
<p><strong>2：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载sql2000需要的三个驱动文件 <strong>msSQL2000JDBC</strong> ，将解压后的三个文件msbase.jar，mssqlserver.jar，</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msutil.jar拷贝到WEB-INF/lib文件夹下，记得刷新喔</p>
<p><strong>3：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建一个测试用数据库siaswushu，新建表userinfo(name,pwd)</p>
<p><strong>4：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sql2000要启用"混合验证模式"</p>
<p><strong>5：</strong>编写测试用servlet，代码如下</p>
<p>package collon;</p>
<p>import java.io.IOException;<br />import java.io.PrintWriter;<br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;<br />import java.sql.Statement;</p>
<p>import javax.servlet.ServletException;<br />import javax.servlet.http.HttpServlet;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;</p>
<p>public class ConnSql extends HttpServlet {</p>
<p>&nbsp;public ConnSql() {<br />&nbsp;&nbsp;super();<br />&nbsp;}</p>
<p>&nbsp;public void destroy() {<br />&nbsp;&nbsp;super.destroy(); // Just puts "destroy" string in log<br />&nbsp;&nbsp;// Put your code here<br />&nbsp;}</p>
<p>&nbsp;public void doGet(HttpServletRequest request, HttpServletResponse response)<br />&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<strong>response.setCharacterEncoding("GBK");</strong></p>
<p>&nbsp;&nbsp;response.setContentType("text/html");<br />&nbsp;&nbsp;PrintWriter out = response.getWriter();<br />&nbsp;&nbsp;out.println("&lt;!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"&gt;");<br />&nbsp;&nbsp;out.println("&lt;HTML&gt;");<br />&nbsp;&nbsp;out.println("&nbsp; &lt;HEAD&gt;&lt;TITLE&gt;A Servlet&lt;/TITLE&gt;&lt;/HEAD&gt;");<br />&nbsp;&nbsp;out.println("&nbsp; &lt;BODY&gt;");<br />&nbsp;&nbsp;out.print("所有用户的信息为&lt;br /&gt;");<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;Connection conn = null;<br />&nbsp;&nbsp;Statement stm = null;<br />&nbsp;&nbsp;ResultSet rs = null;<br />&nbsp;&nbsp;String connStr = "<strong>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=siaswushu</strong>";<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;try{<br />&nbsp;&nbsp;&nbsp;Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;}catch(ClassNotFoundException e){<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;conn = DriverManager.getConnection(<strong>connStr,"sa","sa"</strong>);<br />&nbsp;&nbsp;&nbsp;stm = conn.createStatement(<strong><span style="color: #0000ff;">ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY</span></strong>);<br />&nbsp;&nbsp;&nbsp;rs = stm.executeQuery("<strong>select * from userinfo</strong>");<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(rs.next()){<br />&nbsp;&nbsp;&nbsp;&nbsp;out.print("用户名: " + rs.getString("name") + "------密码: " + rs.getString("pwd") + "&lt;br /&gt;");<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;rs.close();<br />&nbsp;&nbsp;&nbsp;stm.close();<br />&nbsp;&nbsp;&nbsp;conn.close();<br />&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;// TODO 自动生成 catch 块<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;out.println("&nbsp; &lt;/BODY&gt;");<br />&nbsp;&nbsp;out.println("&lt;/HTML&gt;");<br />&nbsp;&nbsp;out.flush();<br />&nbsp;&nbsp;out.close();<br />&nbsp;}<br />&nbsp;public void doPost(HttpServletRequest request, HttpServletResponse response)<br />&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br />&nbsp;&nbsp;this.doGet(request, response);<br />&nbsp;}</p>
<p>&nbsp;public void init() throws ServletException {<br />&nbsp;&nbsp;// Put your code here<br />&nbsp;}</p>
<p>}</p>
<p>&nbsp;</p>
<p>注意：</p>
<p><strong><span style="color: #0000ff;">ResultSet.TYPE_FORWORD_ONLY:结果记录指针只能向下移动</span></strong></p>
<p><strong><span style="color: #0000ff;">ResultSet.TYPE_SCROLL_INSENSITIVE:------可以上下移动，但数据库内容发生变化时，结果集不变</span></strong></p>
<p><strong><span style="color: #0000ff;">ResultSet.TYPE_SCROLL_SENSITIVE:------可以上下移动，但数据库内容变化时，结果集也跟随着变化</span></strong></p>
<p><strong></strong></p>
<p><strong><span style="color: #0000ff;">ResultSet.CONCUR_READ_ONLY:结果记录集只读</span></strong></p>
<p><strong><span style="color: #0000ff;">ResultSet.CONCUR_UPDATABLE:结果记录集可更新数据库中数据</span></strong></p>
<p>&nbsp;</p>
<p>下一步是用Hibernate测试sql2000</p>
<p><strong>Fighting!!</strong></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252431" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 00:19:22 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252431</link>
        <guid>http://www.javaeye.com/topic/252431</guid>
      </item>
          <item>
        <title>iabtis 测试通过的例子</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ybbtgvusr.javaeye.com">ybbtgvusr</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252778" style="color:red;">http://www.javaeye.com/topic/252778</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          修改了一个网上的示例,测试通过!<br />所需jar包:mysql-connector-java-5.0.4-bin.jar ;ibatis-2.3.0.677.jar<br /><br />SqlMapConfig.xml文件<br /><br />&lt;?xml version = "1.0" encoding = "UTF-8"?><br /><br />&lt;!DOCTYPE sqlMapConfig&nbsp; PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"&nbsp; "http://www.ibatis.com/dtd/sql-map-config-2.dtd"><br /><br />&lt;sqlMapConfig><br /><br />	&lt;settings cacheModelsEnabled="true" enhancementEnabled="true"<br />		lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"<br />		maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /><br /><br /><br /><br />	&lt;transactionManager type="JDBC"><br /><br />		&lt;dataSource type="SIMPLE"><br /><br />			&lt;property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /><br /><br />			&lt;property name="JDBC.ConnectionURL"<br />				value="jdbc:mysql://localhost/sample" /><br /><br />			&lt;property name="JDBC.Username" value="root" /><br /><br />			&lt;property name="JDBC.Password" value="root" /><br /><br />			&lt;property name="Pool.MaximumActiveConnections" value="10" /><br /><br />			&lt;property name="Pool.MaximumIdleConnections" value="5" /><br /><br />			&lt;property name="Pool.MaximumCheckoutTime" value="120000" /><br /><br />			&lt;property name="Pool.TimeToWait" value="500" /><br /><br />			&lt;property name="Pool.PingQuery"<br />				value="select 1 from sample" /><br /><br />			&lt;property name="Pool.PingEnabled" value="false" /><br /><br />			&lt;property name="Pool.PingConnectionsOlderThan" value="1" /><br /><br />			&lt;property name="Pool.PingConnectionsNotUsedFor" value="1" /><br /><br />		&lt;/dataSource><br /><br />	&lt;/transactionManager><br /><br />	&lt;sqlMap resource="com/ctgusec/zhupan/model/User.xml" /><br /><br />&lt;/sqlMapConfig><br /><br /><span style="color: red">==============================================</span><br />我用的是mysql数据库<br />建表语句:<br />DROP TABLE IF EXISTS `sample`.`t_user`;<br />CREATE TABLE&nbsp; `sample`.`t_user` (<br />&nbsp; `id` int(10) unsigned NOT NULL auto_increment,<br />&nbsp; `name` varchar(50) NOT NULL,<br />&nbsp; `sex` varchar(45) NOT NULL,<br />&nbsp; PRIMARY KEY&nbsp; (`id`)<br />) ENGINE=InnoDB DEFAULT CHARSET=gbk;<br /><br /><span style="color: red">==============================================</span><br />实体<br />package com.model;<br /><br />import java.io.Serializable;<br /><br />@SuppressWarnings("serial")<br />public class User implements Serializable {<br /><br />	private Integer id;<br /><br />	private String name;<br /><br />	private String sex;<br /><br />	public User() {<br /><br />	}<br /><br />	public Integer getId() {<br /><br />		return this.id;<br /><br />	}<br /><br />	public void setId(Integer id) {<br /><br />		this.id = id;<br /><br />	}<br /><br />	public String getName() {<br /><br />		return this.name;<br /><br />	}<br /><br />	public void setName(String name) {<br /><br />		this.name = name;<br /><br />	}<br /><br />	public String getSex() {<br /><br />		return this.sex;<br /><br />	}<br /><br />	public void setSex(String sex) {<br /><br />		this.sex = sex;<br /><br />	}<br /><br />}<br /><br /><span style="color: red">==============================================</span><br />实体对应的mxl文件<br />&lt;?xml version = "1.0" encoding = "UTF-8"?><br />&lt;!DOCTYPE sqlMap <br /><br />&nbsp;&nbsp;&nbsp; PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" <br /><br />&nbsp;&nbsp;&nbsp; "http://www.ibatis.com/dtd/sql-map-2.dtd"><br /><br />&lt;sqlMap namespace="User"><br /><br />	&lt;typeAlias alias="user" type="com.ctgusec.zhupan.model.User" /><br /><br />	&lt;select id="getUser" parameterClass="java.lang.String"<br />		resultClass="user"><br /><br />		select name, sex from t_user where name like '%$name$%'<br /><br />	&lt;/select><br /><br /><br />	&lt;select id="getAllUser" resultClass="user"><br /><br />		select name, sex from t_user<br /><br />	&lt;/select><br /><br />	&lt;update id="updateUser" parameterClass="user"><br /><br />		UPDATE t_user SET name=#name#, sex=#sex# WHERE id = #id#<br /><br />	&lt;/update><br /><br />	&lt;insert id="insertUser" parameterClass="user"><br /><br />		INSERT INTO t_user ( name, sex) VALUES ( #name#, #sex# )<br />	&lt;/insert><br /><br /><br />	&lt;delete id="deleteUser" parameterClass="java.lang.Integer"><br /><br />		delete from t_user where id=#value#<br /><br />	&lt;/delete><br /><br />&lt;/sqlMap><br /><br /><br /><span style="color: red">==============================================</span><br />测试类<br />package com.test;<br /><br />import java.io.Reader;<br />import java.sql.SQLException;<br />import java.util.List;<br /><br />import com.ibatis.common.resources.Resources;<br />import com.ibatis.sqlmap.client.SqlMapClient;<br />import com.ibatis.sqlmap.client.SqlMapClientBuilder;<br />import com.model.User;<br /><br />public class ExampleMain {<br /><br />	/**<br />	 * 初始化 iBatis 获得一个 SqlMapClient 对象<br />	 * <br />	 * @return sqlMap;<br />	 */<br />	public static SqlMapClient getSqlMap() {<br /><br />		SqlMapClient sqlMap = null;<br />		String RESOURCE = "com/maps/SqlMapConfig.xml";<br />		try {<br /><br />			Reader reader = Resources.getResourceAsReader(RESOURCE);<br /><br />			sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);<br /><br />		} catch (Exception e) {<br /><br />			e.printStackTrace();<br /><br />		}<br />		return sqlMap;<br />	}<br /><br />	/**<br />	 * 更新<br />	 * <br />	 */<br />	public static void update() {<br /><br />		// getSqlMap(); sqlMap 系统初始化完毕，开始执行 update 操作<br />		SqlMapClient sqlMap = getSqlMap();<br />		try {<br /><br />			sqlMap.startTransaction();<br /><br />			User user = new User();<br /><br />			user.setId(new Integer(6));<br /><br />			user.setName("zhupan11");<br /><br />			user.setSex("女");<br /><br />			sqlMap.update("updateUser", user);<br /><br />			sqlMap.commitTransaction();<br /><br />		} catch (SQLException e) {<br /><br />			System.out.println(e.getMessage());<br /><br />		} finally {<br /><br />			try {<br /><br />				sqlMap.endTransaction();<br /><br />			} catch (SQLException e) {<br /><br />				e.printStackTrace();<br /><br />			}<br /><br />		}<br /><br />	}<br /><br />	/**<br />	 * 查询<br />	 * <br />	 * @return<br />	 */<br />	public static List getAllUser() {<br /><br />		// getSqlMap();首先初始化 iBatis 获得一个 SqlMapClient 对象<br /><br />		List userList = null;<br /><br />		SqlMapClient sqlMap = getSqlMap();<br /><br />		// sqlMap 系统初始化完毕，开始执行 getAllUser 操作<br /><br />		try {<br /><br />			sqlMap.startTransaction();<br /><br />			userList = sqlMap.queryForList("getUser", "s");// 模糊查询<br /><br />			// userList = sqlMap.queryForList("getAllUser", null);//查询<br />			sqlMap.commitTransaction();<br /><br />		} catch (SQLException e) {<br /><br />			System.out.println(e.getMessage());<br /><br />		} finally {<br /><br />			try {<br /><br />				sqlMap.endTransaction();<br /><br />			} catch (SQLException e) {<br /><br />				e.printStackTrace();<br /><br />			}<br /><br />		}<br /><br />		return userList;<br /><br />	}<br /><br />	/**<br />	 * 删除<br />	 * <br />	 */<br />	public static void deleteUser() {<br /><br />		// getSqlMap();首先初始化 iBatis 获得一个 SqlMapClient 对象<br /><br />		// List userList = null;<br />		SqlMapClient sqlMap = getSqlMap();<br />		// sqlMap 系统初始化完毕，开始执行 getAllUser 操作<br />		try {<br /><br />			sqlMap.startTransaction();<br /><br />			for (int i = 7; i &lt; 12; i++) {<br />				sqlMap.delete("deleteUser", new Integer(i));// 参数对应user.xml中的parameterClass所定义的类型<br />				sqlMap.commitTransaction();<br />			}<br />		} catch (SQLException e) {<br /><br />			System.out.println(e.getMessage());<br /><br />		} finally {<br /><br />			try {<br /><br />				sqlMap.endTransaction();<br /><br />			} catch (SQLException e) {<br /><br />				e.printStackTrace();<br /><br />			}<br /><br />		}<br /><br />	}<br /><br />	/**<br />	 * 插入数据<br />	 * <br />	 */<br />	public static void insertUser() {<br /><br />		// getSqlMap();初始化一个SqlMapClient对象<br />		SqlMapClient sqlMap = getSqlMap();<br />		double tem = Math.random();<br />		User user = new User();<br /><br />		user.setName("sfd" + tem);<br /><br />		user.setSex("女");<br /><br />		try {<br />			sqlMap.startTransaction();<br /><br />			sqlMap.insert("insertUser", user);<br /><br />			sqlMap.commitTransaction();<br /><br />		} catch (SQLException e) {<br /><br />			System.out.println(e.getMessage());<br /><br />		} finally {<br /><br />			try {<br /><br />				sqlMap.endTransaction();<br /><br />			} catch (SQLException e) {<br /><br />				e.printStackTrace();<br /><br />			}<br /><br />		}<br /><br />	}<br /><br />	public static void main(String[] args) {<br /><br />		update();<br />		// deleteUser();<br />		// insertUser();<br />		List user = getAllUser();<br /><br />		for (int i = 0; i &lt; user.size(); i++)<br /><br />		{<br /><br />			System.out.println(i + " :: " + ((User) user.get(i)).getName()<br />					+ "=======" + ((User) user.get(i)).getSex());<br /><br />		}<br /><br />	}<br /><br />}<br /><br /><span style="color: red">==============================================</span>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252778" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 17:24:15 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252778</link>
        <guid>http://www.javaeye.com/topic/252778</guid>
      </item>
          <item>
        <title>JAVA中int转String类型效率比较</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kop.javaeye.com">kop</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252767" style="color:red;">http://www.javaeye.com/topic/252767</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="color: darkblue">KOP注：这篇文章写在2006-09-24 ,那时我还在学校。现在想整理一下以前的东西,发在我刚开的javaeye的博客中。</span><br />大家都知道JAVA中 int 类型要转化成 String 类型，可以有三种方式，分别是：<br />* (1) String.valueOf(i)<br />* (2) Integer.toString(i)<br />* (3) i+""<br /><br />因为前两天，写一个程序时，要用到 int 转 String ,并且数据量很大，因此想看看这三种方式的效率怎样，写了一下简单的测试程序，在此记录一下。<br /><br /><pre name="code" class="java">public class TestIntToStr {
 
 public static void main(String[] args) {
  int[] intArr = new int[1000000];
  String[] strArr1 = new String[1000000];//为了公平分别定义三个数组

  String[] strArr2 = new String[1000000];
  String[] strArr3 = new String[1000000];
  //赋值
  Long t1 = System.currentTimeMillis();
  for(int i=0;i&lt;1000000;i++){
   intArr[i]=i+1;
  }
  Long t2 = System.currentTimeMillis();
  for(int i=0;i&lt;1000000;i++){
    strArr1[i] = String.valueOf(intArr[i]);  
  }
  Long t3 = System.currentTimeMillis();
  for(int i=0;i&lt;1000000;i++){
   strArr2[i] = Integer.toString(intArr[i]);
  }
  Long t4 = System.currentTimeMillis();
  for(int i=0;i&lt;1000000;i++){
   strArr3[i] = intArr[i]+"";
  }
  Long t5 = System.currentTimeMillis();
  System.out.println("t1 = "+t1);
  System.out.println("t2 = "+t2);
  System.out.println("t3 = "+t3);
  System.out.println("t4 = "+t4);
  System.out.println("t5 = "+t5);
  System.out.println("赋值："+(t2-t1));
  System.out.println("String.valueOf(i)："+(t3-t2));
  System.out.println("Integer.toString(i)："+(t4-t3));
  System.out.println("i+\"\"："+(t5-t4));

 }

}</pre><br /><br />在JDK1.5环境下测试多次：<br /><br />发现：<br /><br />赋值：0<br />String.valueOf(i)：891<br />Integer.toString(i)：468<br />i+""：844<br /><br /> <br /><br />String.valueOf(i)与i+""的时间差别不大。<br /><br /> <br /><br />而Integer.toString(i)时间只有它们的一半左右，即此方法效率比较高。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252767" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 17:05:18 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252767</link>
        <guid>http://www.javaeye.com/topic/252767</guid>
      </item>
          <item>
        <title>如何实现网页上的弹出的视频广告 </title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ubo2001.javaeye.com">ubo2001</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252707" style="color:red;">http://www.javaeye.com/topic/252707</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我们打开网易，搜狐等网站，右下角会弹出一个视频窗口，播放一小段广告什么的。这个是怎么实现的？那个是视频播放还是flash什么的？和服务器怎么进行数据通信，是用server push技术吗？这个是不是也属于是内容推送？
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252707" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 15:29:50 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252707</link>
        <guid>http://www.javaeye.com/topic/252707</guid>
      </item>
          <item>
        <title>SPRING的AOP不适合多线程应用？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://dmtm.javaeye.com">大猫汤姆</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251923" style="color:red;">http://www.javaeye.com/topic/251923</a>&nbsp;
          发表时间: 2008年10月12日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          如题，<br />我的理解是：AOP代理对像实例化所花费的开销比较大，而且是非线程安全的，<br />所以线程安全的解决办法：<br />方法一：使用时要么每次都NEW一个，这样的用一次就扔掉我认为是对资源的浪费。<br />方法二：在应用中适当的地方加同步进行排队。这样虽然减小了开消，但是对线程高并发的情况肯定是个瓶颈。<br />我目前对SPRING的观点是：<br />SPRING是一种解决问题的办法,方案，一种思想。<br /><br />IOC 只有IOC是个很不错的东西。但是如果不使用AOP的话IOC好像没什么价值，只是换个角度去解决问题。<br /><br />AOP 如果不在乎机器资源的开消问题才可以使用，以灵活性换取性能。小型应用没必要使用，流量大的门户网站不能使用。<br /><br />MVC 愿意用就用。<br /><br />对HIBERNATE，JDBC，MAIL的封装等&nbsp; 我认为没有必要，完全可以自己来实现，这样更清楚，更容易撑握应用程序。看到SPRING把这些东西包裹起来从心底感到恶心。比如封装HIBERNATE时，获取Session里用到的threadLocal，这东西被封装了起来，客户端程序员想用的时候只能新创建一个,THREADLOCAL对性能是有一定的影响的(虽然JDK1.5已经很好的优化了)，一个就够了。<br /><br />感觉SPRING就是狗皮膏药，做救 急的东西，在不修改源代码的情况下拦腰插入一些代码，因为实际上线的应用程序中大家都不敢修改源代码，修改源代码非常危险麻烦,整个应用还需要反复测试，所以用AOP来支撑。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251923" style="color:red;">已有 <strong>28</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 12 Oct 2008 21:51:39 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251923</link>
        <guid>http://www.javaeye.com/topic/251923</guid>
      </item>
          <item>
        <title>new Date() 时间与系统时间不相同 如何解决？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tceisk9584.javaeye.com">Tceisk9584</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252580" style="color:red;">http://www.javaeye.com/topic/252580</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          new Date() 得到的小时&nbsp; 和系统相差 相差7个小时&nbsp; 请指点！！！
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252580" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 11:00:37 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252580</link>
        <guid>http://www.javaeye.com/topic/252580</guid>
      </item>
          <item>
        <title>大文件上传有哪些好的解决方案</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://pro-ygw.javaeye.com">pro_ygw</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252557" style="color:red;">http://www.javaeye.com/topic/252557</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          查了一些资料,大文件上传可以用FTP来实现,现有框架Apache FTP SERVER ,enterprisedt等能实现C/S大文件上传,但我想在JSP中，从浏览器端上传，而不是JSP服务器端上传到FTP服务器.希望大家给点意见!
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252557" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 10:28:38 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252557</link>
        <guid>http://www.javaeye.com/topic/252557</guid>
      </item>
          <item>
        <title>Struts2中文入门学习手册</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ypluck.javaeye.com">ypluck</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252518" style="color:red;">http://www.javaeye.com/topic/252518</a>&nbsp;
          发表时间: 2008年10月14日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          呵呵，有一个struts2的文档，感觉还不错，希望对大家有所帮助。声明：不是我写的
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252518" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Oct 2008 09:32:37 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252518</link>
        <guid>http://www.javaeye.com/topic/252518</guid>
      </item>
          <item>
        <title>github 能访问吗? </title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://agi-alvin.javaeye.com">open2ye</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252254" style="color:red;">http://www.javaeye.com/topic/252254</a>&nbsp;
          发表时间: 2008年10月13日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我已经连续两天不能访问 github 了, 不知道是我的网络问题还是大家都不能访问<br /><br />用代理服务器可以
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252254" style="color:red;">已有 <strong>4</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 13 Oct 2008 15:34:15 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252254</link>
        <guid>http://www.javaeye.com/topic/252254</guid>
      </item>
          <item>
        <title>Myeclipse 6.0.1 + eclipse3.3.1高速下载</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jerryqiu007.javaeye.com">jerryqiu007</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251432" style="color:red;">http://www.javaeye.com/topic/251432</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller.exe<br />URL:&nbsp;<a href="http://downloads.myeclipseide.com/downloads/products/eworkbench/6.0.1GA/MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller.exe"><span style="color: #3468a4;">http://downloads.myeclipseide.com/downloads/products/eworkbench/6.0.1GA/MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller.exe</span></a><br />Size: 244.81 MB<br /><br /><br />MyEclipse_6.0.1GA_E3.3.1_Installer.exe<br />URL:&nbsp;<a href="http://downloads.myeclipseide.com/downloads/products/eworkbench/6.0.1GA/MyEclipse_6.0.1GA_E3.3.1_Installer.exe"><span style="color: #3468a4;">http://downloads.myeclipseide.com/downloads/products/eworkbench/6.0.1GA/MyEclipse_6.0.1GA_E3.3.1_Installer.exe</span></a><br />Size: 176.33 MB<br /><br /><br />eclipse-SDK-3.3.1-win32.zip<br />URL:&nbsp;<a href="http://download.actuatechina.com/eclipse/eclipse/downloads/drops/R-3.3.1-200709211145/eclipse-SDK-3.3.1-win32.zip"><span style="color: #3468a4;">http://download.actuatechina.com/eclipse/eclipse/downloads/drops/R-3.3.1-200709211145/eclipse-SDK-3.3.1-win32.zip</span></a></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251432" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Oct 2008 19:08:40 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251432</link>
        <guid>http://www.javaeye.com/topic/251432</guid>
      </item>
          <item>
        <title>hibernate:事务处理,缓存,以及性能优化.</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://daydaystudy.javaeye.com">逆风逛飙</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251607" style="color:red;">http://www.javaeye.com/topic/251607</a>&nbsp;
          发表时间: 2008年10月11日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          事务基本概念:<br />事务是并发控制的基本单位.所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位,例如,银行转账工作,从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行.所以,应该把它们看成一个事务.事务是数据库维护一致性的单位,在每个事务结束时,都能保持数据一致性.<br />基本特征:<br />&nbsp; 原子性(Atomic):<br />事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败.<br />&nbsp; 一致性(Consistencey):<br />只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态.<br />&nbsp; 隔离性(Isolation):<br />事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性.同时,并行事务的修改必须与其他并行事务的修改相互独立.<br />&nbsp; 持久性(Durability):事务结束后,事务处理的结果必须能够得到固化.<br />数据库肯定是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况.<br />更好新丢失:<br />&nbsp; 两个事务都同时更新一行数据,但是第二个事务去中途失败退出,导致对数据的两个修改都失效了.这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来.<br />脏读取:<br />&nbsp; 一个事务开始读取了某行数据,但是另外一个事务已经更新了此数据但没有能够提交.这是相当危险的,因为很可能所有的操作都被回滚.<br />不可重得读取:<br />&nbsp; 一个事务对同一行数据重复读取两次,但是却得到了不同的结果.例如,在两次读取的中签,有另外一个事务对该行数据进行了修改,并提交.<br />两次更新问题:<br />&nbsp; 无法重复读取的特例,有两个并发事务同时读取同一行数据,然后其中一个对它进行修改提交,而另一个也进行了修改提交.这就会造成第一次写操作失效.<br />虚读:<br />&nbsp; 事务在操作过程中进行两次查询,第二次查询的结果包含了一次查询中未出现的数据(这里并不要求两次查询的Sql语句相同).这是因为在两次查询过程中有另外一个事务插入数据造成的.
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251607" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 11 Oct 2008 14:44:58 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251607</link>
        <guid>http://www.javaeye.com/topic/251607</guid>
      </item>
          <item>
        <title>Tomcat+apr 的问题[已解决]</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://mickypc.javaeye.com">mickypc</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252302" style="color:red;">http://www.javaeye.com/topic/252302</a>&nbsp;
          发表时间: 2008年10月13日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          环境：<br />CentOS release 4.4 (Final)<br />Linux test 2.6.9-42.ELsmp #1 SMP Tue Aug 15 10:35:26 BST 2006 x86_64 x86_64 x86_64 GNU/Linux<br />java version "1.6.0_02"<br />tomcat 5.5.23<br />apr 1.3.3<br /><br />tomcat和apr都顺利安装了，apr装在了/usr/local/apr下面了，然后编译tomcat-native,./configure --with-apr=/usr/local/apr, make &amp; make install也很顺利，在catalina.sh中加上了CATALINA_OPTS="$CATALINA_OPTS "-Djava.library.path=/usr/local/apr/lib，但是启动tomcat的时候仍然说找不到native:<br />INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/apr/lib<br /><br />这是什么问题呢？？大家配这个ａｐｒ都很容易就配好了吗？？<br /><br />我后来在java/lib下做了libtcnative-1.so　-> /usr/local/apr/lib/libtcnative-1.so的连接, 把CATALINA_OPTS="$CATALINA_OPTS "-Djava.library.path=/usr/local/apr/lib这句去掉后还是不行: <br />INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/java/1.6.0_02/jre/lib/i386/server:/opt/java/1.6.0_02/jre/lib/i386:/opt/java/1.6.0_02/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib<br /><br /><br />===================================<br />贴出来就知道错了:我的java版本不是64位的,换成64位就好了。马虎阿马虎阿 :oops:&nbsp;<img src="/images/smiles/icon_cry.gif"/>搞了两天。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252302" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 13 Oct 2008 16:20:28 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252302</link>
        <guid>http://www.javaeye.com/topic/252302</guid>
      </item>
          <item>
        <title>window2003下tomcat6.1.8+apr+jdk1.6真是画蛇添足</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zb1015.javaeye.com">zb1015</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252241" style="color:red;">http://www.javaeye.com/topic/252241</a>&nbsp;
          发表时间: 2008年10月13日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          加上apr反而慢了,看来jdk1.6真不是吹的呀
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252241" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 13 Oct 2008 15:16:38 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252241</link>
        <guid>http://www.javaeye.com/topic/252241</guid>
      </item>
          <item>
        <title>Spring MVC SimpleFormController 详细流程图</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chenjianjx.javaeye.com">chenjianjx</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252140" style="color:red;">http://www.javaeye.com/topic/252140</a>&nbsp;
          发表时间: 2008年10月13日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          看了好久的代码，终于搞清楚了<br />阅读顺序：<br />&nbsp;&nbsp; 1.《请求表单_流程》<br />&nbsp;&nbsp; 2.《非Session_Form的提交》<br />&nbsp;&nbsp; 3.《Session_Form的正常提交》<br />&nbsp;&nbsp; 4.《Session Form的非正常提交》
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252140" style="color:red;">已有 <strong>1</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 13 Oct 2008 13:42:48 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252140</link>
        <guid>http://www.javaeye.com/topic/252140</guid>
      </item>
          <item>
        <title>有熟悉aspectJ的吗</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ouran.javaeye.com">ouran</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/252104" style="color:red;">http://www.javaeye.com/topic/252104</a>&nbsp;
          发表时间: 2008年10月13日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          有一个系统，jsp 调用EJB的模式，<br />现在要增加一个功能，就是增加当出现异常是将异常记录日志的功能。<br />能不能用aspectj 实现，怎么实现能说具体点吗？<br />谢谢！！
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/252104" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 13 Oct 2008 11:52:46 +0800</pubDate>
        <link>http://www.javaeye.com/topic/252104</link>
        <guid>http://www.javaeye.com/topic/252104</guid>
      </item>
          <item>
        <title>一个spring mvc登录示例</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://lucky520.javaeye.com">lucky520</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251935" style="color:red;">http://www.javaeye.com/topic/251935</a>&nbsp;
          发表时间: 2008年10月12日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个示例通过一个spring mvc用户登录的示例来学习是如何进行spring web开发的。<br />业务功能：用户通过登录页面输入用户名和密码，提交验证，登录成功则更新用户登录信息<br />（登录ip,最后访问时间，积分+5），同时记录用户登录成功日志。整个demo分为四层，没层对应一个对立的配置文件。<br />域对象也叫实体。<br />持久层：spring整合多种流行ORM框架，如hibernate,ibatis等，此demo采用spring JDBC，通过调用org.springframework.jdbc.core.JdbcTemplate完成DAO的实现。配置文件命名(app-dao.xml)<br />业务层：以接口的方式，调用持久层DAO。接口的方式可增加代码的灵活性，同时有利于项目的管理以及变更。配置文件命名(app-service.xml)<br />表现层：采用spring mvc框架。层次与struts类似，不过要手动配置Spring MVC地址映射，控制器，以及URL与控制器映射定义。个人认为初次配置觉得较struts而言麻烦点，但很灵活。可以通过配置手动配置请求地址，响应地址。关于整个demo将上传，下面解释下各配置文件。<br />1.在spring中装配DAO(这里以userlogin-dao.xml为例)<br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" ><br />&lt;beans><br />	&lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><br />		&lt;property name="driverClassName" value="com.mysql.jdbc.Driver"/><br />		&lt;property name="url" value="jdbc:mysql://localhost:3306/test"/><br />		&lt;property name="username" value="root"/><br />		&lt;property name="password" value="root"/><br />	&lt;/bean><br />	&lt;bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><br />		&lt;property name="dataSource" ref="dataSource"/>		<br />	&lt;/bean><br />	&lt;bean id="userDao" class="com.me.dao.imp.UserDaoImp"><br />		&lt;property name="jdbcTemplate" ref="jdbcTemplate"/><br />	&lt;/bean><br />	&lt;bean id="userLogDao" class="com.me.dao.imp.UserLogDaoImp"><br />		&lt;property name="jdbcTemplate" ref="jdbcTemplate"/><br />	&lt;/bean><br />&lt;/beans><br />这里主要想说的的是jdbcTemplate，因为此demo采用spring JDBC实现的持久层，而spring JdbcTemplate封装了jdbc的操作，本身只需要一个DataSource.<br /><br />2.配置业务层(这里以userlog-service.xml为例)<br />...<br />&lt;beans><br />&lt;!--事务管理器：对目标类方法进行事务管理--><br />	&lt;bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><br />		&lt;property name="dataSource" ref="dataSource"/><br />	&lt;/bean><br />&lt;!--需要代理哦业务目标类--><br />	&lt;bean id="userServiceTarget" class="com.me.service.imp.UserServiceImp"><br />		&lt;property name="userDao" ref="userDao"/><br />		&lt;property name="logDao" ref="userLogDao">&lt;/property><br />	&lt;/bean><br />&lt;!--配置声明式事务--><br />	&lt;bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><br />		&lt;property name="transactionManager" ref="transactionManager">&lt;/property><br />		&lt;property name="target" ref="userServiceTarget"/><br />&lt;!--声明式事务的规则，属性、值--><br />		&lt;property name="transactionAttributes"><br />			&lt;props><br />				&lt;prop key="findUserByUserName"><br />				PROPAGATION_REQUIRED,readOnly<br />				&lt;/prop><br />				&lt;prop key="checkUser">PROPAGATION_REQUIRED,readOnly&lt;/prop><br />				&lt;prop key="loginSuccess">PROPAGATION_REQUIRED&lt;/prop><br />			&lt;/props><br />		&lt;/property><br />	&lt;/bean><br />&lt;/beans><br />大家知道凡是操作数据库都要涉及到事务处理，而利用spring我们将不用在代码实现中担心这一点，通过spring声明式事务配置即可。这里需要额外提一下transactionAttributes<br />是定义目标业务类那些方法需要业务的支持，以及事务控制属性。PROPAGATION_REQUIED是<br />用得最多的事务传播类型，表示业务方法在当前线程中查看是否有事务，如果有，就利用这个事务，否则就创建一个新事务。readOnly表示是只读事务，可以提高运行效率。此外，在配置方法名时，可实用“*”，不过不指定方法就表示对所有方法进行事务管理。<br />3.配置Spring MVC 框架<br />1）修改web.xml,以便web容器启动时自动启动Spring容器。<br />&lt;context-param><br />		&lt;param-name>contextConfigLocation&lt;/param-name><br />		&lt;param-value>classpath:userlogin-dao.xml,classpath:userlog-service.xml&lt;/param-value><br />	&lt;/context-param><br />	&lt;listener><br />		&lt;listener-class><br />		org.springframework.web.context.ContextLoaderListener<br />		&lt;/listener-class><br />	&lt;/listener><br />2）配置spring mvc地址映射，与struts一样，spring mvc也需要一个servlet截获URL<br />&nbsp; 修改web.xml.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet><br />		&lt;servlet-name>userlogin&lt;/servlet-name><br />		&lt;servlet-class>org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class><br />		&lt;load-on-startup>2&lt;/load-on-startup><br />	&lt;/servlet><br />	&lt;servlet-mapping><br />		&lt;servlet-name>userlogin&lt;/servlet-name><br />		&lt;url-pattern>*.html&lt;/url-pattern><br />	&lt;/servlet-mapping><br />需要说明的像struts一样,spring也需要一个类似struts-config.xml的配置文件，但命名可有讲究的哦，要采用&lt;servlet-name>-servlet.xml以这个例子来说则需要在/WEB-INF目录下创建一个userlogin-servlet.xml,但这个配置文件无需在web.xml配置上下文参数，因为spring mvc的servlet会自动将userlogin-servlet.xml与spring其他配置文件（userlogin-dao.xml,userlog-service.xml）进行拼装。<br />3）在配置文件中声明控制器(userlogin-servlet.xml)<br />&lt;beans><br />	&lt;bean name="loginController" class="com.me.web.LoginController"><br />	 	&lt;property name="userService" ref="userService">&lt;/property><br />	&lt;/bean><br />	&lt;bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><br />		&lt;property name="mappings"><br />			&lt;props><br />				&lt;prop key="/loginController.html">loginController&lt;/prop><br />			&lt;/props><br />		&lt;/property><br />	&lt;/bean><br />	&lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><br />		&lt;property name="prefix" value="/jsp/"/><br />		&lt;property name="suffix" value=".jsp"/><br />	&lt;/bean><br />&lt;/beans><br />这个配置说明/loginController.html的请求将交由loginController类处理，处理结果返回一个ModelandView("param1","param2",param3)对象，带有三个参数，分别表示重定向视图逻辑名，保存在request范围内的一个变量名，变量的值。而viewResolver中就是在配置重定向的页面，它的url是：prefix+parma1+suffix.此demo中登录成功后将重定向到{basepath}/jsp/main.jsp<br /><br />最后处理下乱码问题。此demo采用的是uft-8的字符编码，后来还是出现了乱码，于是调用spring 中的过滤器进行过滤。修改web.xml<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter><br />	 	&lt;filter-name>encodingFilter&lt;/filter-name><br />	 	&lt;filter-class>org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class><br />	 	&lt;init-param><br />	 		&lt;param-name>encoding&lt;/param-name><br />	 		&lt;param-value>utf8&lt;/param-value><br />	 	&lt;/init-param><br />	&lt;/filter><br />	&lt;filter-mapping><br />		&lt;filter-name>encodingFilter&lt;/filter-name><br />		&lt;url-pattern>/jsp/*&lt;/url-pattern><br />	&lt;/filter-mapping>	<br />	 &lt;filter-mapping><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name>encodingFilter&lt;/filter-name>&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern>*.html&lt;/url-pattern><br />&nbsp;&nbsp;&nbsp; &lt;/filter-mapping><br />&nbsp;&nbsp;&nbsp; &lt;filter-mapping><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name>encodingFilter&lt;/filter-name>&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern>*.jsp&lt;/url-pattern><br />&nbsp;&nbsp;&nbsp; &lt;/filter-mapping><br /><br />初次接触spring mvc,还在学习。将上传此demo与大家分享、探讨。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251935" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 12 Oct 2008 22:15:38 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251935</link>
        <guid>http://www.javaeye.com/topic/251935</guid>
      </item>
          <item>
        <title>定时执行任务的三种方法</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://z-peng0809-sina-com.javaeye.com">蜡笔小猪</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251803" style="color:red;">http://www.javaeye.com/topic/251803</a>&nbsp;
          发表时间: 2008年10月12日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1）java.util.Timer <br /><br />　　这个方法应该是最常用的，不过这个方法需要手工启动你的任务： <br /><br />　　Timer timer=new Timer(); <br /><br />　　timer.schedule(new ListByDayTimerTask(),10000,86400000); <br /><br />　　这里的ListByDayTimerTask类必须extends TimerTask里面的run()方法。 <br /><br />　　2）ServletContextListener <br /><br />　　这个方法在web容器环境比较方便，这样，在web server启动后就可以 <br /><br />　　自动运行该任务，不需要手工操作。 <br /><br />　　将ListByDayListener implements ServletContextListener接口，在 <br /><br />　　contextInitialized方法中加入启动Timer的代码，在contextDestroyed <br /><br />　　方法中加入cancel该Timer的代码；然后在web.xml中，加入listener: <br /><br />　　&lt;listener> <br /><br />　　&lt;listener-class>com.qq.customer.ListByDayListener&lt;/listener-class> <br /><br />　　&lt;/listener> <br /><br />　　3)org.springframework.scheduling.timer.ScheduledTimerTask <br /><br />　　如果你用spring，那么你不需要写Timer类了，在schedulingContext-timer <br /><br />　　.xml中加入下面的内容就可以了： <br /><br />　　&lt;?xml version="1.0" encoding="UTF-8"?> <br /><br />　　&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <br /><br />　　&lt;beans> <br /><br />　　&lt;bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean"> <br /><br />　　&lt;property name="scheduledTimerTasks"> <br /><br />　　&lt;list> <br /><br />　　&lt;ref local="MyTimeTask1"/> <br /><br />　　&lt;/list> <br /><br />　　&lt;/property> <br /><br />　　&lt;/bean> <br /><br />　　&lt;bean id="MyTimeTask" class="com.qq.timer.ListByDayTimerTask"/> <br /><br />　　&lt;bean id="MyTimeTask1" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <br /><br />　　&lt;property name="timerTask"> <br /><br />　　&lt;ref bean="MyTimeTask"/> <br /><br />　　&lt;/property> <br /><br />　　&lt;property name="delay"> <br /><br />　　&lt;value>10000&lt;/value> <br /><br />　　&lt;/property> <br /><br />　　&lt;property name="period"> <br /><br />　　&lt;value>86400000&lt;/value> <br /><br />　　&lt;/property> <br /><br />　　&lt;/bean> <br /><br />　　&lt;/beans>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251803" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 12 Oct 2008 13:50:01 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251803</link>
        <guid>http://www.javaeye.com/topic/251803</guid>
      </item>
          <item>
        <title>Java与元数据</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://cupoy.javaeye.com">zzq230</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251798" style="color:red;">http://www.javaeye.com/topic/251798</a>&nbsp;
          发表时间: 2008年10月12日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><!--  [if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:PunctuationKerning/>
  <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:SpaceForUL/>
   <w:BalanceSingleByteDoubleByteWidth/>
   <w:DoNotLeaveBackslashAlone/>
   <w:ULTrailSpace/>
   <w:DoNotExpandShiftReturn/>
   <w:AdjustLineHeightInTable/>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--  [if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif]--><!--  [if !mso]>
<span class="mceItemObject" 
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui>
</span>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<!--  [if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</p>
<p class="MsoNormal" align="center" style="text-align: center; text-indent: 32.15pt; line-height: 16pt;"><strong><span lang="EN-US" style="font-size: 16pt;">Java</span>
</strong>
<strong><span style="font-size: 16pt; font-family: 宋体;">与元数据</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span style="font-family: 宋体;">元数据是关于数据的数据（</span>
<span lang="EN-US">data about data</span>
<span style="font-family: 宋体;">）。在编程语言上下文中，元数据是添加到程序元素如方法、字段、类和包上的额外信息。</span>
</p>
<p class="MsoNormal" style="text-indent: 21.1pt; line-height: 16pt;"><strong><span style="font-family: 宋体;">元数据的作用：</span>

</strong>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US"><span>&nbsp;</span>
1. </span>
<span style="font-family: 宋体;">一般来说，元数据可以用于创建文档，跟踪代码中的依赖性，执行编译时检查，代码分析。</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">2.</span>
<span style="font-family: 宋体;">元数据还可用于协助程序元素与框架或者</span>
<span lang="EN-US">EJB</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">EMF </span>
<span style="font-family: 宋体;">和</span>
<span lang="EN-US"> TestNG</span>
<span style="font-family: 宋体;">这样的工具之间的通信。</span>
<span lang="EN-US">EJB 3.0</span>
<span style="font-family: 宋体;">就广泛地应用了</span>
<span lang="EN-US">Java</span>
<span style="font-family: 宋体;">元数据，通过元数据来实现声明性请求企业服务，依赖性以及资源注入，消除了严格的</span>
<span lang="EN-US">EJB</span>
<span style="font-family: 宋体;">组件模型约束，并且取代了复杂的</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">配置文件。</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">3.</span>
<span style="font-family: 宋体;">元数据甚至使我们可以不用修改核心语言，就能够在</span>
<span lang="EN-US"> Java </span>
<span style="font-family: 宋体;">语言中添加新功能，使核心语言成为一种开放式语言。在纯面向对象的语言中实现</span>
<span lang="EN-US">AOP</span>
<span style="font-family: 宋体;">就是使用元数据进行语言扩展的一个很好例子。</span>
<span lang="EN-US">AspectWerkz</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US">JBoss AOP</span>
<span style="font-family: 宋体;">以及</span>
<span lang="EN-US">AspectJ5 </span>
<span style="font-family: 宋体;">使用元数据将类的语义转换为一个</span>
<span lang="EN-US">aspect</span>
<span style="font-family: 宋体;">、将数据字段转换为一个</span>
<span lang="EN-US">pointcut</span>
<span style="font-family: 宋体;">、将方法转换为一个</span>
<span lang="EN-US">advice</span>
<span style="font-family: 宋体;">，等等。</span>
</p>
<p class="MsoNormal" style="text-indent: 21.1pt; line-height: 16pt;"><strong><span lang="EN-US">Java</span>
</strong>
<strong><span style="font-family: 宋体;">平台的元数据</span>

</strong>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">Java </span>
<span style="font-family: 宋体;">元数据（</span>
<span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">）是</span>
<span lang="EN-US"> J2SE 5.0 </span>
<span style="font-family: 宋体;">（研发历时近三年，于</span>
<span lang="EN-US">2004</span>
<span style="font-family: 宋体;">年</span>
<span lang="EN-US">9</span>
<span style="font-family: 宋体;">月</span>
<span lang="EN-US">30</span>
<span style="font-family: 宋体;">日</span>
<span style="font-family: 宋体;">正式发布，代号为&ldquo;</span>
<span lang="EN-US">Tiger</span>
<span style="font-family: 宋体;">&rdquo;</span>
<span lang="EN-US">)</span>
<span style="font-family: 宋体;">新增加的功能之一，它在</span>
<span lang="EN-US">JSR-175</span>
<span style="font-family: 宋体;">规范中有详细定义。该机制允许在</span>
<span lang="EN-US"> Java </span>
<span style="font-family: 宋体;">代码中添加自定义注释，并允许通过反射（</span>
<span lang="EN-US">reflection</span>
<span style="font-family: 宋体;">），以编程方式访问元数据注释。通过提供为程序元素附加额外数据的标准方法，元数据功能具有简化和改进许多应用程序开发领域的潜在能力，其中包括配置管理、框架实现和代码生成。</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">不直接影响程序的语义。然而，开发和部署工具可以读取这些注释，并以某种形式处理这些注释，可能生成其他</span>
<span lang="EN-US"> Java</span>
<span style="font-family: 宋体;">源程序、</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">配置文件或者要与包含注释的程序一起使用的其他组件，从而影响运行状态的程序的语义。注释可以从源代码中读取，从编译后的</span>
<span lang="EN-US">.class</span>
<span style="font-family: 宋体;">文件中读取，也可以通过反射机制在运行时读取。</span>
</p>
<p class="MsoNormal" style="text-indent: 21.1pt; line-height: 16pt;"><strong><span lang="EN-US">Annotation</span>
</strong>
<strong><span style="font-family: 宋体;">具有以下的一些特点：</span>

</strong>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US"><span>&nbsp;</span>
1.</span>
<span style="font-family: 宋体;">元数据以标签的形式存在于</span>
<span lang="EN-US">Java</span>
<span style="font-family: 宋体;">代码中。</span>
<span lang="EN-US"><span>&nbsp; </span>
</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US"><span>&nbsp;</span>
2.</span>
<span style="font-family: 宋体;">元数据描述的信息是类型安全的，即元数据内部的字段都是有明确类型的。</span>
<span lang="EN-US"><span>&nbsp; </span>
</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US"><span>&nbsp;</span>
3.</span>
<span style="font-family: 宋体;">元数据需要编译器之外的工具额外的处理用来生成其它的程序部件。</span>
<span lang="EN-US"><span>&nbsp; </span>
</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US"><span>&nbsp;</span>
4.</span>
<span style="font-family: 宋体;">元数据可以只存在于</span>
<span lang="EN-US">Java</span>
<span style="font-family: 宋体;">源代码级别，也可以存在于编译之后的</span>
<span lang="EN-US">Class</span>
<span style="font-family: 宋体;">文件内部。</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span style="font-family: 宋体;">事实上，早在</span>
<span lang="EN-US">JDK5.0</span>
<span style="font-family: 宋体;">推出语言级的元数据机制</span>
<span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">以前，就一直存在对元数据的需求。但是由于没有提供表达元数据的标准机制，出现了各种解决方案。下面罗列了一些例子</span>
</p>
<p class="MsoNormal" style="margin-left: 48pt; text-indent: -21pt; line-height: 16pt;"><!--  [if !supportLists]--><span style="font-family: Wingdings;"><span>l<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</span>
</span>
<!--  [endif]--><span lang="EN-US">transient </span>
<span style="font-family: 宋体;">关键字</span>
<span lang="EN-US"><span>&nbsp;
</span>
</span>
</p>
<p class="MsoNormal" style="margin-left: 48pt; text-indent: -21pt; line-height: 16pt;"><!--  [if !supportLists]--><span style="font-family: Wingdings;"><span>l<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</span>
</span>
<!--  [endif]--><span lang="EN-US">Serializable </span>
<span style="font-family: 宋体;">标记接口</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="margin-left: 48pt; text-indent: -21pt; line-height: 16pt;"><!--  [if !supportLists]--><span style="font-family: Wingdings;"><span>l<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</span>
</span>
<!--  [endif]--><span lang="EN-US">xml </span>
<span style="font-family: 宋体;">部署描述文件</span>
<span lang="EN-US"><span>&nbsp; </span>
</span>
</p>
<p class="MsoNormal" style="margin-left: 48pt; text-indent: -21pt; line-height: 16pt;"><!--  [if !supportLists]--><span style="font-family: Wingdings;"><span>l<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</span>
</span>
<!--  [endif]--><span lang="EN-US">manifest.mf </span>
<span style="font-family: 宋体;">文件</span>
<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal" style="margin-left: 48pt; text-indent: -21pt; line-height: 16pt;"><!--  [if !supportLists]--><span style="font-family: Wingdings;"><span>l<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</span>
</span>
<!--  [endif]--><span lang="EN-US">Javadoc </span>
<span style="font-family: 宋体;">标记（将文档直接写在源程序里，极大的方便了文档的编写）</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="margin-left: 48pt; text-indent: -21pt; line-height: 16pt;"><!--  [if !supportLists]--><span style="font-family: Wingdings;"><span>l<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</span>
</span>
<!--  [endif]--><span lang="EN-US">XDoclet</span>
<span style="font-family: 宋体;">（使用类似于</span>
<span lang="EN-US">JavaDoc</span>
<span style="font-family: 宋体;">的语法撰写描述信息，并使用工具生成描述文件）</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span style="font-family: 宋体;">这些方法都存在一定的局限性，比如使用关键字不具有扩展性，用户自定义新的关键字；标记接口没有提供额外的信息，它们不能带有参数，并且只能处理类，而不能处理字段或方法或包。</span>
<span lang="EN-US">Javadoc</span>
<span style="font-family: 宋体;">和</span>
<span lang="EN-US">XDoclet</span>
<span style="font-family: 宋体;">标记不会被编译器检查。</span>
</p>
<p class="MsoNormal" style="text-indent: 21.1pt; line-height: 16pt;"><strong><span style="font-family: 宋体;">最后，我们再详细的对比一下</span>
<span lang="EN-US">Annotation</span>
</strong>
<strong><span style="font-family: 宋体;">和</span>
<span lang="EN-US">XML</span>
</strong>
<strong><span style="font-family: 宋体;">部署描述文件的优劣</span>

</strong>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">1.XML</span>
<span style="font-family: 宋体;">配置文件与代码文件分离，不利于一致性维护，缺乏在运行时的反射机制。而</span>
<span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">与代码一起被编译器处理，并能够在运行时访问。</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">2.</span>
<span style="font-family: 宋体;">通常</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">配置文件都很复杂而且冗长，为了配置代码，</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">文件必须复制许多信息：比如代码中类名字和方法名字。</span>
<span lang="EN-US">Java</span>
<span style="font-family: 宋体;">注释则不同，它是代码的一部分，不需要额外的引用就可以指明配置信息。</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">3.XML</span>
<span style="font-family: 宋体;">配置文件是文本文件，没有显式的类型支持，需要到运行时刻才能发现隐藏的错误。而</span>
<span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">是类型安全的，它会被编译器检查。</span>
<span lang="EN-US"><span>&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">4.XML</span>
<span style="font-family: 宋体;">文件可以表达复杂的关系，但是在注释中我们却很难表达复杂的或层次的结构。</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">5. XML</span>
<span style="font-family: 宋体;">配置文件是在代码之外被单独处理的，也就是说基于</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">的配置信息不是硬编码的，可以部署的时候进行修改。而修改</span>
<span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">则需要进行重新编译，不过我们可以利用</span>
<span lang="EN-US">AOP</span>
<span style="font-family: 宋体;">提供的机制为已有的代码添加</span>
<span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">。通过部署不同的</span>
<span lang="EN-US">AOP</span>
<span style="font-family: 宋体;">模块，就能使代码具有不同的</span>
<span lang="EN-US">Annotation</span>
<span style="font-family: 宋体;">，但比起直接修改</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">显得复杂。</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span style="font-family: 宋体;">总而言之，注释是简单易用的，并且对大多数应用来说已经足够了。而</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">文件更复杂，但具有部署的灵活性，因而被用来处理与部署相关的决策。注释与</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">配置文件可以一起使用。由于注释只能保存相当少的配置信息，只有预先集成的框架组件（类似在框架组件中已经完成了大多数预备工作）可以广泛地把注释作为配置选项。而</span>
<span lang="EN-US">XML</span>
<span style="font-family: 宋体;">配置文件作为一个可选的重载机制，可以用于改变注释的默认行为。</span>
<span lang="EN-US"> </span>
</p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 16pt;"><span lang="EN-US">&nbsp;</span>
</p>
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251798" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 12 Oct 2008 13:39:13 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251798</link>
        <guid>http://www.javaeye.com/topic/251798</guid>
      </item>
          <item>
        <title>pdf文件批量转换成jpg文件</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qianjigui.javaeye.com">qianjigui</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251501" style="color:red;">http://www.javaeye.com/topic/251501</a>&nbsp;
          发表时间: 2008年10月10日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近由于课程安排，我们需要写一些文章。其中涉及讨论软件界面设计、JavaCC使用、解释器构造设计等等，我便有了发到blog的想法。由于文章又长有多，在向上发送和编辑时非常麻烦（其中涉及表格、图像、各种文字以及数学公式）。在这个时候我想到可以将文件导出成图片，这样虽然无法让浏览器检索到但是便于编辑、浏览和保存，当然它也在一定程度上起到了版权保护的作用（不过这个意义不大，譬如可以通过人肉啊、模式识别工具来把数据抠出来）。总之，我便遇到了一个新的问题：需要做一个方便转换的小工具。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在这里，我通过组合Ubuntu上已有的各个小组件来实现这个工具。在前一个版本中主要是原理上面的实现，后面一个版本提高了速度（让数据交换在缓存中进行，第一个版本是通过文件交换的）以及一些注释达到软件工程的基本标准。</p>
<div class="quote_title">系统环境 写道</div>
<div class="quote_div">Ubuntu 8.04<br />
GNOME 2.22.3<br />
bash shell</div>
&nbsp;
<div class="quote_title">工具运行环境 写道</div>
<div class="quote_div">第一版本：<br />
<em><strong>Bash shell<br />
pdftoppm<br />
pnmtojpeg</strong>
</em>
<br />
<br />
第二版本：<br />
在第一版本基础上添加<br />
<em><strong>pdfinfo</strong>
</em>
</div>
<p>以下是详细的shell代码，第二版本中有比较详细的注释。欢迎大家交流学习。</p>
<p>第一个版本：</p>
<pre name="code" class="js">#This shell is using for tanslate the pdf files to many jpg files.
#You can make your copyright more safely.
pdfFileName=${1%.pdf}
pdftoppm $pdfFileName.pdf $pdfFileName 
ppmFiles=`ls $pdfFileName-*.ppm`
jpgDir=$pdfFileName-pdf2jpg
mkdir $jpgDir
for pic in $ppmFiles
do
  jpgFile=${pic%ppm}jpg
  pnmtojpeg $pic &gt; $jpgFile
  mv $jpgFile $jpgDir
done
rm -r $ppmFiles
</pre>
<p>&nbsp;第二个版本：</p>
<pre name="code" class="js">#This shell is using for tanslate the pdf file to many jpg files.
#You can make your copyright more safely.

if [ $# != 1 ]
then
  echo 'pdftojpg version 0.01'
  echo 'Copyright 2001-2008 by QJGui'
  echo 'Usage: pdftojpg &lt;PDF-file&gt;'
  exit
fi

###############Get the basic information about the pdf file
#pdf File name
pdfFile=$1
if [  -e $pdfFile ]
then
  echo &quot;Find File: $pdfFile&quot;
else
  echo &quot;Can not find the pdf File: $pdfFile&quot;
  exit
fi
#pdf File name without the type(.pdf)
pdfFileName=${pdfFile%.pdf}
#Create the dictionary
jpgDir=$pdfFileName-pdf2jpg
if [ -e $jpgDir ]
then
  echo &quot;The dictionary of $jpgDir exists. Removing it......&quot;
  rm -r $jpgDir
fi
echo &quot;Make a new dictionary $jpgDir......&quot;
mkdir $jpgDir
#Get the total page of the pdf file
count=0
x=`pdfinfo $pdfFile | grep 'Pages:*' `
totPage=${x:6:${#x}}
echo &quot;Total page number: $totPage&quot;
#####################Get Basic Info End ###########

while [ $count -lt $totPage ] 
do
  count=`expr $count + 1`
  jpgFile=$pdfFileName-$count.jpg
  echo &quot;Convert the page $count/$totPage......&quot;
  pdftoppm -f $count -l $count $pdfFile | pnmtojpeg &gt; ./$jpgDir/$jpgFile
done

echo &quot;Success. Finish the job. Please see the $jpgDir &quot;
</pre>
<p>&nbsp;
在编辑保存完后，建议大家将其添加到bin目录中以方便调用。</p>
<div class="quote_title">工具的进一步改进 写道</div>
<div class="quote_div">这个工具在很多方面还有改进的余地。<br />
例如：<br />
pdf文件信息截取方式<br />
ppm（中间过渡文件）、jpg等图片还有调节的余地</div>
&nbsp;
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251501" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Oct 2008 23:55:02 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251501</link>
        <guid>http://www.javaeye.com/topic/251501</guid>
      </item>
          <item>
        <title>hibernate:入门小例子</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://daydaystudy.javaeye.com">逆风逛飙</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251602" style="color:red;">http://www.javaeye.com/topic/251602</a>&nbsp;
          发表时间: 2008年10月11日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1、新建java项目<br />2、创建User Library:hibernate,加入如下jar<br />	* HIBERNATE_HOME/hibernate3.jar<br />	* HIBERNATE_HOME/lib/*.jar<br />	* MySql jdbc驱动<br />3、把新建的类库加入到项目<br />4、创建hibernate配置文件hibernate.cfg.xml<br /><pre name="code" class="java">
&lt;!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

&lt;hibernate-configuration>
&lt;session-factory>
	&lt;property name="myeclipse.connection.profile">mysql&lt;/property>
	&lt;property name="connection.url">
		jdbc:mysql://localhost:3306/hibernate_first
	&lt;/property>
	&lt;property name="connection.username">root&lt;/property>
	&lt;property name="connection.password">admin&lt;/property>
	&lt;property name="connection.driver_class">
		com.mysql.jdbc.Driver
	&lt;/property>
	&lt;property name="dialect">
		org.hibernate.dialect.MySQLDialect
	&lt;/property>
	&lt;property name="show_sql">true&lt;/property>
	
&lt;/session-factory>
&lt;/hibernate-configuration>

</pre><br />5、定义实体类<br /><pre name="code" class="java">
package com.lhtwqh.hibernate;

import java.util.Date;

public class User {
	private String id;
	private String name;
	private String password;
	private Date createTime;
	private Date expireTime;
	
	public User(){
		
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	public Date getExpireTime() {
		return expireTime;
	}
	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}

}

</pre><br />6、定义User类的映射文件User.hbm.xml<br /><pre name="code" class="java">
&lt;?xml version="1.0"?>
&lt;!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
&lt;hibernate-mapping 	package="com.lhtwqh.hibernate">
	&lt;class name="User">
		&lt;id name="id" length="32">
		  &lt;generator class="uuid"/>
		&lt;/id>
		&lt;property name="name"/>
		&lt;property name="password"/>
		&lt;property name="createTime"/>
		&lt;property name="expireTime"/>
	&lt;/class>
&lt;/hibernate-mapping>
</pre><br /><br />7、将User.hbml.xml文件加入到hibernate.cfg.xml文件中<br /><pre name="code" class="java">
   &lt;mapping resource="com/lhtwqh/hibernate/User.hbm.xml">
         &lt;/mapping>
</pre><br />8、编写hbm2ddl工具类，将实体类生成数据库表<br /><pre name="code" class="java">

package com.lhtwqh.hibernate;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportDB {
	public static void main(String[] args) {
            //读取配置文件
	   Configuration config = new Configuration().configure();
	   SchemaExport export = new SchemaExport(config);
            //生成数据库表
	   export.create(true, true);
	}

}</pre><br />9、开发客户端<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <pre name="code" class="java">
package com.lhtwqh.hibernate;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Client {
    public static void main(String[] args) {
      //读取hibernate.cfg.xml文件
      Configuration config = new Configuration().configure();
      //创建SessionFactory
      sessionFactory sessionFactory=config.buildSessionFactory()   
      Session session = null;

		try {
			session = sessionFactory.openSession();
                            //开启事务
			session.beginTransaction();
			User user = new User();
			user.setName("lhtwqh");
			user.setPassword("lhtwqh");
			user.setCreateTime(new Date());
			user.setExpireTime(new Date());
                            //保存数据
			session.save(user);
                            //提交事务
			session.getTransaction().commit();

		} catch (Exception e) {
                            //回滚事务
			session.getTransaction().rollback();
			e.printStackTrace();
		} finally {
			if (session != null) {
				if (session.isOpen()) {
                                             //关闭session
					session.close();
				}

			}
		}
	}
}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251602" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 11 Oct 2008 13:45:52 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251602</link>
        <guid>http://www.javaeye.com/topic/251602</guid>
      </item>
          <item>
        <title>对JAVA多线程的理解</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ypluck.javaeye.com">ypluck</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251550" style="color:red;">http://www.javaeye.com/topic/251550</a>&nbsp;
          发表时间: 2008年10月11日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近通过看书和听前辈的讲解，使我对JAVA的多线程有了一些深刻的理解<br /><br />一。对多线程感兴趣是因为JACOB的ComThread这个线程JVM无法回收，只能用ComThread.release()来释放。其实这有点类似于C++的new和delete。呵呵，成双配对的。<br /><br />二。JAVA的多线程，我个人认为，其实就是在操作内存和CPU。首先是：new一个线程，把它放入到内存中，其次，运行线程其实就是CPU去执行内存中这段代码。这两步操作用代码来描述就是：myThread TheThread =new myThread();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TheThread.start();<br />对于TheThread.sleep(1000)之类的，我的解释为：就是让CPU暂停一秒的时间去干其他的事。<br /><br />三。哈哈，这只是我这两天的一些收获。初学JAVA，不要笑话我。希望对朋友们有些帮助。后续我会给大家带来更多的线程消息。
          <br/><br/>
          <span style="color:red;">
            <a href="http://www.javaeye.com/topic/251550" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 11 Oct 2008 11:09:11 +0800</pubDate>
        <link>http://www.javaeye.com/topic/251550</link>
        <guid>http://www.javaeye.com/topic/251550</guid>
      </item>
          <item>
        <title>SiteMesh在JSP中页面装饰</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://limuquan.javaeye.com">limuquan</a>&nbsp;
                    链接：<a href="http://www.javaeye.com/topic/251522" style="color:red;">http://www.javaeye.com/topic/251522</a>&nbsp;
          发表时间: 2008年10月11日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>转自:<a href="http://javauu.com/thread-36-1-1.html" title="http://javauu.com/thread-36-1-1.html" class="quote_title" target="_self">http://javauu.com/thread-36-1-1.html</a></p>
<p>、SiteMesh在JSP中页面装饰</p>
<div class="t_msgfont" id="postmessage_55"><span style="font-size: medium;">一、SiteMesh在JSP页面中使用</span><br /><span style="font-size: small;">
<blockquote>通常情况下，在一个工程中，我们不得不使用include标签在每个jsp页面中来包含各种header, stylesheet, scripts, footer。现在，在sitemesh的帮助下，不需要在每个页面中使用include标签，并可实现相同效果。</blockquote>
</span><br /><span style="font-size: medium;">二、SiteMesh在JSP页面中使用<span class="t_tag" onclick="tagshow(event)">实例</span></span><br /><span style="font-size: small;">
<blockquote>接下来，完成一个SiteMesh与JSP结合的实例，并且添加打印装饰。</blockquote>
</span><br />
<ul type="1">
<span style="font-size: small;"><br />
<li>将sitemesh-2.3.jar放 到 [web-app]/WEB-INF/lib目录下；<br /></li>
<li>在[web-app]/WEB-INF/新建一个decorators.xml文件，包含以下内容：<code id="code0">
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">普通浏览</a><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">复制代码</a><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">打印代码</a><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('About',this);return false;">关于程序</a></div>
</div>
<ol class="dp-xml">
<li class="alt"><span><strong><span style="color: #006699;"><span class="tag">&lt;?</span><span class="tag-name">xml</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">version</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"1.0"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">encoding</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"utf-8"</span></span><span class="tag"><strong><span style="color: #006699;">?&gt;</span></strong></span><span>&nbsp;&nbsp;</span></span></li>
<li><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">decorators</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">defaultdir</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"/decorators"</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;此处用来定义不需要过滤的页面&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">excludes</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;过滤掉error.jsp页面&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">pattern</span><span class="tag">&gt;</span></span></strong><span>/error.jsp</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">pattern</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">excludes</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;用来定义装饰器要过滤的页面&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">decorator</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"main"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">page</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"main.jsp"</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">pattern</span><span class="tag">&gt;</span></span></strong><span>/*</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">pattern</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">decorator</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;用来定义装饰器要过滤的打印页面&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">decorator</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"printable1"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">page</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"printable1.jsp"</span></span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">decorators</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
</ol></div>
<pre name="code" class="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;decorators defaultdir="/decorators"&gt;
    &lt;!-- 此处用来定义不需要过滤的页面 --&gt;
    &lt;excludes&gt;
     &lt;!-- 过滤掉error.jsp页面 --&gt;
     &lt;pattern&gt;/error.jsp&lt;/pattern&gt;
    &lt;/excludes&gt;

 &lt;!-- 用来定义装饰器要过滤的页面 --&gt;
    &lt;decorator name="main" page="main.jsp"&gt;
        &lt;pattern&gt;/*&lt;/pattern&gt;
    &lt;/decorator&gt;
 &lt;!-- 用来定义装饰器要过滤的打印页面 --&gt;
    &lt;decorator name="printable1" page="printable1.jsp"/&gt;
&lt;/decorators&gt;</pre>
</code></li>
<li>在/WEB-INF/新建一个sitemesh.xml文件，包含内容如下：<code id="code1">
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">普通浏览</a><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">复制代码</a><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">打印代码</a><a href="http://javauu.com/thread-36-1-1.html" onclick="dp.sh.Toolbar.Command('About',this);return false;">关于程序</a></div>
</div>
<ol class="dp-xml">
<li class="alt"><span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">sitemesh</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">property</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"decorators-file"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">value</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"/WEB-INF/decorators.xml"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">excludes</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">file</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"${decorators-file}"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;Page&nbsp;Parsers&nbsp;：负责读取stream的数据到一个Page对象中以被SiteMesh解析和操作。--&gt;</span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">page-parsers</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">parser</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">default</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"true"</span></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">class</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"com.opensymphony.module.sitemesh.parser.DefaultPageParser"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">parser</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">content-type</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"text/html"</span></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">class</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"com.opensymphony.module.sitemesh.parser.FastPageParser"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">parser</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">content-type</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"text/html;charset=utf-8"</span></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">class</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"com.opensymphony.module.sitemesh.parser.FastPageParser"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">page-parsers</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">decorator-mappers</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;可打印的装饰器，可以允许你当用http://localhost/test.html?printable=true方式访问时给出原始页面以供打印&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;其中printable1&nbsp;与&nbsp;decorators.xml中的装饰器printable1一致进行映射,若不添加此段,默认为printable&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">mapper</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">class</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper"</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">param</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"decorator"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">value</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"printable1"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">param</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"parameter.name"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">value</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"printable"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">param</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"parameter.value"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">value</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"true"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">mapper</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">mapper</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">class</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper"</span></span><span class="tag"><strong><span style="color: #006699;">&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;</span><span class="tag-name">param</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">name</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"config"</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000;">value</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff;">"${decorators-file}"</span></span><span>&nbsp;</span><span class="tag"><strong><span style="color: #006699;">/&gt;</span></strong></span><span>&nbsp;&nbsp;</span></li>
<li><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">mapper</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;</span><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">decorator-mappers</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
<li><strong><span style="color: #006699;"><span class="tag">&lt;/</span><span class="tag-name">sitemesh</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li>
</ol></div>
<pre name="code" class="xml">&lt;sitemesh&gt;
 &lt;property name="decorators