一、概述

  Struts2是基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts作为控制器(Controller)来建立模型与视图之间的数据交互。Struts2是Struts1的下一代产品,是在WebWork技术基础上进行合并的全新的框架,其全新的体系结构与Struts1差距很大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全分离,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着巨大的变化,但是相对于WebWork,Struts2的变化很小。

 

二、环境搭建

  首先我们需要相关jar包

Struts2的开发包下载地址:https//struts.apache.org/  下载完开发包后进行解压所需jar包就在解压后的lib包下一下为Struts2所需的jar包

三、Action的创建与配置

  1. 创建Action的三种方式:

          1).直接创建类,在这个类中编写一个public String execute()方法,该方法没有任何参数

          2).创建一个类实现Action接口并重写execute()方法

          3).创建一个类基层ActionSupport类

  2.配置sruts2的访问路径

        1)struts2核心配置文件:核心配置文件的名称和位置都是固定的 在src下 名称为struts.xml(可以分模块引入)

        • 引入dtd约束:

          <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
          "http://struts.apache.org/dtds/struts-2.3.dtd">     

        • <struts>

        • <constant name = "struts.i18n.encoding" value = "UTF-8"></constant>
        • <package name = "helloword" extends = "struts-default" namespace = "/">

              <action name = "hello" class = "带有包名的action类">

               <result name = "方法返回值">/helloword.jsp</result>

               </action>

            </package>

            </struts>

             2).配置struts过滤器(在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>

          3).分模块开发的配置文件:单独写配置文件,然后把配置文件引入到核心配置文件中在引入helloword.xml文件

            <include file = "cn/.路径./helloword.xml"></include>(在struts标签下)

三、Struts2的执行过程

四、配置文件的解释

         1.package标签:类似于代码包,区别不同的action,要配置acion必须先配置package标签。

                 name属性:它的值跟功能没有关系,在一个配置文件中可以写多个package,但是name值不能相同。

                 extends属性:该属性值固定为struts-default   有了这个属性之后再package里面配置的action类才具有功能。

                 namespace属性:该属性值与action标签里面的name值一起组成访问路径。默认值为“/”

         2.action标签: 

                name属性:配置action的访问路径,与package中的name一起组成访问路径,三它的值不不能与娶其他action中的相同。               

                class属性:所需配置action类的全路径g

                method属性:比如在action默认执行的方法是execute,如果想让他执行其他方法可在此配置,可配置多个。

         3.result标签:该标签里面的值为访问路径,执行action时会访问该路径下的页面

                name属性:和方法的返回值一样

                type属性:配置如何到返回路径中(转发or重定向)

          4.constant标签:修改struts2的默认属性值用的 一般不用修改。还有两种修改的方法分别是在src下配置一个struts.propeties文件进行修改和在web.xml文件中进行配置

框架学习Struts2之HelloWord的更多相关文章

  1. SSH框架学习------struts2前后台传值(二)

    struts2的Action类一般都会继承(extends)ActionSupport类(Action类,即实现action的类)1.前传后:jsp里<input type="text ...

  2. SSH框架学习------struts2(一)

    1.总的目录 2.所有程序 1)index.jsp很简单 <%@ page language="java" contentType="text/html; char ...

  3. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  4. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  5. Struts2框架学习(一)

    Struts2框架学习(一) 1,Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发.框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2 ...

  6. [ SSH框架 ] Struts2框架学习之二

    一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Str ...

  7. [ SSH框架 ] Struts2框架学习之四(自定义拦截器)

    一.Struts2的拦截器 1.1 拦截器概述 拦截器,在AOP( Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截 ...

  8. struts2框架学习之第一天

    day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架 ...

  9. Java后台处理框架之struts2学习总结

    Java后台处理框架之struts2学习总结 最近我在网上了解到,在实际的开发项目中struts2的使用率在不断降低,取而代之的是springMVC.可能有很多的朋友看到这里就会说,那还不如不学str ...

随机推荐

  1. 我的linux一万小时

    这不是一篇鸡汤文,因为我并没有在使用 Linux 一万小时后成为 Linux 达人,甚至在很多方面,我连新手都算不上.我走的这些弯路能篇成一本很有参考价值的反面教材,下面,我在www.itxdl.cn ...

  2. console.log(0.2+0.4===0.6)// true or false??

    在正常的数学逻辑思维中,0.2+0.4===0.6这个逻辑是正确的,但是在JavaScript中0.2+0.4!==0.6这是为什么呢?这个问题也会偶尔被用来当做面试题来考查面试者对 JavaScri ...

  3. 警示:AL32UTF8字符集不是ZHS16GBK字符集的超集

    今天有一个客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对. 从现象看 ...

  4. 【Flask】 利用uWSGI和Nginx发布Flask应用

    因为Flask比较容易上手,之前也拿flask写过几个小项目,不过当时天真地以为只要在服务器上nohup跑一个python脚本就算是成功发布了这个flask项目.实际上这还面临很多问题,比如并发性不好 ...

  5. 【Python】 压缩文件处理 zipfile & tarfile

    [zipfile] 虽然叫zipfile,但是除了zip之外,rar,war,jar这些压缩(或者打包)文件格式也都可以处理. zipfile模块常用的一些操作和方法: is_zipfile(file ...

  6. 【Python】 零碎知识积累 I

    大概也是出于初高中时学化学,积累各种反应和物质的习惯,还有大学学各种外语时一看见不认识的词就马上记下来的习惯,形成了一种能记一点是一点的零碎知识记录的癖好.这篇文章就是专门拿来记录这些零碎知识的,没事 ...

  7. Spring Boot 引入自定义yml

    喜欢yml配置文件格式的人性化,也喜欢properties配置文件管理方式的人性化, 那么下面我们就来看一下 yml 是如何配置和使用类似properties管理方式的人性化. 配置文件 设置Spri ...

  8. [poj3280]Cheapest Palindrome_区间dp

    Cheapest Palindrome poj-3280 题目大意:给出一个字符串,以及每种字符的加入代价和删除代价,求将这个字符串通过删减元素变成回文字符串的最小代价. 注释:每种字符都是小写英文字 ...

  9. heartbeat错误排查

    错误一: [root@snale2 ha.d ::]#service heartbeat start Starting High-Availability services: INFO: Resour ...

  10. 数据库数据带&符号 导入有问题的处理办法

    在sql文件头部加个: set feedback off set define off   我们在plsql里面将一条语句导出时会出现以下结果(测试表t_test): prompt Importing ...