﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Thinker IN JAVA-随笔分类-JAVA技术</title><link>http://www.blogjava.net/Supershen/category/18134.html</link><description>Java  JavaEE  Jsp  Struts1.x Struts2.x  Hibernate Spring2.0 EJB3.0   ASP   .NET   Php   Flex ----  一个都不能少!  &lt;br&gt;  留着，希望帮助到更多需要的人。</description><language>zh-cn</language><lastBuildDate>Thu, 17 Jan 2008 23:21:03 GMT</lastBuildDate><pubDate>Thu, 17 Jan 2008 23:21:03 GMT</pubDate><ttl>60</ttl><item><title>最新学习关键字</title><link>http://www.blogjava.net/Supershen/archive/2008/01/15/175379.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Tue, 15 Jan 2008 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2008/01/15/175379.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/175379.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2008/01/15/175379.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/175379.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/175379.html</trackback:ping><description><![CDATA[<p>1. dwr&nbsp; - direct web remote<br />
2. 推技术<br />
3. http 长连接<br />
4. Comet&nbsp; ----&nbsp;&nbsp; HTTP长连接的&#8220;服务器推&#8221;技术<br />
5. Jetty服务器 ---- &nbsp;Jetty 6 Web 服务器针对 AJAX、Comet 应用的特点进行了很多创新的改进，请参考文章&#8220;AJAX，Comet and Jetty&#8221;（请参见 <a href="http://www.ibm.com/developerworks/cn/web/wa-lo-comet/index.html#resources"><font color="#996699">参考资源</font></a>）。<br />
<br />
<br />
http://wiki.javascud.org/display/dwrcn/Home<br />
http://wiki.springside.org.cn/display/springside/DWR<br />
</p>
http://blog.csdn.net/octverve/archive/2007/09/26/1801826.aspx 
<img src ="http://www.blogjava.net/Supershen/aggbug/175379.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2008-01-15 10:07 <a href="http://www.blogjava.net/Supershen/archive/2008/01/15/175379.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 学习视频集  不停更新</title><link>http://www.blogjava.net/Supershen/archive/2008/01/08/173545.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Tue, 08 Jan 2008 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2008/01/08/173545.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/173545.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2008/01/08/173545.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/173545.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/173545.html</trackback:ping><description><![CDATA[<p>学习共进！<a href="http://www.blogjava.net/beansoft/archive/2007/09/19/146315.html"><br />
<br />
MyEclipse 5.5 开发 Struts 1.2 简单登录的入门视频(有声+源码)</a>&nbsp; 2007-09-19 01:50</p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/09/02/142046.html">视频讲解: Netbeans 5.5 配置显示中文 JavaDoc</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/09/01/141995.html">入门视频: 使用 MyEclipse 开发 Swing 应用</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/08/31/141845.html">河南话讲解 MyEclipse + Tomcat Servlet 开发入门视频</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/08/31/141797.html">MyEclipse + JPA + Toplink 开发视频: 开发并运行第一个 JPA 项目</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/08/31/141695.html">MyEclipse + JBoss 开发视频: 配置,开发并运行第一个 EJB 3 项目</a></p>
<p><a class="postTitle2" id="_45f7b17fef0_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/29/140937.html"><font color="#1a8bc8">JDBC 入门视频: 配置 SQL Explorer 插件, ODBC 数据源, 建表, 用 JDBC 读取数据库</font></a> </p>
<p><font color="#1a8bc8"></font><a href="http://www.blogjava.net/beansoft/archive/2007/08/28/140353.html">Tomcat 入门视频: 下载, 运行, 第一个 HelloWorld</a></p>
<a class="postTitle2" id="_45f7b17fef0_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl06_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/27/139836.html">
<p></a><a class="postTitle2" id="_45f7b17fef0_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/27/140023.html"><font color="#1a8bc8">Eclipse 入门视频: 下载, 运行, 第一个 HelloWorld</font></a><a class="postTitle2" id="_45f7b17fef0_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl06_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/27/139836.html"> </a></p>
<p><a class="postTitle2" id="_45f7b17fef0_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl02_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/27/139901.html"><font color="#1a8bc8">Java 入门视频: 下载, 安装 JDK, 配置环境变量, HelloWorld</font></a><a class="postTitle2" id="_45f7b17fef0_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl06_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/27/139836.html"><font color="#1a8bc8"> </p>
</font>
<p><font color="#1a8bc8">推荐给初学者的 Java 视频</font></a> </p>
<p><a class="postTitle2" id="_217969d9afe_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/23/138787.html"><u><font color="#800080">Netbeans 6.0 M10 开发 UML 项目的入门视频</font></u></a> </p>
<p><a class="postTitle2" id="_217969d9afe_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl02_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/23/138785.html"><font color="#1a8bc8">MyEclipse UML 入门视频2 - 根据代码反向工程生成 UML</font></a> </p>
<p><a class="postTitle2" id="_217969d9afe_HomePageDays_DaysList_ctl01_DayItem_DayList_ctl00_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/21/138445.html"><font color="#1a8bc8">MyEclipse UML 入门视频</font></a> </p>
<p><font color="#1a8bc8"><a class="postTitle2" id="homepage1_HomePageDays_ctl00_DayList_ctl06_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/12/136164.html">MyEclipse + Tomcat 开发视频: 下载,安装,配置,开发并运行Web项目</a><a class="postTitle2" id="_45f7b17fef0_HomePageDays_DaysList_ctl01_DayItem_DayList_ctl06_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/08/28/140353.html"> </a></font></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/08/08/135310.html">小电影: 用 MyEclipse 开发 Spring + Struts + Hibernate 的总结与操作视频(9分钟) </a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/08/06/134571.html">小电影: 用 MyEclipse 开发 Spring + Struts 的总结与操作视频(7分钟)</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/08/03/134327.html">用MyEclipse 4 分钟开发Spring整合Hibernate应用的视频</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/07/24/132052.html">在 Linux 上配置并运行 Tomcat 服务器(入门整理)(视频)</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/07/16/130521.html">Java 初学者入门视频: 下载 JDK 和 Netbeans</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/06/15/124514.html">Eclipse 配置显示中文 javadoc 的视频</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/06/14/124274.html">Hibernate 英文 PPT 及 MyEclipse 操作视频整理</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/06/12/123627.html">推荐一点 MyEclipse 的官方Spring,Hibernate入门视频教程</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/05/21/118869.html">Netbeans 5.5 + JPA + Hibernate 3 + Tomcat 实例有声视频</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/05/14/117350.html">推荐一些AJAX视频和文章</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/05/09/116258.html">夏昕 &lt;&lt;Spring 开发指南入门&gt;&gt;1 分钟上手教程视频(不带解说)</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/05/08/115878.html">AJAX 入门培训 PPT 及示例代码</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/05/07/115738.html">Java EE 5 入门 PPT 讲解有声视频 - 第二部分</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/05/07/115670.html">Java EE 5 入门 PPT 讲解有声视频 - 第一部分</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/04/30/114763.html">Java EE 5 入门视频 - 在 JSF 中使用 JPA</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/04/30/114752.html">Jigloo 开发 Swing 的入门教程</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/04/24/113110.html">视频:使用 Netbeans 5.5可视化开发 JSF 的简单注册流程</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/04/23/113002.html">Java EE 5 入门视频 - 在 J2SE 中使用 JPA</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/01/18/94583.html">Navicat管理Mysql 的视频</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2006/12/04/85308.html">Weblogic 9 之旅图文视频 2 - Portal 开发环境设置, 简单的Portal 开发(视频已贴上)</a></p>
<p><a href="http://www.blogjava.net/beansoft/archive/2006/11/27/83767.html">用 JProfiler4 调优 Weblogic 和 Tomcat 的视频(原创)</a><br />
<br />
来自 http://www.blogjava.net/beansoft</p>
<img src ="http://www.blogjava.net/Supershen/aggbug/173545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2008-01-08 10:05 <a href="http://www.blogjava.net/Supershen/archive/2008/01/08/173545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天看了一下FreeMarker 才突然领悟到-----周星星说的一句话：天下武功出少林  【进入java半年有感】</title><link>http://www.blogjava.net/Supershen/archive/2007/09/17/145779.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Mon, 17 Sep 2007 03:46:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2007/09/17/145779.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/145779.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2007/09/17/145779.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/145779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/145779.html</trackback:ping><description><![CDATA[<p>下边的所有都是自己对JAVA的理解不知道对不对，有待于以后实践验证<br />
<br />
用JAVA编程，无论是什么框架，什么库，什么插件， 他们的也还是来自 最基本java类编程。<br />
<br />
比如，我猜想 TOMCAT服务器，也是由一个带MAIN方法的类来启动的， 然后开通一个端口服务器，它的原理应该和java socket server编程应该是一个道理。主要是启动一些类，来接受客户端的请求（容器的原理应该是这样吧）</p>
<br />
再说 servlet 也是基本的 JAVA类， 他们是受容器的管理，受到的是容器的调用（容器应该也就是带main的java类），并对客户端产生相应。<br />
<br />
还有像 jsp 的所谓表现层框架，最终也是调用到带main函数的java类。 它的原理是 jsp编译生产 servlet ，servlet 最终还是依靠容器。 <br />
其实我想，自己也可以开发一个表现层，只要能实时编译成servlet，就能和jsp一样的功能了。<br />
不过jsp是sun公司的标准产品，它的库已经集合在大多数容器上了，得到广大容器的广泛支持，出来得也早，用人也多，很少人想到要做新的表现层（如果没什么好功能，就等于重复发明车轮）。<br />
<br />
FreeMarker 的原理也是一样，简单说它就是一个库，你可以把它集合到容器里，得到容器的支持后，用FreeMarker 编写的表现层就能实时编译成servlet。 &nbsp;最后得到的和jsp 得到的是一个效果。<br />
FreeMarker 最终的结果还是容器调用。<br />
<br />
不过要做一个FreeMarker 可不简单，要有好的想法，要不就和jsp功能重复了，没价值。<br />
<br />
<br />
以上都是个人想出来的 不知道是否正确 有待于个人深入学习。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/Supershen/aggbug/145779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2007-09-17 11:46 <a href="http://www.blogjava.net/Supershen/archive/2007/09/17/145779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 中文乱码处理。</title><link>http://www.blogjava.net/Supershen/archive/2007/05/20/118756.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Sun, 20 May 2007 14:36:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2007/05/20/118756.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/118756.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2007/05/20/118756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/118756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/118756.html</trackback:ping><description><![CDATA[<p>java 中文乱码处理。</p>
<p>&nbsp;<br>参考<br><a href="http://china.eceel.com/article/study_for_character_encoding_java.htm">http://china.eceel.com/article/study_for_character_encoding_java.htm</a><br><a href="http://upurban.com/bbs/viewtopic.php?t=246">http://upurban.com/bbs/viewtopic.php?t=246</a><br></p>
<p>1。什么是utf-8，什么是ISO-8859-1，什么是GB2312，还有什么是unicode</p>
<p>2。java 程序的字符的表示格式</p>
<p>3。jsp 程序中文显示处理实例</p>
<p>3。1<br>&lt;%@ page&nbsp; pageEncoding="ISO-8859-1"%&gt;和&lt;%@ page&nbsp; pageEncoding="GB2312"%&gt;和&lt;%@ page&nbsp; </p>
<p>pageEncoding="UTF-8"%&gt;各自的意思是什么，他们是否只对post提交有效！<br>request.setCharacterEncoding("UTF-8")是什么意思？有什么区别？还有</p>
<p>response.setCharacterEncoding("UTF-8")，优先于下边<br>&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;</p>
<p>setCharacterEncoding()该函数用来设置http请求或者相应的编码。</p>
<p>对于request，是指提交内容的编码，指定后可以通过getParameter()则直接获得正确的字符串，如果不</p>
<p>指定，则默认使用iso8859-1编码，需要进一步处理。参见下述"表单输入"。值得注意的是在执行</p>
<p>setCharacterEncoding()之前，不能执行任何getParameter()。java doc上说明：This method must be </p>
<p>called prior to reading request parameters or reading input using getReader()。而且，该指定</p>
<p>只对POST方法有效，对GET方法无效。分析原因，应该是在执行第一个getParameter()的时候，java将会</p>
<p>按照编码分析所有的提交内容，而后续的getParameter()不再进行分析，所以setCharacterEncoding()无</p>
<p>效。而对于GET方法提交表单是，提交的内容在URL中，一开始就已经按照编码分析所有的提交内容，</p>
<p>setCharacterEncoding()自然就无效。</p>
<p>对于response，则是指定输出内容的编码，同时，该设置会传递给浏览器，告诉浏览器输出内容所采用的</p>
<p>编码。<br>&nbsp;<br>3.2. jsp输出</p>
<p>指定文件输出到browser是使用的编码，该设置也应该置于文件的开头。例如：&lt;%@ page </p>
<p>contentType="text/html; charset= GBK" %&gt;。该设置和response.setCharacterEncoding("GBK")等效。</p>
<p>&nbsp;</p>
<p>4。java EE程序利用过滤器 处理中文问实例<br>提交数据的编码格式<br>tomcat默认提交格式是ISO-8859-1<br>可以通过设置过滤器（只针对post提交）或修改server.xml 的URIencoding 编码格式（只针对get提交） </p>
<p>达到你想要的 数据提交编码格式。</p>
<p>&nbsp;</p>
<p>总结</p>
<p>---by mylu 18:26 2007-5-20</p>
<img src ="http://www.blogjava.net/Supershen/aggbug/118756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2007-05-20 22:36 <a href="http://www.blogjava.net/Supershen/archive/2007/05/20/118756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate 学习~</title><link>http://www.blogjava.net/Supershen/archive/2007/02/07/98600.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Wed, 07 Feb 2007 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2007/02/07/98600.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/98600.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2007/02/07/98600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/98600.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/98600.html</trackback:ping><description><![CDATA[
		<p>ORM<br />Object Relation Mapping<br />对象 关系 映射</p>
		<p>对象 指实体域对象<br />关系 关系数据</p>
		<p>
				<br />模型</p>
		<p>概念模型（实体-属性）<br />关系数据模型（关系数据库）<br />域模型（对象）</p>
		<p>
				<br />软件分层</p>
		<p>v － 表述层<br />c ／</p>
		<p>    ／业务层<br />m－ 持久层（hibernate 技术实现）<br />    ＼数据层</p>
		<p>
				<br />mvc 对应 各层次</p>
		<p>
				<br />概念实体关系</p>
		<p>1对1<br />1对多<br />多对多</p>
		<p>
				<br />表与表之间的关系 参照完整性</p>
		<p>外键 <br />多对多<br />多对一</p>
		<p>
				<br />域对象之间的 关系</p>
		<p>关联 （一对一 一对多 多对多）<br />依赖 （一个类需要访问另外一个类）<br />聚集 （一个类的对象是另一个类的一部分， 人和手）<br />一般化 （继承关系）</p>
		<p>
				<br />域对象<br /> 实体域对象  （实体EJB，POJO）<br />过程域对象  （会话EJB，消息驱动EJB，POJO）<br />事件域对象  （）</p>
		<p>在hibernate中 一般只关注 实体域对象 和 过程域对象</p>
		<p>
				<br />域对象的关系</p>
		<p> 域对象的关联关系 是有方向的 <br />体现在类的编码不一样的</p>
		<p>单向关联<br />双向关联</p>
		<p> </p>
		<p>
				<br />域对象的持久化<br />把对象从内存中 保存到持久化设备中去</p>
		<p>ORM 与  ORM模式<br />ORM模式是一种持久化技术，还有其他模式的持久化技术。如主动域模式（BMP），JDO模式，CMP模式。</p>
		<p>
				<br />域模型和数据模型的各个不匹配之处<br />1，继承<br />2，多对多<br />3，双向<br />4。粒度 <br />尽量少连接查询，很消耗时间的操作</p>
		<p> </p>
		<p>
				<br />创建持久化类</p>
		<p>
				<br />1。持久化类符合javabean的规范，包含一些属性 以及对应的getxxx 色天下学习方法<br />2。持久化类有一个id属性，用来唯一表示类的每一个对象。 也叫OID 对象表示符<br />3。Hibernate要求持久化类必须提供一个不带参数的默认构造方法</p>
		<p>创建数据库schema</p>
		<p>创建对象-关系映射文件</p>
		<p>（一般在eslispe中先创建数据库 然后再创建持久化类以及映射文件）</p>
		<p>hibernate 映射类型</p>
		<p>
				<br />hibernate的初始化</p>
		<p>static{</p>
		<p>try{<br />//根据默认位置的hibernate配置文件创建 configuration实例<br />Configuration config = new Configuration();<br />config.addClass(Customer.class);<br />//创建SessionFactory 实例<br />sessionFactory = config.buildSessinoFactroy();<br />}catch(Exception e){e.printStackTrace();}<br />}</p>
		<p>
				<br />SessionFactory 接口</p>
		<p>一个SessionFactory 实例是对应一个数据源的，应用从SessionFactory 获取session实例对象<br />1线程安全的<br />2重量级的，不能随意创建和销毁她的实例。</p>
		<p>Session 接口</p>
		<p>1 Session接口是hibernate应用最为广泛的接口。<br />2 Session也被称为持久化管理器，它提供和持久化相关的操作<br />3 Session有以下特点<br /> a 不是线程安全的 所以应避免多线程共用一个Session实例<br /> b Session实例是轻量级的，所谓轻量级是指他的创建和销毁不需要消耗太多的资源。意味着程序中可以经常创建和销毁Session实例，保证不多线程使用Session对象。</p>
		<p>Session接口的常用方法：<br />save()<br />update()<br />delete()<br />load()</p>
		<p>Session执行事务流程</p>
		<p>Session session = factory.openSession();<br />Transaction tx;<br />try{<br />tx = session.beginTranscation();<br />//执行事务<br />...<br />//提交事务<br />tx.commit();<br />}<br />catche(Exception e)<br />{//如果出现异常，撤消事务<br />if(tx!=null)tx.rollback();<br />throw e;<br />}<br />finally{<br />session.close(); //不管事务是否成功，最后都要关闭session对象<br />}<br />}</p>
		<p> </p>
		<p> </p>
		<p> </p>
		<p> </p>
<img src ="http://www.blogjava.net/Supershen/aggbug/98600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2007-02-07 14:32 <a href="http://www.blogjava.net/Supershen/archive/2007/02/07/98600.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复习~JAVA面向对象编程</title><link>http://www.blogjava.net/Supershen/archive/2007/01/24/95780.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Wed, 24 Jan 2007 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2007/01/24/95780.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/95780.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2007/01/24/95780.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/95780.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/95780.html</trackback:ping><description><![CDATA[》对象之间方法调用，通过传递消息<br /><br />OOP使各个对象各司其职，分别负担执行一组相关的任务，如果一个对象要依赖于一个不在其范围内的方法，它就需要访问包含该方法的第二个对象，即第一个对象需要第二个对象执行这个方法（或者叫方法调用） 利用OOP术语，叫做一个对象向另外一个对象发送消息。<br /><br />》对象的生成： 对象是在执行过程中由其所属的类动态生成的。 一个类可以生成多个不同的对象。<br /><br /><br />》 消息与方法的概念<br /><br />对象之间的传递通过消息传递完成<br /><br />一个发送消息的对象 发送的消息包含3个方面的内容<br />1，接受消息的对象<br />2，接受对象应用的方法。<br />3，方法所需要的参数。<br /><br />》面向对象变成的基本特征<br />1 封装性 Encapsulation 把数据和操作组织在类内<br />2 继承性 Inheritance 通过类的继承关系<br />3多态性Polymophism（在运行的时候体现）   A通过方法重裁 B通过方法重写，子类覆盖父类的方法（接口一个种特殊的类哦）<br /><br /><img src ="http://www.blogjava.net/Supershen/aggbug/95780.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2007-01-24 17:47 <a href="http://www.blogjava.net/Supershen/archive/2007/01/24/95780.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts学习总结（1）</title><link>http://www.blogjava.net/Supershen/archive/2006/12/27/90346.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Wed, 27 Dec 2006 09:14:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/12/27/90346.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/90346.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/12/27/90346.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/90346.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/90346.html</trackback:ping><description><![CDATA[
		<p>
				<br />一个J2EE 工程中涉及的对象</p>
		<ul>
				<li>数据传输对象DTO</li>
				<li>业务对象BO （实体业务对象 过程业务对象 事件业务对象）</li>
				<li>数据访问对象DAO</li>
		</ul>
		<p> </p>
		<p>
				<br />
		</p>
		<p>概念<br /><br />持久化框架、ORM框架、DAO设计模式<br /><br />他们的关系是：ORM框架是一种持久化框架，DAO是用于实现持久化框架的一种设计模式。<br /><br /></p>
<img src ="http://www.blogjava.net/Supershen/aggbug/90346.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2006-12-27 17:14 <a href="http://www.blogjava.net/Supershen/archive/2006/12/27/90346.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于ActionErrors  add函数用法</title><link>http://www.blogjava.net/Supershen/archive/2006/12/20/89091.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Wed, 20 Dec 2006 10:03:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/12/20/89091.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/89091.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/12/20/89091.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/89091.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/89091.html</trackback:ping><description><![CDATA[ ActionErrors   errors   =   null;     <br />  errors   =   new   ActionErrors();     <br />  errors.add("isExist",   new   ActionError("error.isExist"));   <br />// errors.add("isExist",   new   ActionError("error.isExist"));   等效于errors.add("isExist",   new   ActionMessage("error.isExist"));    <br /><br />  saveErrors(request,   errors);   <br />  return   (mapping.findForward("failure"));   <br /><br /><br />failure页面里也定义了&lt;html:errors   name="isExist"/&gt;   <br />  ApplicationResources.properties里面也定义了error.isExist=user   have   already   exist!!!   <br />  运行结果 跳转到failure页面，显示“user   have   already   exist!!!   ”<br /><br /><br /><br /><hr /><span class="bt"><font color="#33cc66">ActionErrors.GLOBAL_ERROR <br />怎么理解 <br />它和我们使用普通的字符有什么区别啊 <br /><br />部分代码如下: <br />err.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.logon")); <br />err.add("errinfo", new ActionError("error.logon")); <br /><br />以上两名有什么区别啊 </font><p style="WORD-BREAK: break-all; LINE-HEIGHT: 16pt; WORD-WRAP: break-word"><span class="bt"><hr />
没什么区别 <br />ActionErrors.GLOBAL_ERROR也是一个字符串。 </span>最好写做ActionErrors.GLOBAL_ERROR <br />不然的话可能会报错。 <br /><br /><br /></p><p></p></span><img src ="http://www.blogjava.net/Supershen/aggbug/89091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2006-12-20 18:03 <a href="http://www.blogjava.net/Supershen/archive/2006/12/20/89091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts学习笔记（3）</title><link>http://www.blogjava.net/Supershen/archive/2006/12/14/87638.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Thu, 14 Dec 2006 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/12/14/87638.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/87638.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/12/14/87638.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/87638.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/87638.html</trackback:ping><description><![CDATA[
		<strong>
				<font color="#0066ff">和女主角Action 对象共舞</font>
		</strong>
		<br />
		<br />
		<strong>什么是Action?</strong>
		<br />和常规的web 应用相比，Struts Action 类工作起来就象一个小型的servlet。在大多数Java<br />应用中，诸如访问业务层的任务、错误处理等任务均是由servlet 承担的。在一个 Struts 应<br />用中，servlet 扮演着一个分派器的角色。而Action 对象则干实际的工作。象 servlets 一样，<br />Action 对象是多线程的。每个应用只需要一个Action 类的实例。<br /><br /><strong>Action做些什么?</strong><br /><br /><font color="#0066ff"><font color="#000000">一个典型的Action 的职责通常是：</font><br /><br />􀂄 ■校验前提条件或者声明<br />􀂄 ■调用需要的业务逻辑方法<br />􀂄 ■检测其它处理错误<br />􀂄 ■将控制路由到相关视图</font><br /><br /><strong>检验输入：</strong> Action 需要做的就是确认ActionForm 是否是需要的类型。<br /><br /><strong>调用逻辑业务：</strong><br /><br />Action 类是HTTP 与应用系统中其它部分之间的适配器。最重要的是要避免将业务逻辑放入<br />Action 之中。Action 类应该只是简单地收集业务方法需要的数据并传递它到具体的业务对<br />象。如果你同时在编写业务类和Action 类，可能会受到要将它们编写在一起的诱惑。一定<br />要抵挡这种诱惑，并且将业务方法放入Action 可调用的单独的类之中。Java 虚拟机(JVM)<br />针对这种方法调用作了优化；性能损失可以忽略不计。<br />同时你也得到了一些设计上的优势<br /><br /><strong>Action检测错误：<br /></strong>Struts具有一个设计良好的错误处理系统，允许你可以：<br />􀂄■ 同时截获几个错误<br />􀂄■ 在请求中传递错误数据包<br />􀂄■ 显示本地化信息<br /><br />这个处理流程涉及到两个对象 (ActionErrors 和 ActionError) 和一个注册错误的工<br />具方法(saveErrors) 。其它两个对象 (MessageResources 和 一个定制标签)则用来显<br />示错误信息<br /><br /><strong>注册错误</strong><br />总体流程归结为：<br />􀂄1 创建一个空的ActionErrors 实例<br />􀂄2 在错误发生时，为错误信息添加关键字；<br />􀂄3 检查是否添加了某些信息<br />􀂄4 保存ActionErrors 集合对象到请求中<br />􀂄5  转发控制到错误页面以显示信息<br />􀂄6  否则，正常继续<br /><br />例如<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">ActionErrors errors </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ActionErrors();<br /><img id="Codehighlighter1_46_62_Open_Image" onclick="this.style.display='none'; Codehighlighter1_46_62_Open_Text.style.display='none'; Codehighlighter1_46_62_Closed_Image.style.display='inline'; Codehighlighter1_46_62_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_46_62_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_46_62_Closed_Text.style.display='none'; Codehighlighter1_46_62_Open_Image.style.display='inline'; Codehighlighter1_46_62_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_46_62_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_46_62_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> * 调用业务对象 *</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_89_178_Open_Image" onclick="this.style.display='none'; Codehighlighter1_89_178_Open_Text.style.display='none'; Codehighlighter1_89_178_Closed_Image.style.display='inline'; Codehighlighter1_89_178_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_89_178_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_89_178_Closed_Text.style.display='none'; Codehighlighter1_89_178_Open_Image.style.display='inline'; Codehighlighter1_89_178_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (ModelException e) </span><span id="Codehighlighter1_89_178_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_89_178_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />errors.add(ActionErrors.GLOBAL_ERROR,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ActionError(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">error.detail</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,e.getMessage()));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_201_271_Open_Image" onclick="this.style.display='none'; Codehighlighter1_201_271_Open_Text.style.display='none'; Codehighlighter1_201_271_Closed_Image.style.display='inline'; Codehighlighter1_201_271_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_201_271_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_201_271_Closed_Text.style.display='none'; Codehighlighter1_201_271_Open_Image.style.display='inline'; Codehighlighter1_201_271_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">errors.empty()) </span><span id="Codehighlighter1_201_271_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_201_271_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />saveErrors(Request, errors);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> (mapping.findForward(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">error</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> * 正常继续 *</span></div><br /><img src ="http://www.blogjava.net/Supershen/aggbug/87638.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2006-12-14 10:32 <a href="http://www.blogjava.net/Supershen/archive/2006/12/14/87638.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>STRUTS学习笔记（2） </title><link>http://www.blogjava.net/Supershen/archive/2006/12/06/85906.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Wed, 06 Dec 2006 09:50:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/12/06/85906.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/85906.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/12/06/85906.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/85906.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/85906.html</trackback:ping><description><![CDATA[用Struts开发Web应用<br /><br />要使用Struts 开发web 应用，开发人员将需要的超链接定义为ActionForward，HTML 表<br />单定义为ActionForm，定制的服务器端动作定义为Action 类。<br />需要访问JDBC 和EJB 的开发人员也可通过Action 对象进行他们的工作。这样，表现层不<br />需要和Model 层打交道。Struts Action 对象将收集View 需要的数据，然后将它们转发到<br />表现页面。Struts 提供 JSP 标记库，它们将和JSP 页面一起使用，简化 HTML 表单和访<br />问Action 要转发的其它数据。其它表现机制，比如Velocity templates, 也可用来访问<br />Struts 框架，以创建动态的web 页面。这种处理流程入下图：<img height="104" alt="{D99B93EF-D27B-42BA-A010-CB465E53C7BD}.BMP" hspace="0" src="http://www.blogjava.net/images/blogjava_net/supershen/{D99B93EF-D27B-42BA-A010-CB465E53C7BD}.BMP" width="577" border="0" /><br /><br /><br /><br /><img height="413" alt="{A1ABCBA2-B893-4911-8786-5CF86A796AFB}.JPG" src="http://www.blogjava.net/images/blogjava_net/supershen/{A1ABCBA2-B893-4911-8786-5CF86A796AFB}.JPG" width="761" border="0" /><img src ="http://www.blogjava.net/Supershen/aggbug/85906.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2006-12-06 17:50 <a href="http://www.blogjava.net/Supershen/archive/2006/12/06/85906.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>STRUTS学习笔记（1）</title><link>http://www.blogjava.net/Supershen/archive/2006/12/06/85874.html</link><dc:creator>Super·shen BLOG  李禄燊 </dc:creator><author>Super·shen BLOG  李禄燊 </author><pubDate>Wed, 06 Dec 2006 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/Supershen/archive/2006/12/06/85874.html</guid><wfw:comment>http://www.blogjava.net/Supershen/comments/85874.html</wfw:comment><comments>http://www.blogjava.net/Supershen/archive/2006/12/06/85874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Supershen/comments/commentRss/85874.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Supershen/services/trackbacks/85874.html</trackback:ping><description><![CDATA[Action类<br /><br />用来访问业务逻辑类。当 ActionServlet 从容器接收到一个请求，它使用URI (或者路径<br />“path”) 来决定那个Action 将用来处理请求。一个 Action 可以校验输入，并且访问业务<br />层以从数据库或其他数据服务中检索信息。<br /><br /><br />ActionForm类<br /><br />为校验输入或者使用输入来更新数据库， Action 需要知道什么值被提交上来。它并不是强<br />制每个Action 都要从请求中抓取这些值，而是由 ActionServlet 将输入绑定到JavaBean中。<br />输入 bean 就是Struts ActionForm 类的子类。ActionServlet 通过查找请求的路径可以决定使<br />用哪个ActionForm ， Action 也是通过同样的方法选取的。ActionForm 扩展了<br />org.apache.struts.action.ActionForm 类<br /><br />每个请求都必须以HTTP 响应进行应答。 通常，Struts Action 并不自行渲染响应信息，<br />而是将请求转发到其他资源，比如JSP 页面。Struts 提供一个ActionForward 类，用来将<br />一个页面的路径保存为逻辑名称。当完成业务逻辑后，Action 选择并向Servlet 返回一个<br />ActionForward。Servlet 然后使用保存在ActionForward 对象中的路径来调用页面完成响<br />应。<br /><br />Struts 将这些细节都绑定在一个ActionMapping 对象中。每个ActionMapping 相对于一个<br />特定的路径。当某个路径被请求时，Servlet 就查询ActionMapping 对象。ActionMapping<br />对象告诉servlet，哪些个Action，ActionForm，和 ActionForward 将要被本次请求使用。<br />所有这些细节，关于Action， ActionForm， ActionForward， ActionMapping，以及其<br />它一些东西，都在struts-config.xml 文件中定义。 ActionServlet 在启动时读取这个配置文<br />件，并创建一个配置对象数据库<br /><br /><br /><br /><font color="#ff1493">举个例子来说，<br /></font>页面上如果有以下语句：<br />&lt;html:form action="/hello.do"&gt;<br />当submit此form时，控制器从配置文件中找&lt;action-mappings&gt;下path="/hello" 的&lt;action&gt;元素<br />然后根据此action元素的type属性找要执行的action类文件<br />比如<br /><br />&lt;action-mappings&gt;<br />    &lt;action path="hello"<br />            type="cn.com.mylu.Hello"<br />            name="Hellofrom"<br />            ……<br />    &lt;/action&gt;<br /><br /><font color="#3399cc">其中 cn.com.mylu.Hellofrom 为ActionForm类javabean<br />           cn.com.mylu.Hello 为Action类<br /><br />    &lt;form-bean name="Hellofrom" type="cn.com.mylu.Hellofrom"&gt;<br />    &lt;/form-bean&gt;</font><br /><br />页面hello.do-----&gt; action元素的path属性 ------&gt; action元素的type属性-----&gt;Hello.java----&gt;Hello.java中的execute方法<img src ="http://www.blogjava.net/Supershen/aggbug/85874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Supershen/" target="_blank">Super·shen BLOG  李禄燊 </a> 2006-12-06 16:25 <a href="http://www.blogjava.net/Supershen/archive/2006/12/06/85874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>