通过前面几篇博客,不知道大家有没有发现这个问题,虽然现在可以灵活控制跳转了,但是Action的数量还是比较多,如何既能保证跳转灵活,还能减少Action的数量?这就是我们这篇博客所说的DispatchAction,如其名,可以理解为“分发式Action”,使用它可以避免为每个Action创建一个类. 我们先来看一下实例. UserAction DispatchAction继承的是Action,它的特点就是把以前的多个Action合并为一个,当多个Action关联较大时,可以像这样放在一起,减少A…
先来看一下Struts1学习总结的思维导图,画的主要是Struts1中的重点和博客分布,如下所示: 系列博客的侧重点是: Struts1是什么? 为什么要使用它? 如何使用Struts1? Struts1源码分析 ? 以下是Struts1下博客链接: <层层递进Struts1(一)之由Servlet引入Struts> <层层递进Struts1(二)之Struts1简介及登录实例> <层层递进Struts1(三)之Struts组成> <层层递进Struts1(四)之…
这篇博客我们来说一下Struts的主要组成我们,通过前几篇博客,我们知道这个框架最重要的几个步骤:获取路径.封装表单.获取转向列表.转向逻辑处理.转向,与此对应的是:ActionServlet.ActionForm.ActionMapping.Action.ActionForward. ActionServlet 这个在上篇博客已经说明,可以访问< 预加载ActionServlet>. ActionForm ActionForm的主要作用是对表单数据进行封装,这个.NET开发中的实体类有些类似…
Struts提供的类型转换有限,如果我们强行使用没有的类型转换,则会出现错误,以Date类型为例: org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet action threw exception java.lang.IllegalArgumentException: Cannot invoke com.tgb.struts1.TypeCovertActionForm.set…
这篇博客我们深入Struts框架执行部分源码,从ActionServlet的process函数开始,看一下其内在的执行过程. 流程图 以下流程图展示的是ActionServlet和RequestProcessor两个类用到的函数,如RequestProcessor调用的其它类的函数不再说明. 函数说明 我们选择几个重要的函数说明,其它函数则简单说明一下即可. ActionServlet process /** * <p>Perform the standard request processi…
今天来看一下Struts1的相关知识,其实Struts现在是出名的,每个Web开发者都会知道的,也是现在比较流行的框架,下面就来看一下我们为什么要用Struts框架呢? 摘要 1.建立在mvc这种好的模式上的,Struts在m,v,c上都有涉及,但主要的是提供一个好的控制器和一套定制的标签库上也就是说它在这里体现在c和v上,有mvc的一系列的优点,如:结构层次分明,高重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限的控制,校验,国际化,日志等等2.开源项目,得到了包括…
文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k 浏览 本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作. 前言 我们在上面的两节中了解到,客户端上传文件时,需要从业务服务器申请一个上传凭证(Upload Token),而这个上传凭证是业务服务器根据上传策略(PutPolicy)来生成的,而这个生成过程中…
<Iptables详解七层过滤> 一.防火墙简介 防火墙其实就是一个加固主机或网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险区域的访问.当然需要注意的是世界上没有绝对的安全,防火墙也只是启到一定的安全防护.大多数的安全风险还是在内网当中! 二.防火墙的分类 (1).从特点上分类 第一种,软件防火墙,软件防火墙需要运行在特定的计算机上,而且需要计算机的操作系统的支持. 第二种,硬件防火墙,硬件防火墙其实就是一个普通pc机的架构,然后上面跑有专门的操作…
.Net使用Redis详解之ServiceStack.Redis(七)   序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现,其中会对list的阻塞功能和事务的运用做二个案例,进行记录学习. Redis官方推荐的.NET驱动类库为Service.Stack.Redis.然而网上对这个类库的中文文档不是很全面与合理,这篇文章主要就对这个类库做注释展现.不足遗漏之处还望见谅,海涵. .Net使用Redis是非常方便与快捷与简…
此为git命令详解的第七篇 这章我们可以来逐渐揭开 git push.fetch 和 pull 的神秘面纱了.我们会逐个介绍这几个命令,它们在理念上是非常相似的.   git push的参数 git fetch 的参数 git pull 参数 git push: 首先来看 git push.在远程跟踪课程中,你已经学到了 Git 是通过当前检出分支的属性来确定远程仓库以及要 push 的目的地的.这是未指定参数时的行为,我们可以为 push 指定参数,语法是: git push <remote>…
ISO七层模型详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我刚刚接触运维这个行业的时候,去面试时总是会做一些面试题,笔试题就是看一个运维工程师的专业技能的掌握情况,这个很正常,给以一定的时间,你能回答出出题人满意的答案,就会给你进行加分,在做面试的时候我曾遇到过问FTP属于ISO的哪一层?其实这个是最简单的,这种面试题看到问题就应该随口说出答案的,如果你不能说出答案的话那么久跟着我以前来了解一下ISO七层模型的知识点吧. 由于最近刚刚工作需要,不得不捡起一些网络的知…
MySql详解(七) MySql视图 一.含义 mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成. 好处: 1.简化sql语句 2.提高了sql的重用性 3.保护基表的数据,提高了安全性 二.创建 create view 视图名 as 查询语句; 三.修改 方式一: create or replace view 视图名 as 查询语句; 方式二: alter view 视图名 as 查询语句 四.删除 drop view 视图1,视图2,...; 五.查看…
TCP/IP协议 包含了一系列构成互联网基础的网络协议,是Internet的核心协议.基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层.网络层.传输层和应用层.下图表示TCP/IP模型与OSI模型各层的对照关系. TCP/IP协议族按照层次由上到下,层层包装.最上面的是应用层,这里面有http,ftp,等等我们熟悉的协议.而第二层则是传输层,著名的TCP和UDP协议就在这个层次.第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标.第四层是数据链路…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第七章:等待线程死亡join()方法详解 下一章 "全栈2019"Java多线程第八章:放弃执行权yield()方法详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七十七章:抽象内部类与抽象静态内部类详解 下一章 "全栈2019"Java第七十八章:内部类可以继承其他类吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Ja…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七十三章:外部类里多个静态非静态内部类详解 下一章 "全栈2019"Java第七十四章:内部类与静态内部类相互嵌套 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七十一章:外部类访问静态内部类成员详解 下一章 "全栈2019"Java第七十二章:静态内部类访问外部类成员 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Jav…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七十章:静态内部类详解 下一章 "全栈2019"Java第七十一章:外部类访问静态内部类成员详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&…
转自: http://www.uml.org.cn/mobiledev/201110092.asp Android 软件开发之如何使用Eclipse Debug调试程序详解(七)   发布于2011-10-09   1.在程序中添加一个断点 如果所示:在Eclipse中添加了一个程序断点 在Eclipse中一共有三种添加断点的方法 第一种: 在红框区域右键出现菜单后点击第一项 Toggle Breakpoint 将会在你右键代码的哪一行添加一个程序断点 (同样的操作方可取消程序断点) 第二种:…
原文:UWP入门(七)--SplitView详解与页面跳转 官方文档,逼着自己用英文看,UWP开发离不开官方文档 1. SplitView 拆分视图控件 拆分视图控件具有一个可展开/可折叠的窗格和一个内容区域 <SplitView> <SplitView.Content> singleObject </SplitView.Content> <SplitView.Pane> singleObject </SplitView.Pane> </S…
Redis详解(七)--集群 ​Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用 ( HA ),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Sharding),不过同样可以实现HA,是官方当前推荐的方案. 在Redis Sentinel模式中,每个节点需要保存全量数据,冗余比较多,而在Redis Cluster模式中,每个分片只需要保存一部分的数据,对于内存数据库来说,还是要尽量的减少冗余.在数据量太大的情况下,…
前言 前情提要:Git应用详解第六讲:Git协作与Git pull常见问题 这一节来介绍本地仓库与远程仓库的分支映射关系:git refspec.彻底弄清楚本地仓库到底是如何与远程仓库进行联系的. 一.Git refspec refspec是Reference Specification的缩写,字面意思就是具体的引用.它其实是一种格式,git通过这种格式来表示本地分支与远程分支的映射关系: 在本地仓库创建master分支外的其他两个分支develop和test: 在develop分支上执行git…
PE文件格式详解(七)   Ox00 前言 前面好几篇在讲输入表,今天要讲的是输出表和地址的是地址重定位.有了前面的基础,其实对于怎么找输出表地址重定位的表已经非常熟悉了.   0x01 输出表结构 当创建一个DLL文件时,实际上创建了一组能让EXE或者其他DLL调用的一组函数,PE装载器根据DLL文件中输出信息修正正在执行文件的IAT.当一个DLL函数能被EXE或者DLL文件使用时,它被称为输出了.其中输出信息被保存在输出表中,DLL文件通过输出表向系统提供输出函数名,序号和入口信息. 对于E…
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 Solon详解(五)- Solon扩展机制之Solon Plugin Solon详解(六)- Solon的校验扩展框架使用与扩展 Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330 注解对比 Solon 1.0.27 Spring JSR 330 @XInject *…
Shell学习(七)--sort.uniq.cut.wc命令详解 转自:[1]linux sort,uniq,cut,wc命令详解 https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858385.html 一.sort命令 转自: [1]Linux sort命令 https://www.runoob.com/linux/linux-comm-sort.html [2]sort命令详解 https://www.cnblogs.com/mac…
1.简介 前面宏哥介绍了几种关于时间等待的方法,也提到了,在实际自动化测试脚本开发过程,百分之90的报错是和元素因为时间不同步而发生报错.本文介绍如何新建一个自定义的类库来解决这个元素同步问题.这样,我们在写脚本的时候,就直接调用该类方法就可以. 2.项目实战 2.1代码设计 1.在新包library下新建我们的自定义类方法.如下图所示: 2.2参考代码 package library; import org.openqa.selenium.By; import org.openqa.selen…
1.简介 上一篇中介绍了DataProvider如何传递参数,以及和一些其他方法结合传递参数,今天宏哥接着把剩下的一些常用的也做一下简单的介绍和分享. 2.项目实战1 @DataProvider + 方法:此示例显示如何根据测试方法名称传递不同的参数. 2.1代码设计 2.2参考代码 package library; import java.lang.reflect.Method; import org.testng.Assert; import org.testng.annotations.D…
1.简介 今天这一篇宏哥主要是结合实际工作中将遇到的测试场景和前边两篇学习的知识结合起来给大家讲解和分享一下,希望以后大家在以后遇到其他的测试场景也可以将自己的所学的知识应用到测试场景中. 2.测试场景 测试多个用户的账户登录.假如宏哥有50个用户,需要测试登录.你会怎么测试呢.第一个肯定是写50个测试脚本去验证登录.第二个就是采用DDT,把用户名和密码写到一个表格里,然后依次从表格读取去运行这个登录用例.很显然第一个不可取,如果有1000个,10000个...那你不得累死,很有可能最后落个费力…
1.简介 今天主要是讲解和分享:TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用dependsOnMethods,testNG会自动根据@Test方法名称的首字母排序来执行测试方法.但是有时,我们可能需要以特定顺序调用测试用例中的方法,或者可能希望在方法之间共享一些数据和状态. TestNG支持这种依赖关系,因为它支持在测试方法之间显式依赖的声明. 2.TestNG允许指定依赖关系 ①在@Test注释中使用属性dependsOnMethods ②在@…
1.简介 上一篇讲解了依赖测试的各种方法,今天继续讲解依赖测试的方法,这一篇主要是讲解和分享通过xml文件配置组名依赖方法( 主要是测试组的用法).废话不说,直接上干货. 2.实例 测试组:一个组可包含多个测试方法,可进行组嵌套. 2.1代码设计 1.test1属于功能测试,test2属于接口测试,test3属于接口和功能测试 ,test4是不属于任何组,如下图所示: 2.参考代码 package library; import org.testng.annotations.Test; /**…