Struts2学习1——概述

来源:互联网 发布:linux 递归授权 编辑:程序博客网 时间:2024/05/29 12:20

本文学习资源:《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=truestruts.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. 把结果发送到客户端
这里写图片描述

时序图:
这里写图片描述

0 0
原创粉丝点击