Struts2学习笔记④
刚才看书发现了一个问题,就是ActionSupport和Action接口的区别没搞清楚,弄得我以为我之前的代码写错了。其实ActionSupport已经实现了Action接口了,实际开发中也很少使用Action接口,直接都是继承ActionSupport的。Mark一下,省的以后看代码惊到了....
其实Struts里面action有很多配置的,result也有很多配置,比如说result有type的属性,可以为chain、dispatcher、redirect、redirectAction etc.,其实这些配置都很简单,几乎就是看一遍就记住了没什么必要写下来,打不了查一下资料两秒钟的事情。但是这里着重说一下 转发和重定向的区别,以下是我自己的理解,有可能不太对但是应用在实际中还是比较好理解的也是行得通的:
转发 HTTP请求--> Server-->some action---(redirect)--->another action 在转发的过程里没有丢失HTTP请求的数据而且URL不会变,完全是内部完成的事情
重定向 HTTP请求 --> Server-->some action---(重定向)---> another action 在重定向的过程中丢失了HTTP请求的数据URL会发生改变
也许没有解释的太清楚,记住一点就可以了 转发不会丢失数据,将数据进行了转发,重定向丢失了数据,而且URL发生了变化,就类似于什么呢,你要设计一个企业的Logo,你找到了A企业的设计师Tom,但是Tom发现其实没有办法完成你的要求,所以他将你所有的要求转告给了设计师Amy,这里的A企业实际上就是一个类,而Tom和Amy实际上就是类中的不同方法,这就是转发。那么重定向呢就是你来A公司设计logo,但是设计师Tom告诉你他没有办法帮你完成设计,但是帮你推荐到了B公司的Selina设计师哪里,由于你们并不是一家公司,所以客户还要给B公司提交一份要求。
今天在接着看书,一直对拦截器比较感兴趣,正好书就到了拦截器这块儿。大致的看了一下拦截器的定义,说的太乱,始终没有点明拦截器到底是个啥,只告诉你是个重要的组件...这让人多着急,当然也告诉了你拦截器能干啥,也说的太笼统。我理解的拦截器啊实际上是,它之所以被称为拦截器肯定是要拦截一些东西的,拦截的东西有很多,交互的数据啊甚至是Action都可以进行拦截,至于拦截什么东西在定义拦截器的时候就规定好了,传来的请求需要经过拦截器,如果拦截器发现了满足拦截条件的东西,开始进行逻辑代码的执行:比如说我这里有一个表单,我要验证name=username的字段的值里面不能有特殊符号,那么当HTTP请求传来时拦截器发现了name为username的数据,马上进行拦截判断,发现有特殊符号,返回个ERROR重新输入,如果没有特殊符号,则继续执行Action result啊,返回SUCCESS,我是这么理解的,明天在查一查相关的资料,补充修正一下,毕竟周末——懒得很.......
Struts2学习笔记④的更多相关文章
- Struts2学习笔记⑧
今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...
- Struts2学习笔记①
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...
- Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...
- Struts2 学习笔记(概述)
Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...
- struts2学习笔记 ⑤
拦截器初探 昨天临睡觉之前看了看拦截器,也在昨天的学习笔记里面胡诌诌了几句,今天就来好好的会会拦截器这个东西.实际上拦截器是一种模块实现的机制<起码我是这么体会的>(至于说书里面说体现了A ...
- [struts2学习笔记] 第二节 使用Maven搞定管理和构造Struts 2 Web应用程序的七个步骤
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/releas ...
- struts2学习笔记之二:基本环境搭建
学习struts2有一段时间了,作为一个运维人员学习的时间还是挺紧张的,写这篇文件为了方便以后复习时使用 环境: MyEclipse 10 tomcat6 jdk1.6 首先建立一个web项目,并 ...
- 【Struts2学习笔记-4】包含其他配置文件
包含其他配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLI ...
- 【Struts2学习笔记-3】常量配置
Struts2常量 配置Struts2常量值有3个地方,1)在struts.properties文件中配置常量:2)在web.xml文件中配置FileterDispatcher指定初始化参数来配置常量 ...
- struts2学习笔记(4)——数据类型转换
回过头来看昨天的那个例子. 在昨天的例子中,只转换了一个Point类,如果想转换多个Point类怎么办呢?在昨天的例子上面做一个小的修改. 首先在input.jsp页面中修改几个输入框. <s: ...
随机推荐
- C# 编写通用的JSON数据进行序列化和反序列化
注意事项:使用JSON系列化和反系列化,必须要添加引用System.Runtime.Serialization. 1.通用类代码如下: /// <summary> /// JSON序 ...
- Mockito教程
Mockito教程 2017-01-20 目录 1 Mockito 介绍 1.1 Mockito是什么? 1.2 为什么需要Mock 1.3 Stub和Mock异同 1.4 Mockito资 ...
- linux 中c/c++实现终端命令行命令
在终端中可以从用下面命令获得帮助: man system 在c/c++代码中实现和在终端中输入的命令行一样的效果,以命令(audacious -p &)为例,该代码实现用audacious在后 ...
- Quartz_理解3
什么是Quartz Quartz是一个开源的作业调度框架,由java编写,在.NET平台为Quartz.Net,通过Quart可以快速完成任务调度的工作. Quartz能干什么/应用场景 如网页游戏中 ...
- 对JavaScript中this的理解
JavaScript中的this其实没传说中的那么难,也没那么乱. 我们来分析下,this主要是跟它的执行环境有关. 而通常情况下,this都是放在函数体中或可执行的JS代码中(函数体除外). 至于J ...
- 用keychain这个特点来保存设备唯一标识。
由于IOS系统存储的数据都是在sandBox里面,一旦删除App,sandBox也不复存在.好在有一个例外,那就是keychain(钥匙串). 通常情况下,IOS系统用NSUserDefaults存储 ...
- html5橡皮檫特效
体验效果:http://keleyi.com/keleyi/phtml/html5/32.htm 效果描述: 有点像刮刮卡一样,在移动设备上,把某张图片刮掉显示出另一张图片.效果图如下: 这种刮图的效 ...
- Maven入门-4.Maven的依赖
1.Maven的依赖1.1 添加依赖1.2 依赖范围(sope)依赖范围与classpath的关系1.3 依赖的传递性1.2.1 依赖传递性的冲突问题1. 第一种情况2. 第二种情况1.2.2 通过e ...
- [看图说话] 基于Spark UI性能优化与调试——初级篇
Spark有几种部署的模式,单机版.集群版等等,平时单机版在数据量不大的时候可以跟传统的java程序一样进行断电调试.但是在集群上调试就比较麻烦了...远程断点不太方便,只能通过Log的形式,进行分析 ...
- JSP-表单元素示例
<%@ page language="java" pageEncoding="UTF-8"%><%@ page import="ja ...