Struts2学习1——概述

本文学习资源:《STRUTS 2完全自习手册》

概述


MVC

Model-View-Controller ,一种目前广泛流行的软件设计架构模式。

MVC模块层关系

这里写图片描述

MVC处理过程

这里写图片描述

Model1

传统JSP嵌套HTML代码的模式
这里写图片描述

Model2

MVC模式
这里写图片描述

Strusts2结构体系

这里写图片描述

Strusts2配置文件

struts.xml

创建Struts2应用,首先需要Struts2的核心配置文件 struts.xml,该文件用来配置Action
定义Action,指定该Action的调用名称、实现类、及该Action的处理结果和返回视图映射关系。
struts.xml示例:

<!DOCType STRUTS PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
   <package name="default" extends="struts-default">
      <action name="login" class="struts-default"> 配置Action
         <result>/success.jsp</result>             配置success返回视图
         <result name="input">/login.jsp</result>  配置input返回视图
      </action>
   </package>
</struts>

result 属性:
- name
- type 指定转向的资源类型,默认类型为JSP。如果需要转向其它Action,则需要指定转向类型,设置type属性值为redirect

struts.properties

配置全局属性

struts.i18n.reload=true
struts.i18n.encoding=gb2312

Struts2 控制器

核心控制器

FilterDispatcher
在Web应用中负责拦截所有的用户请求。在Struts2应用中起作用的业务控制器实际上不是用户自定义的Action,而是系统生成的Action代理,但是该Action代理以用户自定义的Action为目标。

业务控制器

Action

Action示例:

package action;
public class Login{

  private String userName;
  private String userPassword;
  public String execute(){
     return "success"; // or return "error";
  }
}

业务控制器一般都有一个execute()方法,该方法返回一个字符串,这个字符串是一个逻辑视图名,通过配置后对应一个视图。

业务逻辑组件

这里写图片描述

Struts2中使用Pojo

Struts2 标签库

示例

<%@ page language="java" import="java.util.*" pageEncoding="gb2312" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html>
<body>
    <s:form actio="add">
       <s:textfield name="name" label="姓名" />
       <s:submit value="添加" />
    </s:form>
</body>
</html>

Struts2 运行流程分析

内容来源《[尚硅谷]_佟刚_Struts2 运行流程分析》
1. 请求发给StrutsPrepareAndExecuteFilter
2. StrutsPrepareAndExecuteFilter 询问ActionMapper,该请求是否是一个Struts2请求(即是否返回一个非空的ActionMapping对象)
3. 若ActionMapper认为该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求处理交给ActionProxy
4. ActionProxy通过ConfigurationManager询问框架的配置文件,确定需要调用的Action类及Action方法
5. ActionProxy创建一个ActionInvocation的实例,并进行初始化
6. ActionInvocation实例在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用
7. Action执行完毕,ActionInvocation负责struts.xml中的配置找到对应的返回结果。调用结果的execute方法,渲染结果。在渲染的过程中可以使用Struts2框架中的标签。
8. 执行各个拦截器invocation.invoke()之后的代码
9. 把结果发送到客户端
这里写图片描述

时序图:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程圈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值