struts2的开发步骤:

1.先定义一个能发送请求的页面,可以是链接,也可以是表单(form)

2.开发action类,struts2对action并没有过多的要求,只要求:

a 推荐实现action接口,或继承actionsupport类

b 为每个请求参数都提供feild,并为之提供相应的setter和getter方法

c 该action类应该有无参数构造器

3.配置action类

所有action都需要放在package里配置。

<action>元素有如下属性:

name 指定该action处理那个请求

class 指定该action对应的处理类 即java文件

method:指定使用action的那个方法来处理用户请求。默认是execute()方法

struts2工作原理和流程:

1.浏览器发送请求,abc.action,.action看web.xml中配置的filter

2.浏览器发送的请求被StrutsPrepareAndExecuteFilter来过滤所有的请求(在web.xml)指定该类

3.StrutsPrepareAndExecuteFilter会根据class路径找到该action类,会去创建action实例,加入请求为abc,StrutsPrepareAndExecuteFilter会搜索struts.xml中name为abc的action配置,根据class属性使用反射来创建action实例

4.4.调用
Map<String,String>

paramMap=request.getParamterMap();
----返回所有请求 参数名使用循环(String

paramName:paramMap.keyset()){
   
//得到请求参数名对应的setter方法。
action类.getMethod("set"+paramName的首字母大写)


//得到请求参数对应的值
String paramValue=paramMap.get(paramName);
//已action实例为调用者,调用setter方法,把请求参

数值作为参数值传入。
setter.invoke(actionInst,paramValue);
5.再通过反射调用method属性所指定的方法,返回一个

字符串
6.根据struts.xml文件中的<result.../>元素的name以

及物理视图资源,跳转到实际的视图资源

action类.getMethod("set"+paramName的首字母大

写)//请求参数对应的setter方法

-------------------------------------如何在

action中访问servlet api--------------------
有些时候需要访问servlet api 比如我们要把数据存入

session、application。以及添加cookie

(response.addCookie())
struts2提供了两种方式访问servlet api :
a.伪访问。借助于ActionContext。
ActionContext提供了getSession  -模拟访问http

session
                   getApplicatin -模拟访问

Application
b 真访问 添加cookie 直接访问servlet api 借助月

ServletActionContext
ServletActionContext提供了如下静态方法;
static PageContext getPageContext();
static HttpServletRequest getRequest();
static HttpServletResponse getResponse();
static ServletContext getServletContext();

struts2学习笔记2 -struts2的开发步骤和工作原理的更多相关文章

  1. Struts2学习笔记(一):Struts2开发环境的配置

    一.Struts2应用所需的jar文件. 开发struts2应用需要依赖的jar文件在解压目录下的lib文件夹里面.开发struts2程序最少需要的jar文件为:struts2-core-2.xx.j ...

  2. Struts2学习笔记--Struts例子及开发流程

    参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门 ...

  3. struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)

    贴一个简单的例子,通过jquery的post调用action,定义一个对象User,有name和age属性,实例化几个对象,以json的格式返回到jsp,在前台页面显示出来,模拟用户列表. 导入相关j ...

  4. struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式

    方法一:通过ActionContext访问SerlvetAPI,这种方式没有侵入性 Action类部分代码 import com.opensymphony.xwork2.ActionContext; ...

  5. Redux学习笔记:Redux简易开发步骤

    该文章不介绍Redux基础,也不解释各种乱乱的概念,网上一搜一大堆.只讲使用Redux开发一个功能的步骤,希望可以类我的小白们,拜托它众多概念的毒害,大牛请绕道! 本文实例源代码参考:React-Re ...

  6. java学习笔记(3):java的工作原理及相关基础

    一.运行机制 如上图所示,图中内容即为Java的运行机制: 1.我们一开始所编写的代码文件存储格式为(如text.java)文件,这就是源程序文件 2.在Java编辑器的作用下,也就是就行了编译,形成 ...

  7. STM32学习笔记(二):GPIO口工作原理

    STM32每个IO口具有7个寄存器来控制,每个IO口都可以自由进行编程控制,我们编程实际上控制的是通过控制那7个寄存器来控制我们的IO口,我们可以通过编程控制IO口,把IO口配置成如下八种模式: 1. ...

  8. 小甲鱼零基础汇编语言学习笔记第二章之寄存器(CPU工作原理,CPU内部通讯)

    这一章主要介绍了CPU中的重要器件——寄存器,整个系列通篇是以8086CPU作为探讨对象,其它更高级的CPU都是在此基础之上进行的升级.   1.一个典型的CPU是由运算器.控制器.寄存器等器件组成, ...

  9. Struts2 学习笔记(概述)

    Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...

随机推荐

  1. 移动端布局rem em

    1.概念 em作为font-size的单位时,其代表父元素的字体大小,em作为其他属性单位时,代表自身字体大小 rem作用于非根元素时,相对于根元素字体大小:rem作用于根元素字体大小时,相对于其出初 ...

  2. ZOJ 2676 Network Wars(最优比例最小割)

    Network Wars Time Limit: 5 Seconds      Memory Limit: 32768 KB      Special Judge Network of Bytelan ...

  3. http长短连接和长短轮询

    http长连接 http长连接是指http的请求头和响应头的均有connection: keep-alive的请求,也就是客户端和服务端均为keep-alive的请求. 实际上,http是请求/响应式 ...

  4. iOS指向函数的指针和block

      一:block基础知识 block基础知识 基本概念:block是用来保存一段代码的:^:是block得标志  好比*:是指针的标志 特点:1:保存一段代码: 2:可以有参数和返回值: 3:可以作 ...

  5. JAVA神操作--使用Arthas线上热更新实战

    热更不规范,同事两行泪 背景 C君是一个javaer,最近在开发用户登出接口的时候,不小心把接口参数拼错了 正确的是: /api/v1/user/logout?referrer=www.javaer. ...

  6. JavaScript真的要一统江湖了

    ttp://www.newsmth.net/nForum/#!article/Python/125347?p=4 标  题: JavaScript真的要一统江湖了 发信站: 水木社区 (Fri Sep ...

  7. JS允许找不到对象 不必判断是否存在某个div

    原文发布时间为:2009-11-10 -- 来源于本人的百度文章 [由搬家工具导入] 加一个try catch 即可。。。。 例子: for(var i=0;i<10;i++)     {    ...

  8. 使用CXF框架,发布webservice服务,并使用客户端远程访问webservice

    使用CXF框架,发布webservice服务,并使用客户端远程访问webservice  1. CXF介绍 :soa的框架    * cxf 是 Celtrix (ESB框架)和 XFire(webs ...

  9. linux 源代码目录结构

    Linux源代码目录树结构 (2008-04-21 09:14) 分类: Linux/Unix Linux用来支持各种体系结构的源代码包含大约4500个C语言程序,存放在270个左右的子目录下,总共大 ...

  10. duilib入门简明教程 -- 自绘标题栏(5) (转)

    原文转自 http://www.cnblogs.com/Alberl/p/3343667.html         如果大家有做过标题栏的自绘,肯定会感慨各种不容易,并且现有的一些资料虽然完美的实现了 ...