??xml version="1.0" encoding="utf-8" standalone="yes"?>日本私人网站在线观看,亚洲精品网站在线观看,永久域名在线精品http://www.aygfsteel.com/royjohnson/生命不息Q奋斗不止!zh-cnSun, 18 May 2025 22:08:55 GMTSun, 18 May 2025 22:08:55 GMT60Struts详解http://www.aygfsteel.com/royjohnson/archive/2007/06/17/124822.htmlroy_johnsonroy_johnsonSun, 17 Jun 2007 10:07:00 GMThttp://www.aygfsteel.com/royjohnson/archive/2007/06/17/124822.htmlhttp://www.aygfsteel.com/royjohnson/comments/124822.htmlhttp://www.aygfsteel.com/royjohnson/archive/2007/06/17/124822.html#Feedback2http://www.aygfsteel.com/royjohnson/comments/commentRss/124822.htmlhttp://www.aygfsteel.com/royjohnson/services/trackbacks/124822.html                                            Struts框架详解
struts-config.xml    Struts配置文g
ActionServlet  控制?br>Action Class  包含事务逻辑
ActionForm  昄模块数据
ActionMapping  帮助控制器将h映射到操?br>ActionForward  用来指示操作转移的对?br>ActionError  用来存储和回攉?br>Struts标记?nbsp; 可以减轻开发显C层ơ的工作

struts框架的优?br>1.良好的架构和设计
2.可重用,模块化,扩展性好
3.Open source

struts-config.xml

Struts-config.xml集中了所有页面的D定义。对于大型的WEB目Q通过此配|文件即可迅速把握其脉络Q这不管是对于前期的开发,q是后期的维护或升都是大有裨益的。掌握Struts-config.xml是掌握Struts的关键所在?

FormBean部分

<struts-config>
  <!--  Form Bean Definitions -->
  <form-beans>
    <form-bean name=“testform" type="com.cjea.test.TestForm" />
  </form-beans> 

全局转发部分

<!-- Global Forward Definitions -->
  <global-forwards>
    <forward   name="failure"     path="bad.jsp"/>
    <forward   name="success"     path="/good.jsp" />
  </global-forwards>

action部分

<action-mappings>
   <action path=“/test/test.jsp" type=“com.cjea.test.testAction" name="testform" scope="request">
        <forward name="success" path="/test/good.jsp" />
   </action>
<action-mappings> 
</struts-config>

 ActionServlet

ActionServlet 是struts框架 MVC 实现?controller 部分Q它是这一框架的核心?br>ActionServlet 创徏q?Action、ActionForm ?ActionForward?/p>

ActionServlet的基本功?/p>

