Struts 2应用的开发步骤

(1)在web.xml文件中定义核心Filter来拦截用户请求。

由于Web应用是基于请求/响应架构的应用,所以不管哪个MVC Web框架,都需要在web.xml中配置该框架的核心Servlet或Filter,这样才可以让该框架介入Web应用中。

例如,开发Struts 2应用第1步就是在web.xml文件中增加如下配置片段:

<!--定义Struts 2的核心Filter -->
    <filter>
        <filter-name>struts2</filter-name>
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
<!-- 让Struts2的核心Filter拦截所有请求 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

  

(2)如果需要以POST方式提交请求,则定义包含表单数据的JSP页面。如果仅仅只是以GET方式发送请求,则无须经过这一步。

(3)定义处理用户请求的Action类。

这一步也是所有MVC框架中必不可少的,因为这个Action就是MVC中的C,也就是控制器,该控制器负责调用Model里的方法来处理请求。

MVC框架的底层机制是:核心Servlet或Filter接收到用户请求后,通常会对用户请求进行简单预处理,例如解析、封装参数等,然后通过反射来创建Action实例,并调用Action的指定方法(Struts 1通常是execute,Struts 2可以是任意方法)来处理用户请求。这里又产生了一个问题:当Servlet或Filter拦截用户请求后,它如何知道创建哪个Action的实例呢?这有两种解决方案:

  利用配置文件:例如,可以配置login.action对应使用LoginAction类。这就可以让MVC框架知道创建哪个Action的实例了。

  利用约定:这种用法可能是受Rails 框架的启发,例如,可以约定xxx.action总是对应XxxAction类。如果核心控制器收到login.action请求后,将会调用LogoinAction类来处        理用户请求。

在MVC框架中,控制器实际上由2个部分共同组成,即拦截所有用户请求,处理请求的通用代码都由核心控制器完成,而实际的业务控制(诸如调用Model,返回处理结果等)则由Action处理。

(4)配置Action。对于Java领域的绝大部分MVC框架而言,都非常喜欢使用XML文件来配置管理。配置Action就是指定哪个请求对应用哪个Action进行处理,从而让核心控制器根据该配置来创建合适的Action实例,并调用该Action的业务控制方法。

(5)配置处理结果和物理资源间的对应关系

(6)编写视图资源

在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter

时间: 2024-11-06 10:18:01

Struts 2应用的开发步骤的相关文章

struts2学习笔记2 -struts2的开发步骤和工作原理

struts2的开发步骤: 1.先定义一个能发送请求的页面,可以是链接,也可以是表单(form) 2.开发action类,struts2对action并没有过多的要求,只要求: a 推荐实现action接口,或继承actionsupport类 b 为每个请求参数都提供feild,并为之提供相应的setter和getter方法 c 该action类应该有无参数构造器 3.配置action类 所有action都需要放在package里配置. <action>元素有如下属性: name 指定该act

Thrift实现C#调用Java开发步骤详解

转载请注明出处:jiq?钦's technical Blog Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架. 类似的跨语言RPC框架还有ICE.Hessian.Protocol Buffer.Avro等. 1 下载Thrift 下载地址:http://thrift.apache.org/download thrift-0.9.3.exe         用于编译Thrift中间文件生成对应语言代码的工具 thrift-0.9.3.tar

NDK---使用,开发步骤

使用NDk的场景: 1.某些方法,是使用C,C++本地代码实现的,然后,我想在Java中调用这些方法.这个时候,就需要使用到JNI技术. 为什么要使用C,C++代码实现呢? 原因是: 1.某些功能,需要使用到第三方的类库来实现,而第三方类库是用C或者C++写的,只有C或者C++代码才可以使用到该类库.于是, 就用C,C++代码实现.然后,实现后的方法,就供Java代码调用. 2.某些功能,使用C,C++代码来实现,速度和性能会高很多.比如,视频传输部分的代码.这个时候,将这部分功能,使用C,C+

JNI开发步骤注意总结:

开发工具和环境搭建: 第一个工具: NDK (native develop kits) 交叉编译的工具链: 交叉编译: 在一个平台(处理器,操作系统)下 编译出来另外一个平台下可以运行的代码. windows AMD intel x86 架构-> 手机 android arm处理器 .c .java 1. 编译  把源代码(高级语言)编译成一个低级语言 (汇编语言) 2. 连接  根据具体平台的特性,(cpu的类型 x86 arm,操作系统的类型) 连接成一个可以执行的二进制可执行的程序. 第二

【AngularJS学习笔记】开发时候的建议目录结构,基本开发步骤

项目目录结构划分 Debug Node.JS的生成目录 Node_modules Node.Js的依赖项 Src 项目源文件 ----|framework  项目框架 --------|app --------|css --------|data --------|font --------|img --------|js --------|plugin ----|modules --------|父菜单中填写的module名,父节点 ------------|app 主要项目文件 ------

WebService的开发步骤

WebService的开发要追究于SOA的发展. 软件开发从面向过程到面向对象 到面向服务.在今天说WebService之前,我想先简单说一下什么是面向服务(SOA). 以上面这张图来看,可以看出面向服务结构是一个组件模型, 它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 这样做的特点是 每个服务都有明确的边界.各个服务之间相互独立,并且采用标准的契约定义和通信协议. 基于这样的基础上,我们的WebService的开发就分为三步. 一 创建一个Web服务.

hadoop日志数据分析开发步骤及代码

日志数据分析:1.背景1.1 hm论坛日志,数据分为两部分组成,原来是一个大文件,是56GB:以后每天生成一个文件,大约是150-200MB之间:1.2 日志格式是apache common日志格式:每行记录有5部分组成:访问ip.访问时间.访问资源.访问状态.本次流量:27.19.74.143 - - [30/May/2013:17:38:20 +0800] "GET /static/image/common/faq.gif HTTP/1.1" 200 11271.3 分析一些核心指

hibernate开发步骤

Hibernate框架开发步骤 项目导入需要的jar包: http://pan.baidu.com/s/1eRQ19C2 编写hibernate.cfg.xml文件 <?xml version='1.0'encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD3.0//EN" "http://hibernate.s

iOS 之UICollectionView 开发步骤 之 OC

说起来容易做起来难. 那么我就不说了,来做吧.这就是我的style. 鉴于现在的主流还是OC,那么示例程序还用OC来写,后续补写Swift程序,这里先占个坑. 废话不多说,下面开发步骤来了: 1. 创建程序 万事开头难,先创建一个程序吧,我写完这句话就去创建.取名就叫testCollectionView,但是我要上传到github上,所以,这个名字可能会重复.那么重新弄个工程吧,取名字叫做TestCollectionViewWood.哦,对了,是否只要自己的工程里面没有重复的就可以了.先试一下.