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

一、框架概述

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:名称空间。

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



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

这里我要说明下

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

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


注意:它只找动作名称。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章