Strust2_helloword

Struts 2 简介

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

Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,在用户请求和模块化处理方面以及页面展示,Struts2 表现明显

Strus 2 与用户交互

 Strus 2 的架构图

关于图中的Key:

  • Servlet Filters:过滤器链,客户端的所有请求都要经过Filter链的处理。
  • Struts Core:Struts2的核心部分,但是Struts2已经帮我们做好了,我们不需要去做这个
  • Interceptors,Struts2的拦截器。Struts2提供了很多默认的拦截器,可以完成日常开发的绝大部分工作;而我们自定义的拦截器,用来实现实际的客户业务需要的功能。
  • User Created,由开发人员创建的,包括struts.xml、Action、Template,这些是每个使用Struts2来进行开发的人员都必须会的。

名称解释:

  • 1.FilterDispatcher是整个Struts2的调度中心,也就是MVC中的C(控制中心),根据ActionMapper的结果来决定是否处理请求,如果ActionMapper指出该URL应该被Struts2处理,那么它将会执行Action处理,并停止过滤器链上还没有执行的过滤器。
  • 2.ActionMapper 会判断这个请求是否应该被Struts2处理,如果需要Struts2处理,ActionMapper会返回一个对象来描述请求对应的ActionInvocation的信息。
  • 3.ActionProxy,它会创建一个ActionInvocation实例,位于Action和xwork之间,使得我们在将来有机会引入更多的实现方式,比如通过WebService来实现等。
  • 4.ConfigurationManager是xwork配置的管理中心,可以把它看做struts.xml这个配置文件在内存中的对应。
  • 5.struts.xml,是开发人员必须光顾的地方。是Stuts2的应用配置文件,负责诸如URL与Action之间映射关系的配置、以及执行后页面跳转的Result配置等。
  • 6.ActionInvocation:真正调用并执行Action,它拥有一个Action实例和这个Action所依赖的拦截器实例。ActionInvocation会按照指定的顺序去执行这些拦截器、Action以及相应的Result。
  • Interceptor(拦截器):是Struts2的基石,类似于JavaWeb的Filter,拦截器是一些无状态的类,拦截器可以自动拦截Action,它们给开发者提供了在Action运行之前或Result运行之后来执行一些功能代码的机会。
  • 7.Action:用来处理请求,封装数据。

Strus 2 第一个框架程序helloword

1.新建Dynameic web projec,模块版本选择2.5,因为会默认创建web.xml

2.将struts2的核心jar包添加到项目中

 3.需要拦截用户请求,所有在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>

4.项目添加struts.xml文件,一般添加到src文件夹中

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

<struts>
    <package name="helloword" extends="struts-default">
        <action name="hello" class="com.lin.action.HelloStuts2Action2">
            <result name="success">helloword.jsp</result>
        </action>
    </package>
</struts>

action

  name:路径名,比如http://localhost:8080/Strust2Chap1/hello  带参数的http://localhost:8080/Strust2Chap2/hello?name=av

calss

  负责处理action的自定义类,自定义的必须是实现Action接口

public class HelloStuts2Action implements Action{

    @Override
    public String execute() throws Exception {
        System.out.println("执行了 action默认方法");
        return Action.SUCCESS;
    }

}

result可以有多个

  name指定结果success,none,error,input,login

5.完事,挂载项目  

  

猜你喜欢

转载自www.cnblogs.com/linbin7/p/11963465.html