`

深入struts配置文件

阅读更多
深入struts配置文件

第二章:深入struts配置文件
         在这一章里,我们要学习以下几点内容
          1:配置ActionSerlvet拦截用户请求
          2:ActionForm的创建与配置
          3:Action的创建与配置
          4:Forward的定义转向配置
          5)Action的excute方法
         


                        配置ActionSerlvet拦截用户请求
1:ActionSerlvet是核心控制器,是由struts框架自动产生的,它像过滤器一样会拦截所有用户的请求。但是这个过滤器必须要在web.xml文件中进行配置才能够发挥它的作用。幸运的是这些配置struts已经帮我们自动配置好,但是有必要进行了解.
   <servlet-name>action</servlet-name> --ActionServlet的名字对应实例对应的类
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
       ........
     <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern> --定义ActionServlet过滤的通配符。必须要以do结尾。当然可以修改
</servlet-mapping>
     

                   配置ActionForm接受用户输入的数据
1)ActionForm实际上就是一个非常简单的javaBean。在它里面有许多的get,set方法,它的目的就是为了封装     从用户输入的数据。因此ActionForm通常与表单页面对应,每个表单对应一个ActionForm。表单中的输入      项对应ActionForm的一个属性.
2)Struts要求ActionForm必须要继承自org.apache.struts.action.ActionForm基类。
3)必须保证ActionForm中的属性名一定要与表单中元素名一致
4)所有的ActionForm必须要在Struts-config.xml中进行配置。配置节如下:
      <form-beans>
   <form-bean name="loginActionForm" type="org.chen.struts.loginForm" />
                <form-bean name="shopActionForm" type="org.chen.struts.loginForm" />
                 ........
                <form-bean name="shopActionForm" type="org.chen.struts.loginForm" />
</form-beans>
5)一个ActionForm必须至少指定两项。
     name:该项用于标识ActionForm的Id,以便于传递给Action进行使用
     type:ActionForm的实现类
6)在eclipse中添加一个ActionForm的步骤如下:
      A:右击--->new--->other--->myeclipse--->webstruts-->struts1.2 form
      B:在弹出的对话框中
         name中输入ActionForm的标识id
         superclass:指定ActionForm的父类名。一般选择org.apache.struts.action.ActionForm
         formtype:指定ActionForm的类名,因为它是一个javaBean。相当于为类取一个名字
         formProperty选项卡中输入ActionForm的属性。
    

                     Action的创建与配置
1)Action是系统的业务控制器,它用于接收从ActionServlet转发过来的请求,并触发execute方法,我们可以    在execute方法里面调用模型进行数据处理
2)struts要求Action必须继承自org.apache.struts.action.Action基类
3)所有的Action必须要在struts-config.xml中进行配置。配置节如下:
        <action   name="loginActionForm"
    path="/loginAction" scope="request"
    type="org.chen.struts.loginAction">
    <forward name="scuess" path="/scuess.jsp" />
    <forward name="error" path="/error.jsp" />
        </action>
     说明:
         A)name:并不是Action本身的名字,而是与之关联的ActionForm的名称
         B)path:非常重要的属性。ActionSerlvet将用户的请求转发与之同名的Action.同名的意思是将请求           的".do"后缀去掉。匹配Action的path属性值
         C)struts-config.xml中只要遇到path属性都要加"/"表示相当于WebRoot根目录而言
         D)type:Action的类名
         E)forward:将Action的转发映射到实际的jsp页面,在实际编程时应该用逻辑名进行转发
         F)一个Action可以有ActionForm,也可以没有ActionForm。如果是post提交的一般会有ActionForm
           比如:<form id="frm1" action="loginAction.do">,如果是通过get提交则不会有ActionForm,但           是Action总是会有的,因为要处理业务逻辑。比如:<a href="shopAddAction.do">
         E)关于超链接与Action路径的问题(******************)
             [1]对于表单中的Action而言,不存在路径问题,只要Action在classes下都可以定位
              比如:
                1.jsp页面在WebRoot下面,但Action在ht.netBook.Action下面。在表单中提交时
                         <html:form action="insertTalkAction.do">可以直接指定Action名就可了
                或者2.jsp页面在WebRoot下面的page下面。都可以正确定位
             [2]但对于超链接而言,则不一样。如果 超链接所在的页面1.jsp在WebRoot下面,则可以
                <a href="insertTalkAction.do>进入</a>直接指定Action名
                 但是如果超链接所在的页面1.jsp在WebRoot下面的page下面的话,则通过"/"表示项目目录
                  <a href="/WebRoot/insertTalkAction.do>让struts回到WebRoot下面再去找
             [3]如果是servlet的话,不管是对于表单还是对于超链接,都必须要找到web.xml文件
                在它下面有。取出"servlet/loginSer"就行了,注意不是"/servlet/loginSer",即不要加
                "/"。如果超链接所在的页面就在WebRoot的下面,则可以直接使用
                 <a href="servlet/loginSer"> 如果在超链接所在的页面在WebRoot下面的Page下面,则把
                 则要把路径回退一级<a href="..\servlet\loginSer>让struts回到WebRoot下面再去找
                <servlet-mapping>
                     <servlet-name>loginSer</servlet-name>
                     <url-pattern>/servlet/loginSer</url-pattern>
                </servlet-mapping>
            [4]对于forward中的<forward name="error" path="/error.jsp" />中的path而言
               "/"表示在WebRoot下面去找,但是对于jsp而言"/"表示项目目录。
                如果要在WebRoot下面的page文件夹里面的error.jsp
                则修改成为<forward name="error" path="/page/error.jsp" />

             举例:
                1)创建一个Action名为loginAction放入ht.OA.Action下面
                2)创建一个login.jsp页面放入WebRoot根目录下面
                3)创建一个index.jsp与error.jsp放入WebRoot的page文件夹下面
                4)创建一个servlet放入ht.OA.servlets下面
                5)完成登录页面的struts的测试

          
    

                      Forward的定义转向配置
         1)前面说过ActionServlet把请求转发给Action,Action会触发excute方法,在此方法中调用                   JavaBean进行业务逻辑处理,处理完毕之后,要把处理的结果显示到其它的jsp页面中。而这些               经过Action处理之后要进入的jsp页面就是Forward配置节的任务
         2)Forward在struts-config.xml中配置格式如下:
                        <forward name="scuess" path="/scuess.jsp" />
    <forward name="error" path="/error.jsp" />
         3)每一个Forward相当于一个ActionForward对像,所以struts中的
           ActionSerlvet,Action,ActionForwad构成了struts的核心
        说明:
         A)name:用来指定forward逻辑名,以便在编程中来使用
         B)path:实际要转发到的jsp页面。注意要加"/"
     

 

                    Action的excute方法
        1)ActionServlet接受到用户的"XXXXX.do"请求,通过struts-config.xml配置文件找到与之匹配的          Action配置节,通过Action的name属性找到与之对应的ActionForm然后把用户输入的数据填写到该          ActionForm中去,最后把请求连同ActionForm转发给Action,然后触发Action的exute方法
        2)些方法里面有几个参数:
             A)mapping:
                1:用来获取与Action对应的forward定义转向。
                2:通过mapping.findForward(name)来进行实际页面的转发
             B)form:是填充了用户输入数据的ActionForm。在实际编程时,往往需要向子类转换
                LoginActionForm loginActionForm=(LoginActionForm)form,得到loginActionForm之后可以
                通过get方法得到用户填写的数据
             C)request:得到用户的请求。事实上要得到用户输入的数据也可以通过request.getParameter方                       法,但是那样就失去了struts的作用,所以一般都会有ActionForm去得到用户所输入                        的数据,但是request.getParameter方法却可以得到get方法提交过来的数据,这是非                      常重要的
             D)response:得到用户的响应
             E)exute方法会返回一个ActionForward实例,而mapping.findForward(name)正好可以返回这个                 实例

分享到:
评论

相关推荐

    深入Struts2的配置文件[定义].pdf

    深入Struts2的配置文件[定义].pdf

    深入Struts2的配置文件

    本部分主要介绍struts.xml的常用配置。 1.1. 包配置: Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。 ...

    深入Struts2配置

    Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个...在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置。

    深入 struts2

    Struts2的配置文件、Struts2的Action介绍、 一个Action内包含多个请求处理方法的处理、处理结果、属性驱动和模型驱动、异常处理机制等。。。

    深入浅出Struts2(附源码)

    2.5.1 部署描述文件和Struts配置文件 27 2.5.2 动作类 28 2.5.3 运行app02a程序 29 2.6 依赖注入 29 2.6.1 概述 29 2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章动作与结果 32 3.1 动作类 32 3.2 如何...

    02_张孝祥09年Struts视频_文件上传单元

    struts文件上传单元目录列表: 01.文件上传的网页设置与数据格式分析 02.阐释软件分层的设计思想 03.文件上传组件的实现原理与应用分析 04.用struts获取上传文件名和解决...15.修正从配置文件中读取文件存储目录的缺陷

    11_张孝祥09年Struts视频_文件上传单元

    struts文件上传单元目录列表: 01.文件上传的网页设置与数据格式分析 02.阐释软件分层的设计思想 03.文件上传组件的实现原理与应用分析 04.用struts获取上传文件名和解决...15.修正从配置文件中读取文件存储目录的缺陷

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...

    精通 Struts:基于 MVC 的 JavaWeb 设计与开发(PDF)

    第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...

    Struts2详解,Struts2与Struts1的区别

    Struts2深入开发 6. 常用标签配置和使用 7. 常用标签配置和使用 8. 标签 9. Action类的开发 10. 数据类型转换器 11. 实现文件上传 12. Struts2的拦截器 13. 拒绝表单重复提交 四. OGNL表达式 五....

    精通Struts_基于MVC的Java Web设计与开发

    第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...

    精通struts:基于mvc的java web设计与开发part3

    第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和 RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。...

    精通struts:基于mvc的java web设计与开发part2

    第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和 RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。...

    精通struts:基于mvc的java web设计与开发part1

    第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和 RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    2.5.1 部署描述文件和Struts配置文件 27 2.5.2 动作类 28 2.5.3 运行app02a程序 29 2.6 依赖注入 29 2.6.1 概述 29 2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章 动作与结果 32 3.1 动作类 32 3.2 如何访问资源 ...

    struts+hibernate课件

    通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。 c、表现与逻辑分离 d、表单验证解决了请求数据的验证问题,增强了系统健壮性。 e、便于团队开发 Struts缺点: a、大量的...

    Struts2 in action中文版

    1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架 9 1.3.1 Struts 2简史 9 1.3.2 Struts 2概览:MVC模式 10 1.3.3 Struts 2的工作原理 12 1.4 小结 14 第2章 ...

    信息办公基于struts的图书管理系统-struts-ts.rar

    该源码资料包包含了完整的源代码和必要的配置文件,为开发者提供了丰富的参考和学习资源。该系统的主要功能包括图书信息的录入、查询、修改和删除,以及用户管理等。通过该系统,管理员可以轻松地对图书馆的图书信息...

Global site tag (gtag.js) - Google Analytics