截获用户的Httph
把这个请求映到相应的ActioncR?br>创徏一个ActionForm bean实例,formh攑օformbean的实例中
调用Action实例的perform()Ҏ
ActioForm bean,Action Mapping对象,request和response对象传给Action的perform()Ҏ
performq回一个ActionForword对象Q根据方法执行情况{到相应的jsp面.

 

Action Classes


Action cL业务逻辑的一个包装。Action cȝ用途是?HttpServletRequest 转换Z务逻辑?/p>

ActionForm

ActionForm l护 Web 应用E序的会话状态?br>ActionForm 是一个抽象类Q必Mؓ每个输入表单模型创徏该类的子cR?/p>


ActionForm的?/p>

假定有一个由 HTML 表单讄?TestActionForm。Struts 框架执行以下操作:
?TestActionForm是否存在Q如果不存在Q它创cȝ一个实例?br>Struts ?HttpServletRequest 中相应的域设|?TestActionForm的状态?br>Struts 框架在将 TestActionForm传递给TestAction 之前更新它的状态?
struts-config.xml 文g控制 HTML 表单h?ActionForm 之间的映关pR?br>可将多个h映射?TestActionForm ?/p>

Struts标记?br>Struts框架包括自定义标{ֺQ它可以?在很多方面。尽这些库q不要求用框 Ӟ但用它们会有助于程序的开发?/p>

Struts标记?br>struts-bean taglibQ包含在讉Kbean和bean属性时使用的tagQ也包含一些消息显C的tag?br>struts-html taglibQ包含用来生成动态HTML用户界面和窗体的tag?br>struts-logic taglib Q包含的tag用来理Ҏ条g生成输出文本Q和其它一些用来控制的信息?br>struts-template taglib包含的tag用来定义模板机制?/p>

Bean Taglib
用于定义新bean、访问bean及其属性的标记
在struts-bean.tld中定义了它的标记库描q器
Bean Taglib主要功能
创徏和复制bean的标?br>脚本变量定义标记
bean译标记
消息国际化标?br>Bean复制标记 (<bean:define>)
可定义新beanQ可复制现有beanQ还可从现有bean复制属性?br>定义新字W串常数
现有的bean复制到新定义的bean对象
复制现有bean的属性来创徏新的bean
<bean:define>标记属性:
Id 新定义的bean脚本变量名称Q必设|?br>Type 定义引入脚本变量的类
Value 为id属性定义的脚本变量分配一个新的对?br><bean:define>标记属性:
Name 目标bean的名U。若value属性没有设|,q个属性就必须讄
property Name属性定义的bean的属性名Uͼ用来定义新的bean
Scope 源bean的作用域。若没有讄Q搜索范围是从页作用域到应用E序作用?br>toScope 目标bean的作用域。若没有讄Q默认值是作用域
举例
定义一个bean:
<bean:define id="test" value="this is a test"/>
源bean在页作用域中被拷贝到h作用域中的另一个bean:
<bean:define id="targetBean" name="sourceBean"
scope="page" toScope="request"/>
脚本变量的标?br>从多U资源中定义和生成脚本变量,q些资源包括cookie,h参数QHTTP标头{等?br>脚本变量的标记属性:
Id        脚本变量和要定义的页作用?nbsp;                属性的名称
Name    cookie/标头/参数的名U?br>Value    如果没有匚w的cookie?nbsp;   数|p回这个属性指    定的默认?/p>

脚本变量的标记属性:
multiple 如果q个属性设|了L一个数|所有匹配的cookie都会被积累ƈ存储C个Cookie[](一个数l?cd的bean?nbsp;          若无讄Q指定cookie的第一个值将作ؓCookiecd的?br>举例
<bean:cookie id="myCookie" name="userName"/>
脚本变量名称是myCookieQ用来创个属性的cookie的名U是userName?br><bean:header id="myHeader" name="Accept-Language"/>
脚本变量名称是myHeader,h标头的名U是Accept-Language.

举例
<bean:parameter id="myParameter" name="myParameter">
脚本变量名称是myPatameter,它保存的h参数的名UC是myParameter
逻辑标记
Struts逻辑标签库包含的标记能够有条件地产生输出文本
在对象集合中循环从而重复地产生输出文本Q以及应用程序流E控?br>它也提供了一l在JSP中处理程控制的标?br>逻辑标记装在文件名为struts-logic.tld的标记包?br>逻辑标记库的功能
条g逻辑
重复
转发/重定向响?br>条g逻辑标记
W一cd以比较下列实体与一个常数的大小
W二cd计算标记体之前判断特定的目是否存在
W三cL据模板匹配的l果查标C的内?br>W一cL仉辑标记
<equal>  如果常数与被定义的实体相{,q回true
<notEqual> 如果常数与被定义的实体不相等Q返回true
<greaterEqual> 如果常数大于{于被定义的实体Q返回true
W一cL仉辑标记
<lessEqual> 如果常数于{于被定义的实体Q返回true
<lessThan> 如果常数于被定义的实体Q返回true
<greaterThan> 如果常数大于被定义的实体Q返回true
举例
判断名ؓ"name"的请求参数的值是否是"SomeName"?br><logic:equal parameter="name" value="SomeName">
        The entered name is SomeName
</logic:equal>
举例
判断在页的作用域中是否有一个名?bean"的beanQ它有一个prop属性,q个属性的值是否大??br>如果q个属性能够{化ؓ数|p行数值比较,否则p行字W串比较?br><logic:greaterThan name="bean" property="prop" scope="page" value="7">
The value of bean.Prop is greater than 7
</logic:greaterThan>
W二cL仉辑标记
<logic:present>
<logic:notPresent>
W三cL仉辑标记
<logic:match>
<logic:notMatch>
重复标记<logic:iterate>
它能够根据特定集合中元素的数目对标记体的内容q行重复的检?br>集合的类?br>java.util.Iterator
java.util.Collection
java.util.Map
java.util.List
数组
举例
Strlst是一个包含字W串的ListQ现在要他内部的字W串全都昄在浏览器?br><logic:iterate id="element" name="strlst"  indexId="index">
<%Q?String)element)%>
</logic:iterate>
转发标记
<logic:forward>标记能够响应{发给重定向到特定的全局ActionForward?br>ActionForward的类型决定了是用PageContext转发响应Q还是用sendRedirect响应进行重定向
此标记只有一?name"属性,用来指定全局ActionForward的名Uͼ例如Q?br><logic:forward name="myGlobalForward"/>
重定向标?br><logic:redirect>标记是一个能够执行HTTP重定向的强大工具?br>Ҏ指定的不同属性,它能够通过不同的方式实现重定向?br>它还允许开发h员指定重定向URL的查询参数?br>HTML标记
Struts HTML标记可以大致地分Z下几个功能:
昄表单元素和输入控?br>昄错误信息
昄其他HTML元素
模板标记
Struts模板标记可以大致地分Z下几个功能:
插入标记<template:insert>
攄标记<template:put>
获得标记<template:get>



roy_johnson 2007-06-17 18:07 发表评论
]]>
Struts 初始化处理流E?/title><link>http://www.aygfsteel.com/royjohnson/archive/2007/06/16/124673.html</link><dc:creator>roy_johnson</dc:creator><author>roy_johnson</author><pubDate>Sat, 16 Jun 2007 09:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/royjohnson/archive/2007/06/16/124673.html</guid><wfw:comment>http://www.aygfsteel.com/royjohnson/comments/124673.html</wfw:comment><comments>http://www.aygfsteel.com/royjohnson/archive/2007/06/16/124673.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/royjohnson/comments/commentRss/124673.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/royjohnson/services/trackbacks/124673.html</trackback:ping><description><![CDATA[                                                        Struts 初始化处理流E?<br>   Ҏ在web.xml中配|的初始化参敎ͼServlet容器决定在在容器的W一ơ启动,或第一ơ客戯求ActionServlet 的时机加载ActionServlet Q不哪U方式加载,和其它Servlet一PActionServlet 的init( )Ҏ被调用Q开始初始化q程。让我们来看看在初始化过E中发生些什么,理解了这些,对于我们debug和扩展自q应用更加得心应手?<br>   1   初始化框架的内部消息l定Q这些消息用来输出提C,警告Q和错误信息到日志文件中?<br>       org.apache.struts.action.ActionResources用来获取内部消息Q?<br>   2   加蝲web.xml中定义的不同参数Q用以控制ActionServlet 的不同行为,q些参数包括 config, debug, detail, and convertNull Q?<br>   3   加蝲q初始化web.xml中定义的servlet 名称和servlet映射信息。通过初始化,框架的各UDTD被注册,DTD用来在下一步校验配|文件的有效性; <br>   4、ؓ默认应用加蝲q初始化Struts配置文gQ配|文件即初始化参数config指定的文件。默认配|文件被解析Q?nbsp;产生一个ApplicationConfig对象存于ServletContext 中。可以通过关键?nbsp;org.apache.struts.action.APPLICATION 从ServletContext 中获取ApplicationConfigQ?<br>   5   Struts配置文g中指定的每一个消息资源都被加载,初始化,q存在ServletContext 的合适区?Z每个message-resources元素的key 属?Q如果key 属性没有设|,则ؓorg.apache.struts.action.MESSAGEQ?<br>   6   Struts配置文g中声明的每一个数据源被加载ƈ且初始化Q如果没有配|数据源Q这一步蟩q; <br>   7   加蝲q初始化Struts配置文g中指定的插g。每一个插件的init()Ҏ被调用; <br>  8   当默认应用加载完成,init()Ҏ判断是否有应用模块需要加载,如果有,重复4?完成应用模块的加载? <img src ="http://www.aygfsteel.com/royjohnson/aggbug/124673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/royjohnson/" target="_blank">roy_johnson</a> 2007-06-16 17:56 <a href="http://www.aygfsteel.com/royjohnson/archive/2007/06/16/124673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>论J2EEE序员的武功修ؓ(? http://www.aygfsteel.com/royjohnson/archive/2007/06/16/124660.htmlroy_johnsonroy_johnsonSat, 16 Jun 2007 08:37:00 GMThttp://www.aygfsteel.com/royjohnson/archive/2007/06/16/124660.htmlhttp://www.aygfsteel.com/royjohnson/comments/124660.htmlhttp://www.aygfsteel.com/royjohnson/archive/2007/06/16/124660.html#Feedback2http://www.aygfsteel.com/royjohnson/comments/commentRss/124660.htmlhttp://www.aygfsteel.com/royjohnson/services/trackbacks/124660.html 

                                                论J2EEE序员的武功修ؓ(?
 EasyJF开源团?www.easyjf.com) 大

  l常会跟一些朋友讨论怎么h能学好Java,学到什么程度才撑握了Java的问题。其中有一个J2EEE序员层ơ及武功修ؓ的问题,有点意思。这里就把讨论的内容大致整理一下发出来Q大家l讨论?/p>

  U观国内的Y件行业,靠Java吃饭的程序员q真不是,而且JavaE序员是有很大优感的,毕竟对于很多用b/s搞开发的业内朋友来说QJava技术意味着隑ֺ大、门槛高Q因此相Ҏ说JavaE序员比其它的程序员(如php?net)收入高就理所当然。然而J2EE所涉及到的范畴是很q的Q不能一个JavaE序员就概括了事Q而应该具有层ơ及水^之分Q很多时候经帔R要进行分cL评Q有时他评、有时自评?/p>

  谈到国内J2EE领域的程序员层次水^Q当前流行的U谓及评U不外乎׃面几U:
  W一U是_N掌握记事本、Dreamweaver{工h写JSP+JavaBean数据库应用的是J2EEE序员;
  W二U是用JBuilder、Eclipse{专用Java开发工具写着一堆一堆过E式Java BeanQ而且q能_NStruts+Spring+Hibernate{应用框架的高J2EEE序员;
  W三U是用Together建模Q然后生成一堆Java接口或代码,开口闭口都是设计模式的资深JavaE序同及高pȝ分析、构架师Q?br>  最后还有一U是整天在BlogJava或JavaEye上谈l论道的大师们,q些大师技术水q难以触摸,武功门派也各LԌ不好归类Q有时不好称为程序员Q因为有的时候他们甚至不写或者写不出E序Q,但又做着与J2EEE序员密切相关的事情Q我们暂且就归ؓ“牛牛”?#8220;大师”?/p>

  U谓毕竟只是U谓Q带有点主观或者功利色彩,有时很难鉴定一个h应该属于什么,因此Q我们再从纯技术的角度Q也x功修为的角度Q作了一个简单的分析及归c,?EE领域E序员大致分成以下几个层ơ,可以作ؓ大家自评的一个参考标准:

  W一个层ơ:_N掌握Java语法、能调试基本的程序错误,_N掌握JSP+Java Bean写一些Nq前ASP、PHPȝ的Java Web应用E序Q如论坛、网站新d布系l、OA、网上商城等Q,_NJDBC使用、精通SQL语句、精通XML{?/p>

  W二个层ơ:掌握设计模式原理及应用,掌握ZOO的分析及设计Ҏ,q能_N熟l用几UJava专业设计及开发工P_N掌握流行的J2EE框架如Hibernate、EJB、Webwork、Spring的原理及应用Q精通J2EE中一两个l成部分(如Servlet、EJB{?的工作原理及l节?/p>

  W三个层ơ:林的高僧有两种Q禅僧及武僧。J2EEE序员的W三个层ơ也同样有禅、武两个分支Q这里我们重点分析一下:

  W一个分支属于走的禅僧线路。在l完W二个层ơ中的各U武功基上,l合实际目中的千奇百怪的用户需求,游刃有余的选择适合的技术方案ؓ客户解决问题Qƈ形成自己的一套解x案。达到这一个层ơ的J2EEE序员已l不在乎使用M工具、Q何框架了Q而是Ҏ不同的对手,使用不同的武器或招式来应寏V好比小李飞刀一P只有辑ֈ?#8220;手中无刀、心中有刀”的境界,才能辑ֈ“出手一刀Q例不虚?#8221;的效果。这一层次的武功属于一个熟l度问题Q刀l得多了、遇到的Ҏ多了Q再加上前面的武功修为,q做不C不虚发,也可辑ֈ十发九中?/p>

  W二个分支属于走的武僧线路,在撑握熟悉第一二个层次中涉及到的内容后Q进一步专研ƈ撑握J2EE底层开发,J2EE规范制订、规范实现、Java虚拟机的工作原理、各U常见的J2EE服务器内核工作机制、内存管理、进E机制、源代码{。因为涉及的很多东西都比较抽象,代码也很多,l这一层的武功需要有很好的资质及耐性、ƈ兯得有一定的环境及条件。好比神雕大侠杨q拿?#8220;玄铁?#8221;Qƈl成“暗然销掌”的成长过E,需要前面的武功修ؓ作基Q更需那只威力武雕的帮助指点及他处处ؓ民、惩奔R恶的侠之心态?br>  
  胡侃了这么多Q现在来Ҏ自己情况算一下自q份量Q结果如下:
  W一层 l到8成;
  W二层 l到5成;
  W三层 准备走禅僧线路,当前是l到1成;
  
  唉,后面的武功提升越来越难,真不知道要到何年何月才能辑ֈ10成啊。你的武功练到哪一个层ơ了Q不防亮出来大家切磋切磋。嘿嘿,要是有一天,׃中国的JavaE序员h手一?#8220;玄铁?#8221;、hZ?#8220;暗然销掌”Q那q了??..Q写着写着居然做v白日梦了Q不好意思,此打住?br>  
  手中鸡蛋先别扔,q要打个q告Q本人刚开始涉Java开源,目前在EasyJF开源团队中负责EasyJWeb(官网www.easyjf.com)目Q欢q大家前来指对{?

作者BlogQ?a >http://blog.csdn.net/psyl/



roy_johnson 2007-06-16 16:37 发表评论
]]>
新手如何开始学习JSPhttp://www.aygfsteel.com/royjohnson/archive/2007/06/16/123746.htmlroy_johnsonroy_johnsonSat, 16 Jun 2007 03:48:00 GMThttp://www.aygfsteel.com/royjohnson/archive/2007/06/16/123746.htmlhttp://www.aygfsteel.com/royjohnson/comments/123746.htmlhttp://www.aygfsteel.com/royjohnson/archive/2007/06/16/123746.html#Feedback4http://www.aygfsteel.com/royjohnson/comments/commentRss/123746.htmlhttp://www.aygfsteel.com/royjohnson/services/trackbacks/123746.html      首先Q你得对WEB应用开发感兴趣Q因为兴是最好的老师Q更是你学习前进的动力,如果只是p学学看的态度Q本人徏议不要开始学。那h费了时间又费了精力。有了兴,一切就好说了,学得多快那就看你个h的能力了?br>      从HTML开始下手,一星期卛_搞定HTML。因为开发WEB应用要求你能看懂|页代码Q然后是Java语言基础,Java语言学习的时间可能要长些。等前面q两熟悉了Q就要开始学习JavaScript和CSSQ当然作为后台程序员后面q两了解即可?br>     再接下来p学习一下JDBC的技术了。数据库先学习MysqlQ然后再学习Mssql,OracleQ最后还要熟悉WEB服务器,初学者徏议学习Tomcat,{这些都熟悉了。开始尝试着开发几个系l,比如信息理pȝQ聊天室Q论坛等?br>     再往后就要学习Struts,Hibernate,Spring{高U技术了?
     今后我会逐步介绍以上技?最后还会教大家开发一个基于Struts+Hibernate+Spring的实例。大家希望看到那斚w的知识或有何好的。可以给我留a,或发表在评论里?

roy_johnson 2007-06-16 11:48 发表评论
]]>
վ֩ģ壺 | Ͻ| | 㶫ʡ| | ϻ| ƺ| ʤ| | | ʩ| | | | ¬| | | հ| ¡| ɽ| µ| | ϳ| | ɽ| | ̳| ͭ| ľ| | ɽ| | | ͨ| Ƕ| ¤| | | | ۲| |