跟我学框架之struts框架搭建(一)

    xiaoxiao2021-03-25  126

    一、框架概述

    1、框架的意义与作用:

    所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面。

    特点:封装了很多细节,程序员在使用的时候会非常简单。

    2、三大框架:

    Struts2HibernateSpring

    二、Struts框架的简介

     

       1Struts2概述

          Struts2Apache发行的MVC开源框架。注意:它只是表现层(MVC)框架。

      在这里我要来说说什么是MVC)框架

      MModel模型,封装数据。javabean

      Vview视图,展示界面。jsp

      CController控制器,控制程序流程。Servlet

    示意图:

       2Struts2的来历

         Struts1:也是apache开发的一套mvc的开源框架。在2005年之前非常流行。

           弊端:Struts1的核心控制器就是一个Servlet。随着使用者的增多,弊端开始出现。

         Struts2:在之前有一个设计超前的框架XWork,后来推出了XWork1WebWork2Struts2就是apacheOpenSymphony组织合并开发出来。

          Struts里面包含了WebWork2的核心及Struts1的一些特性和功能。除此之外,和Struts1没有任何关系了。

    三、Struts框架搭建

       1、下载Struts2开发包

        官网下载:   http://struts.apache.org,现在官网最新版本是2.5版本,我暂且使用2.3版本吧

    这是下载的包。下载最新版本亦可以

       2、开发包目录结构说明

        

    lib文件夹下面有很多jar包,开发中使用那个,直接拷贝哪个就可以了

    3、开始搭建Struts开发环境

    开发工具我选择的是eclipse,选择myeclips也可以,至于开发工具的使用,我不再赘述,自行补脑 先创建一个web工程

    所需jar包我们到下载的Struts包中的apps目录下

    war包文件,把这个struts2-blank.war包文件解压

    apps\struts2-blank\WEB-INF\lib下的所以jar全部拷贝

             

    在src目录下创建一个strust.xml文件

    这里我要说明一下,由于eclipse本身没有带strust的dtd约束

    找到jar包中文件,解压

    我们会看到dtd文件

    下面我来配置Struts的dtd文件约束,找以下位置,myeclips是集成好的,不用我们来配置

    点击ADD增加

    key:http://struts.apache.org/dtds/struts-2.3.dtd  这是dtd文件命名空间地址

    然后ok

    最后找到

    xml文件模本语法:

    <?xml version="1.0" encoding="${encoding}"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> </struts>

    配置完之后,我们在写Struts文件时就会语法提醒

    新建一个Struts.xml文件

    下一步next

    这是我们创建好的模板

    下一步finsh完成,就会看到生成的Struts.xml文件

    注意:

    1.文件名大小写。

    2.创建位置。

    3.该名称允许修改,但是我们一般不改。

    接下来我们来配置控制器

    a、配置位置:在web.xml

    b、配置什么: struts2已经写好了的一个过滤器。

    打开web.xml文件增加以下配置

      <filter>     <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>   </filter>   <filter-mapping>     <filter-name>struts2</filter-name>     <url-pattern>/*</url-pattern>   </filter-mapping>

    然后我们来发布下,看看

    启动没报错,说明成功了

    运行http://localhost:8080/Strust-S1/hello

    执行成功了

    Struts工作原理图

    4、Struts执行流程

    struts工作时序图

    Struts2配置文件加载时序: 加载时机:

    当应用被tomcat容器加载的时候,struts2的配置文件就已经被加载过了。

    加载顺序:default.properties——struts-default.xml——plugins配置——struts.xml——struts.properties——web.xml

    default.properties 该文件保存在 struts2-core-2.3.15.3.jar 中 org.apache.struts2包里面

    struts-default.xml 该文件保存在 struts2-core-2.3.15.3.jar struts-plugin.xml 该文件保存在struts-Xxx-2.3.15.3.jar struts.xml 该文件是web应用默认的struts配置文件 struts.properties 该文件是Struts的默认配置文件 web.xml 该文件是Web应用的配置文件 如果多个文件配置了同一个struts2 常量,则后一个文件中配置的常量值会覆盖前面文件配置的常量值

    Struts给我们提供了两种文件配置方式:

    1Struts2提供了两种配置的方式。一种是key=value的方式,即使用.properties文件。缺点:如果属性太多不容易维护上下级关系

    2、是xml文件配置。我们推    荐使用xml文件(它能描述层级关系)。

    我们来看struts-default.xml文件

    我们这里注意下,

    当多个配置文件中,有相同的参数,后面的会把前面的值给覆盖了

    下面我们来看看default.properties配置文件,体现形式都是key=value。它主要定义了Struts框架的常量,下面主要是一些常用的列举出来

    如果我们想改变Struts默认提供的常量,我们可以选择覆盖的方式:

    1.例如,Struts默认的后缀名是.action,我们想修改一下后缀名,我们可以在Struts.xml文件中定义常量

    这里我只是把开发上常用的常量列举了出来一部分

    除了在xml文件中配置,我们也可以创建

    struts.properties文件来设置

    3、Struts的package元素

    3.1、作用:

    struts2的配置文件中引入了面向对象思想,使用了分包管理。易于管理动作类。便于模块化开发动作类。

    3.2、属性:

    name:包的名称。必须写。且必须唯一。

    extends:一般情况下需要继承struts-default包,但不是必须的。不过如果不继承的话,将无法使用struts2提供的核心功能。

    struts-default.xml中定义着struts-default这个包。而struts-default.xml是在我们的struts.xml加载之前加载。

    abstract:把包声明为抽象包,抽象包就是用来被继承的。只要是没有<action>元素的包,就可以声明为抽象包。

    namespace:名称空间。

    名称空间 + 动作名称 = 访问路径

     这里的不是必须的,默认的不是“/”,可以不写,如果写了可以是“” 

    这里我要说明下

    名称空间的搜索顺序:     第一步:先去找对应的名称空间在指定的名称空间下找到了:

        就执行第二步。     在指定的名称空间下没找到:按照名称空间结构向上追溯,一直到根名称空间,只要     在任何一级找到了,执行第二步   第二步:找动作名称    先在指定的名称空间下,搜索对应的动作名称:找到了就执行动作类的动作方法。 在指定的名称空间下没找到对应的动作名称:前往默认的名称空间下,找动作名称。

    注意:它只找动作名称。

    转载请注明原文地址: https://ju.6miu.com/read-12204.html

    最新回复(0)