总结-对各种开源框架的认识小结-struts2

本文介绍了Struts2框架的基本概念、优势及工作原理,并详细展示了如何使用Struts2框架搭建一个简单的Web应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初入java开发行业,还处于菜鸟阶段,俗话说好记性不如烂笔头,目前接触比较多的就是各种开源框架了,今天总结一下目前接触到的框架,以及其中的一些原理。

一.struts2定义

    直接上百科上的定义:Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一servlet,在MVC设计模式中,
    Struts2作为控制器(Controller)来建立模型与视图的数据交互。(定义成功解释了struts2是什么和作用)

二.struts2优势

    Struts 2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts 1的部分优点。
    Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性。

三.struts2工作原理

这里借用一张很常见的工作原理图

这里写图片描述
配合图像再看下面的说明应该会更加清晰:

  1. 客户端初始化一个指向Servlet容器(例如Tomcat)的请求

  2. 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,
    这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)

  3. 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个ActionFilterDispatcher是控制器的核心,就是mvc中c控制层的核心。

  4. 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy

  5. ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类
    ,这里,我们一般是从struts.xml配置中读取。

  6. ActionProxy创建一个ActionInvocation的实例。

  7. ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

四.struts2的使用步骤:

1.加载Struts2 类库
以下为必须加载的8个jar包:
这里写图片描述
2.配置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.开发视图层页面-index.jsp

<h1>Hello World</h1>
<div>
    <h1>
        <!-- 显示Struts Action中message属性内容 -->
        ${message}
    </h1>
</div>
<hr />
<div>
    <form action=“hello">
        请输入您的姓名:
        <input name="name" type="text" />
        <input type="submit" value="提交" />
    </form>
</div>

4.开发控制层Action-HelloAction

public class HelloWorldAction { 
    private String name = ""; // 用户输入的姓名
    private String message = ""; // 向用户显示的信息    
    /**
     * 当Struts 2处理用户请求时,在默认配置下调用的方法
     */
    public String execute() {
        // 根据用户输入的姓名,进行“Hello,XXXX!”的封装
        this.setMessage("Hello,"+this.getName()+"!");
        // 处理完毕,返回“ok”字符串
        return “ok";
    }
    …   //省略setter、getter方法
}

5.创建struts.xml文件

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="demo" namespace="" extends="struts-default">
    <action name="hello" method="excute" class="action.HelloAction">
        <result name="ok">/index.jsp</result>
    </action>
</package>
</struts>

6.部署、运行项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值