一、ServletActionContext  和 actionContext

HttpServletRequest request=ServletActionContext.getRequest();

Httpsession session=request.getSession();

ActionContext actionContext=ActionContext.getContext();

Map<String,Object> map =actionContext.getSession();

session  和map 维护的 东西是一致的 。。

map 是 struts 为了 测试 方便 而设计的。

二、服务器端 代码的单元 测试 :

1. 容器内 测试  jetty

2. Mock 测试 (继承httpServletRequest,httpSession等servlet API )

  如 jmock,easymock

三、preparable 接口

  作用:完成 初始化 工作。 先与 getModel()(ModelDriven 接口方法,实现模型驱动)。

四、action  结果类型:redirect 、dispatcher、chain、redirectAction

  dispatche 转发 ,执行完成后url 地址栏仍是原来的地址

  redirect 重定向到指定的url . 此时url 地址栏 是新地址。处理完成重定向到一个指定的视图资源,如jsp .参数和action处理结果都会丢失。

  redirectAction : 是redirect 的特例。。 处理完成后重定向到一个action。 请求参数和action 处理结果都会丢失

  chain: action 处理完成后 转发  (注意是转发) 到一个action 。 请求参数丢失。但是action 处理结果 不会  丢失。

  

  redirectAction 和chain  区别:

  1. redirectAction 在 浏览器中至少发出 两个请求 ,而 chain 是转发 ,只会发出一个请求,浏览器地址也是第一个action请求地址。

    chain 是在服务端直接处理完成后显示结果。 redirectAction 的浏览器地址要根据第二个action请求而定。

  2. redirectAction 需要在 配置文件中 配置 需要的参数 ,即

    <param name="user">${usera}</> user为第二个 action 的参数。 usera 为第一个、

    使用Chain时使用param  传递 属性 是不行的。 

  chain 会把第一个 action 的处理结果 转发给第二个 action ,注意第二个 action 能够获得的参数是请求 第一个 action 时给的参数(注意:所以第一个action中你自定义的属性是无法传递给第二个action的 。。但是 使用redirectAction 是可以 通过param来传递你定义的属性)

  

  

  

struts2 的 ServletActionContext 和 actionContext,服务器代码测试, redirect 、dispatcher、chain、redirectAction的更多相关文章

  1. struts2中 ServletActionContext与ActionContext区别

    1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息, ...

  2. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...

  3. Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

    测试 目前主流的就bdd和tdd,自己查一下差异 推荐 mocha和tape 另外Jasmine也挺有名,angularjs用它,不过挺麻烦的,还有一个选择是qunit,最初是为jquery测试写的, ...

  4. MQTT再学习 -- 搭建MQTT服务器及测试

    最近在搞 PM2.5 采集,需要用到 MQTT 传输协议.协议部分看了几天的,讲的七七八八.本身在 intel 上有 写好的MQTT 的源码,现在的工作其实也就是移植到单片机上或者DM368板卡上.不 ...

  5. RMS:不能对生产服务器使用测试清单

    问题说明:在使用office软件RMS加密时报:不能对生产服务器使用测试清单,或者使用 rmsbulk.exe进行RMS加密时,报不能连接到RMS服务器. 解决办法: 请到https://suppor ...

  6. Spring+SpringMVC+MyBatis+easyUI整合优化篇(三)代码测试

    日常啰嗦 看到标题你可能会问为什么这一篇会谈到代码测试,不是说代码优化么?前两篇主要是讲了程序的输出及Log4j的使用,Log能够帮助我们进行bug的定位,优化开发流程,而代码测试有什么用呢?其实测试 ...

  7. phpstorm-----实现实时编辑服务器代码

    phpstorm是一款功能强大.广大码农钟爱的编辑器,也是我最常用的编辑器.这里介绍一个偷懒的功能. 用sftp协议与远程服务器相连接,实现直接编辑服务器代码的功能.而效果就是ctrl+s不仅可以保存 ...

  8. IDEA远程调试服务器代码

    先在idea添加一个remote,host填服务器ip,port填监听服务器端口,默认5005 然后在服务器tomcat catalina.sh 添加(红色部分): JAVA_OPTS="$ ...

  9. git代码同步服务器代码需要注意的问题

    魔鬼藏在细节之中,git代码同步服务器代码需要注意的问题 1. 全文件夹覆盖  git pull 当前文件夹 2. 覆盖前做代码备份  mv origin origin_20190404_bak

随机推荐

  1. python装饰器(docorator)详解

    引言: 装饰器是python面向对象编程三大器之一,另外两个迭代器.生成器只是我现在还没有遇到必须使用的场景,等确实需要用到的时候,在补充资料:装饰器在某些场景真的是必要的,比如定义了一个类或者一个函 ...

  2. stdio.h头文件中申明的基本函数

    调用scanf函数时,需传入变量的地址作为参数,scanf函数会等待标准输入设备(键盘等)输入数据,并且将输入的数据赋值给地址对应的变量. #include<stdio.h> #inclu ...

  3. 《GPU高性能编程CUDA实战》第十一章 多GPU系统的CUDA C

    ▶ 本章介绍了多设备胸膛下的 CUDA 编程,以及一些特殊存储类型对计算速度的影响 ● 显存和零拷贝内存的拷贝与计算对比 #include <stdio.h> #include " ...

  4. 0_Simple__simpleMultiCopy

    利用 CUDA 的 Overlap 特性同时进行运算和数据拷贝来实现加速. ▶ 源代码.使用 4 个流一共执行 10 次 “数据上传 - 内核计算 - 数据下载” 过程,记录使用时间. #includ ...

  5. distinct group by

    select num from test_test group by num; 比 select distinct(num) from test_test;  效率高 select count(dis ...

  6. 使用VB.Net Express版本创建服务

    Services Part 1:>  Creating Services Visual Basic Express is a great, free tool from Microsoft.   ...

  7. fb bin_debug下的swf不见了

    fb清理了所选的项目,如果代码有错误,会自动删除bin_debug目录下的swf.这种情况,构建项目是无法自动生成swf的,只有将代码报错的地方修改正错了.选构建项目才会在bin_debug目录下生成 ...

  8. WDA-文档-基础篇/进阶篇/讨论篇

    本文介绍SAP官方Dynpro开发文档NET310,以及资深开发顾问编写的完整教程.   链接:http://pan.baidu.com/s/1eR9axpg 密码:kf5m NET310 ABAP ...

  9. LVS原理以及配置

    安装好ipvsadm后需要查看内核是否加载了ip_vs模块儿,如果没有需要手动执行ipvsadm进行加载: # ipvsadm # lsmod |grep ip_vs # rmmod ip_vs_rr ...

  10. python爬虫(5)--正则表达式

    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 1.了解正则表达式 正则表达式 ...