相信网上已经有很多关于struts2的HelloWorld可参考,我这里就不重复了,没个学struts2的人都会做过很多个HelloWorld,而我这里就总结一下一个简单的HelloWorld

我在一本书里面看到一个不错的结构图,我在这里引用一下《轻松掌握Struts2》

在这里我就以我自己的理解,重新归纳一次

1.由客户端(客户端可以是很多种,可以是浏览器,可以一些电脑应用,或者是手持应用等)发送一个请求到服务器(通过IP和port就能知道连接的是那个服务器了)

2.服务器接收到请求后,首先经过一个过滤器,看看如何处理这个请求(使用那种过滤器,这里就由web.xml来配置)

3.经过过滤后,开始进行处理,这里就要通过struts.xml这个配置文件,来看看如何处理,处理的逻辑一般叫Action组件,由一个Java类完成,这个类一定要有一个方法叫execute的方法

4.处理完之后,这个方法需要有一个返回值,对应上的返回结果,返回对应的页面结果,例如成功返回成功的页面,失败返回失败的页面

下面几种图,就是各流程中对应的动作

1.这里有两张图,第一张是登录页面的网页,第二张是代码,在登录页面中,按下提交按钮这个请求流程才正式开始,请求时发出的请求将会是图二中左部分的那个action=login的动作

当这个action动作被截获的时候,会在这个struts.xml文件中寻找它的动作映射,这个login的动作,对应处理的class为struts2.action.LoginAction.java

2.在这个action里面可以带参数,对应的是这个处理类LoginAction.java中的声明的setUsername方法,拦截器获取到这个请求参数后,对在在这个类中找到相应的setter方法,把值附上

所以声明中的username并不是关键所在,改成任何名字都可以,关键是这个setter方法

private String username

  

3. 知道那个类去处理这个action之后,这个类会被实例化,并且会执行execute的默认方法,并且把请求传过来的参数赋予给这个类(读声明的Set方法),这个execute的返回结果,将会是字符串,返回的结果字符串会在struts.xml的login处理结果中找到对应的返回方式,例如success的字样就返回成功的页面success.jsp,就这样,整个流程就完成了

Struts2学习笔记 - HelloWorld总结的更多相关文章

  1. [Cocos2d-x for WP8学习笔记] HelloWorld结构分析

    先来看一下目录结构: Assets:游戏资源文件,图片音频等,Resource文件夹也有类似功能 include:用于放置游戏头文件 Shaders:渲染器着色器文件(大雾) cocos2dorig. ...

  2. [Cocos2d-x for WP8学习笔记] HelloWorld

    Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2. ...

  3. Struts2学习笔记⑧

    今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...

  4. Struts2学习笔记①

    Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...

  5. Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)

    Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...

  6. Struts2 学习笔记(概述)

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

  7. struts2学习笔记 ⑤

    拦截器初探 昨天临睡觉之前看了看拦截器,也在昨天的学习笔记里面胡诌诌了几句,今天就来好好的会会拦截器这个东西.实际上拦截器是一种模块实现的机制<起码我是这么体会的>(至于说书里面说体现了A ...

  8. [struts2学习笔记] 第二节 使用Maven搞定管理和构造Struts 2 Web应用程序的七个步骤

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/releas ...

  9. struts2学习笔记(一)

    1.搭建第一个struts2 app. web.xml  <?xml version="1.0" encoding="UTF-8"?> <we ...

随机推荐

  1. 安装文件制作工具Wix概念快速入门

    前言 Wix==Windows installer XML 顾名思议. 用于制作WINDOWS安装文件的XML格式的描述文件. 因为其实现方式为基于声明的方式,而非命令的方式. 特整理一下其相关的概念 ...

  2. JS与Jquery学习笔记(二)

    一. JS 的面向对象 JS没有类,其类就用function来代替如下所示: function Cat(name, color){ this.name=name; this.color=color; ...

  3. iOS-延时操作汇总

    在iOS开发中,一个操作我们希望不要立刻执行,而是等上几秒之后再来处理,这时我们就需要延时处理,我们来看看这些方 1.最直接的方法performSelector:withObject:afterDel ...

  4. BNUOJ 51279[组队活动 Large](cdq分治+FFT)

    传送门 大意:ACM校队一共有n名队员,从1到n标号,现在n名队员要组成若干支队伍,每支队伍至多有m名队员,求一共有多少种不同的组队方案.两个组队方案被视为不同的,当且仅当存在至少一名队员在两种方案中 ...

  5. JS继承模式粗探

    之前提到了JS中比较简单的设计模式,在各种设计模式中被最常使用的工具之一就是原型链的继承.作为OOP的特质之一——继承,今天主要谈谈JS中比较简单的继承方法. 最基础的原型链继承在这里就不复述了,主要 ...

  6. iOS开发--Block

    iOS开发--Block 1.什么是Block,block 的作用 ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理 (1)按钮 target-action   一 ...

  7. Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7549340 更多请查看专栏,地 ...

  8. linux-9基本命令之-查看系统负载 uptime

    uptime  查看系统负载 uptime @1.查看每一秒的刷新一次系统负载运行情况 [root@localhost /]# watch -n uptime 系统当前时间      系统已运行时间 ...

  9. oracle在impdp时报ORA-31655和ORA-39154

    检查表空间大小设置的是否合理. 另外可以试试 grant IMP_FULL_DATABASE to user;增加导入权限. (转)

  10. sphinx教程

    http://www.php100.com/html/it/focus/2013/0916/6188.html### 以上一篇的email数据表为例: 数据结构: 01.CREATE TABLE em ...