本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名原文链接~~~

Struts2(1)之快速入门

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:


简介

Struts2 是一个基于 MVC 设计模式的 Web 应用框架,它本质上相当于一个 servlet,在 MVC 设计模式中,Struts2 作为控制器 (Controller) 来建立模型与视图的数据交互。

Struts2 是 Struts1 的下一代产品,是在 struts1和 WebWork 的技术基础上进行了合并的全新的 Struts2 框架。其全新的 Struts2 的体系结构与 Struts1 的体系结构差别巨大。

Struts2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以 Struts2 可以理解为 WebWork 的更新产品。

虽然从 Struts1到 Struts2 有着太大的变化,但是相对于 WebWork,Struts2 的变化很小。

关注文章首部微信公众号发送 #29_struts2_2.3.37 获取 Struts2 开发资源包。

快速开始

Hello Struts2
1、编写 Action 类:

// com.zze.action.HelloAction
package com.zze.action;

public class HelloAction {
    public String execute() {
        System.out.println("hello Struts 2");
        return "hello";
    }
}

2、新建要跳转到的 JSP 页:

<!-- WEB-INF/hello.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello</title>
</head>
<body>
<h3>hello Struts2</h3>
</body>
</html>

3、在 src 下新建如下配置文件:

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

<struts>
    <!--配置 Strut 2 的包-->
    <package name="test1" extends="struts-default" namespace="/">
        <!--配置 Action-->
        <action name="hello" class="com.zze.action.HelloAction">
            <result name="hello">/WEB-INF/hello.jsp</result>
        </action>
    </package>
</struts>

4、在 web.xml 中配置核心过滤器:

<!-- 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>

5、部署到 Tomcat,运行:

image.png

执行流程分析

1、首先浏览器请求 localhost:8080/hello

2、在 web.xml 中配置的核心过滤器会拦截到请求。

3、拦截器会解析 url,在 struts.xml 中根据 package 标签上的 namespace 属性和 action 标签上的 name 找到对应请求路径的 action

4、执行对应 action 标签对应 Action 类对象的 execute 方法。

5、execute 方法返回字符串,这个字符串与 action 标签下的 result 标签的 name 匹配。

6、返回匹配到的 result 标签中定义的路径对应的 JSP 页面。

7、浏览器接收、渲染。

image.png

# Struts2  

如果这篇文章对您有帮助,可点击下方链接分享给你的朋友们😋,如果遇到问题欢迎评论、留言~~~😇

评论

公众号:zze_coding

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×