Struts2之Servlet API及单元测试初识

可以无视的声明:对于博文中出现的错别字,以及语义不对给大家造成的困扰向大家致歉,同时也希望朋友给予包容和谅解。鄙人现在真的忙的快要疯了,早晨一起床就是赶快发博文,然后就是维护自己网站。上午基本就这几样就没了,下午就是写软文,找友链。晚上就是给大家写博文了。有时碰到有课,都得一样一样往后推,但我不想推掉每日一篇的博文。所以博文出现的个别可以忽视的错误,大家就别计较了。当然我并不是说大家就不用联系我了,关于学习交流的问题,还是希望大家积极交流的。So 奋斗吧,骚年!!!

一、学习案例:通过在LoginAction中比较通过ServletActionContext获取的session和通过ActionContext获取的session,分析两个session的区别。

二、案例分析:通过使用ServletActionContext获取的session设置,在页面能够得到,说明这样是获取的货真价实的HttpSession(服务器对象),而通过ActionContext获取的session是个Map集合,通过之前设置的key我们也能获取其对应的值,说明他两个是维护的同一个对象,其实也就是前者底层的Map对象。而为什么通过ActionContext获取的是Map对象呢?其实这是struts2为了简化我们的单元测试。

a)服务器端代码的单元测试有两种模式

1、容器内测试(Jetty),本质必须有服务器。好像asp.net就是用的Jetty。

2、Mock测试(继承HttpServletRequest、HttpSession、HttpServletResponse等Servlet API)如:JMock,easyMock。

b)关于单元测试,不多讲,如果有朋友想了解的可以自己去问度娘。不过我要说的是,我们一般写程序有jUnit就够了。其实即使jUnit我也没怎么用过,只是在刚开始学习时用过,后来就不怎么用了,因为一般我们能熟练运用debug调试就OK了。

c)struts2为我们提供了一个Preparable接口。

其作用是让Action完成一些初始化工作,初始化工作是放在其实现方法prepare()中的,通过输出测试,我们可以发现prepare()是在execute()之前执行的,其作用和jUnit的init()功能一样,都是起到初始化准备工作。

三、经验之谈:

a)单元测试,我用的不多也不好随便讲,所以有兴趣的朋友,可以自行查阅。

b)在此,我想强调的是debug调试。写程序如果连debug都不会,都会让人笑掉大牙。至于,debug大家在网上扒下资料一看就懂,主要是多练多用。Debug一方面能够帮助我们快速解决问题,另一方面就是有助于我们理解代码执行逻辑。所以初学者遇到问题,先debug下,再解决不了,再去网上查资料,同时初学者千万不要养成什么都依赖度娘的习惯,就如之前的我一样,有问题就问度娘,直接形成了依赖,自己思考都懒得思考,这样最直接的后果就是你会成为一枚实实在在的码农,互联网的搬运工。所以大家遇到问题,先自行思考,实在不行再去问度娘。

四、参考项目:http://download.csdn.net/detail/u011638419/8188623

五、每日一乐:

陌陌有个女的问我在哪上班。我说在国企。

她又问一个月工资多少。我说一万。

然后就各种跟我套近乎。

当我告诉她我一个月工资一万一年就上俩月班的时候她在也没和我说过话。

最终解释权归爱尚合伙人所有,转载请注明出处。

时间: 2024-11-13 11:40:04

Struts2之Servlet API及单元测试初识的相关文章

Struts2 与Servlet API解耦,耦合的访问方式

一.与Servlet API解耦的访问方式 1.为了避免与Servlet API耦合在一起,方便Action类做单元测试,  Struts2对HttpServletRequest.HttpSession和ServletContext进行了封装,  构造了三个Map对象来替代这三种对象,在Action中,  直接使用HttpServletRequest.HttpSession.ServletContext对应的Map对象来保存和读取数据.  要获得这三个Map对象,可以使用com.opensymp

Struts2 -- 获取Servlet API

在struts2中获取Servlet API有三种方式: 1.通过ActionContext来获取       1.获取一个ActionContext对象.                ActionContext context=ActionContext.getContext();            2.获取servlet api                注意:通过ActionContext获取的不是真正的Servlet API,而是一个Map集合.                

Struts2访问Servlet API的几种方式

struts2提供了三种方式访问servlet API:大致分为两类 1. ActionContext: public static ActionContext getContext() :获得当前Action的ActionContext实例. public Object get(Object key) :此方法类似于调用HttpServletRequest的getAttribute(String name)方法. public void put(Object key, Object value

【Java EE 学习第35天】【strus2】【类型转换器】【struts2和Servlet API解耦】【国际化问题】

一.类型转换器 1.在动作类action中,声明和表单中name属性的值同名的属性,提供get和set方法,struts2就可以通过反射机制,从页面中获取对应的内容 1 package com.kdyzm.convert; 2 3 4 import com.opensymphony.xwork2.ActionSupport; 5 6 public class TypeConvertAction extends ActionSupport{ 7 private static final long

3.struts2访问Servlet API,并和mybaits实现全套增删改查

1.创建数据库脚本userinfo.sql 1 prompt PL/SQL Developer import file 2 prompt Created on 2016年5月19日 by pc 3 set feedback off 4 set define off 5 6 create table USERINFO 7 ( 8 id NUMBER not null, 9 uname VARCHAR2(20), 10 password VARCHAR2(20), 11 age NUMBER 12

Struts2中使用Servlet API步骤

Struts2中使用Servlet API步骤 Action类中声明request等对象 Map<String, Object> request; 获得ActionContext实例 ActionContext ac=ActionContext.getContext(); 获取request等对象   request=(Map<String, Object>)ac.get("request"); 在request等对象中保存数据  request.put(&qu

Struts2(八)访问Servlet API

一.Struts2中的Servlet API 1.1.struts2的Action实现了MVC中C层的作用 针对请求用户显示不同的信息 登录后段保存用户信息 ----session 保存当前在线人数等功能---application 1.2.传统的Servlet API类型 HttpServletRequest HttpSession ServletContext 1.3.Struts2中将传统的Servlet API类型被处理成Map类型 访问更方便 不依赖传统Servlet API 类型--

Struts2中获取servlet API的几种方式

struts2是一个全新的MVC框架,如今被广大的企业和开发者所使用,它的功能非常强大.这给我们在使用servlet 纯java代码写项目的时候带来了福音.但是一般来说,我们的项目不到一定规模并不需要框架的.通常功能模块和系统架构复杂的时候会少不了框架的,如果没有框架,我们写的项目和代码会复杂很多,而且扩展性也会大大降低,代码审查效率也会降低.如下代码供大家参考,主要是说明在使用struts2的时候如何获取servlet API,大家可以试着对比一下不用struts2的时候的所写的servelt

struts2的action访问servlet API的三种方法

学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object get(Object key);可以获取request属性 Map getSession():可以得到session属性 Map getAppliction():可以得到ServletContext实例 2.action类实现 ServletContextAware,ServletRequestAwa