Apache Struts

23种设计模式-----行为模式

↘锁芯ラ 提交于 2020-08-17 04:36:09
行为模式: 关注系统中对象之间的相互交互,研究运行时对象之间的相互通信和协作,明确对象职责 1.模板方法模式(template method) 定义了一个操作中的算法 骨架 ,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 即:处理步骤父类中定义好,具体实现延迟到子类中定义。 开发中:数据库访问的封装、Junit单元测试、servlet中doGet/doPost方法调用、Hibernate中模板程序等等 银行案例: 1 public abstract class BankTemplateMethod { 2 3 // 具体方法 4 public void takeNumber() { 5 System.out.println("取号排队" ); 6 } 7 8 // 办理具体业务 、钩子方法 9 public abstract void transact(); 10 public void evaluate() { 11 System.out.println("反馈评分" ); 12 } 13 14 // 模板方法 15 public final void process() { 16 this .takeNumber(); 17 18 this .transact(); 19 20 this .evaluate(); 21

23种设计模式-----行为模式

故事扮演 提交于 2020-08-16 23:56:43
行为模式: 关注系统中对象之间的相互交互,研究运行时对象之间的相互通信和协作,明确对象职责 1.模板方法模式(template method) 定义了一个操作中的算法 骨架 ,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 即:处理步骤父类中定义好,具体实现延迟到子类中定义。 开发中:数据库访问的封装、Junit单元测试、servlet中doGet/doPost方法调用、Hibernate中模板程序等等 银行案例: 1 public abstract class BankTemplateMethod { 2 3 // 具体方法 4 public void takeNumber() { 5 System.out.println("取号排队" ); 6 } 7 8 // 办理具体业务 、钩子方法 9 public abstract void transact(); 10 public void evaluate() { 11 System.out.println("反馈评分" ); 12 } 13 14 // 模板方法 15 public final void process() { 16 this .takeNumber(); 17 18 this .transact(); 19 20 this .evaluate(); 21

Emotet重出江湖:2020年十大恶意软件、漏洞榜单(7月)

自古美人都是妖i 提交于 2020-08-16 10:15:35
近日,根据Checkpoint发布的2020年7月全球威胁指数,在缺席五个月之后,Emotet已升至该指数的榜首位置,短时间内袭击了全球5%的企业和组织,主要活动是传播钓鱼邮件窃取银行账户并在目标网络内部传播。 由于具备类似硅谷顶级科技企业的一流“敏捷开发”能力,过去几年Emotet始终是最具“创造性”、“颠覆性”、“影响力”和破坏力的恶意软件,其产品迭代和技术创新的速度甚至很多网络安全公司都自叹弗如。 具体来说,Emotet就像一个“搬运工”,侵入宿主系统后,具备下载其他恶意软件的能力,由于其模块化的性质,这只是其能力之一。借助传播组件,Emotet能够将自身传送到同一网络上的其他计算机,该组件可以通过挂载共享或利用漏洞利用来传播恶意软件。换而言之,Emotet就像一个大的恶意软件“电商平台”,是很多其他恶意软件的重要“投放渠道”。 自2020年2月以来,Emotet的活动(主要是发送大量的垃圾和钓鱼邮件)开始放缓,并最终停止,直到7月重新开始活跃。值得注意的是,2019年Emotet僵尸网络也选择在夏季“蛰伏”,在9月恢复活动。 今年7月,Emotet通过垃圾和钓鱼邮件活动,用TrickBot和Qbot感染了大量受害者,这些***活动的主要目的是窃取银行凭证并在企业网络内部传播。这些钓鱼邮件活动中有些包含名称为“form.doc”或“invoice.doc”之类的恶意doc文件

SpringCloud中实现文件上传下载的三种解决方案(推荐)

非 Y 不嫁゛ 提交于 2020-08-16 03:59:36
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = null; String fileAddre = "/numUp"; try { InputStream stream = file.getInputStream();// 把文件读入 String filePath = request.getRealPath(fileAddre);//取系统当前路径 File file1 = new File(filePath);//添加了自动创建目录的功能 ((File)file1).mkdir(); newfileName = System.currentTimeMillis() + file.getFileName().substring( file.getFileName().lastIndexOf('.')); ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream bos = new FileOutputStream(filePath + "/" + newfileName); newpathname = filePath + "/" +

珍藏多年的学习资料300G+,赶紧免费领取,从此离大神更进一步(文末有彩蛋)

旧街凉风 提交于 2020-08-15 19:05:57
将时间线拉到2014 2014年的寒冬,每天早晨六点钟,都会一个弱小的身影,从学校寝室出发,走在去实习公司的路上。经过食堂边的包子铺,他会顺手买两个包子,一杯豆浆,老板也会像往常一样热情的吆喝着回一句,"好勒同学,热乎乎的包子和豆浆,来,拿着,小心烫啊"。每次听到这里都会给那个寒冬里的他带来一丝暖意;他也会跟往常一样,匆匆的将手中的豆浆喝完,然后大步走向学校旁的公交车站台等候去往公司的车辆。因为坐车的时间早,所以经常整个公交车像是他的“专车”,偶尔也会因为天气冷,赖床等原因碰到上班早高峰,然后就开启着急赶车,下车狂跑,还没到公司就打开手机打卡(甚至抱怨定位为啥还打不上卡),然后迟到,扣工资...一系列现在想起来觉得好笑又傻的行为,但就是这样开启了他的实习之路,从此也走向了“万劫不复”的深渊---攻城狮; 其实对于一个实习生来说,最惨的还不是这些,应该是内心的煎熬吧,为什么会有煎熬? Q:“这个需求怎么做,这么简单的问题如果问别人,会被嘲笑吧?” Q:“这句代码怎么理解,还有这一句,这句和这句,wc,好像都不懂,怎么办?” Q:“这个SQL语句怎么会有问题,怎么就是不行呢?” Q:“这个框架怎么这么复杂,看了一个星期也没懂,有必要搞这么多层吗,一层不行吗?” Q: “在我电脑上明明是好的啊,怎么在你这不行?” Q:“额,为什么到点了大家都不下班?” Q:“公司说晚上八点有免费晚餐

spring框架工作的原理的初解

不想你离开。 提交于 2020-08-15 16:33:56
一:spring基本概念 1)struts2是web框架,hibernate是orm框架 2)spring是容器框架,创建bean,维护bean之间的关系 3)spring可以管理web层,持久层,业务层,dao层,spring可以配置各个层的组件,并且维护各个层的关系 二:spring核心原理 1.IOC控制反转 概念:控制权由对象本身转向容器,由容器根据配置文件创建对象实例并实现各个对象的依赖关系。 核心:bean工厂 IoC(Inverse of Control)的字面意思是控制反转,它包括两个内容: 其一是控制 其二是反转 那到底是什么东西的“控制”被“反转”了呢? 对于软件来说,即是某一接口具体实现类的选择控制权从调用类中移除,转交给第三方决定。 但是,因为IoC确实不够开门见山,因此业界曾进行了广泛的讨论,最终软件界的泰斗级人物Martin Fowler提出了DI(依赖注入:Dependency Injection)的概念用以代替IoC。 即让调用类对某一接口实现类的依赖关系由第三方(容器或协作类)注入,以移除调用类对某一接口实现类的依赖。“依赖注入”这个名词显然比“控制反转”直接明了、易于理解。 2.AOP面向切面编程 a.静态代理 根据每个具体类分别编写代理类 根据一个接口编写一个代理类 b.动态代理 针对一个方面编写一个InvocationHandler

新手小白该怎么学习Java,附学习路线和学习资料

寵の児 提交于 2020-08-14 13:13:33
在知乎上经常碰到这种问题:“我刚毕业,怎么入门java?”;“我是初中生、高中生可不可以自学java?”作为一个已经工作八年多的老鸟,我想说: 如果你是一个遇到困难就望而却步的人,大可不必浪费时间接着把这篇文章看下去,真的不用因为java就业前景好,上升空间大,工资高就去学他。如果你热爱技术,耐得住寂寞,肯钻研,那么请接着往下看,这个行业也许适合你! 首先,学习java难吗?要说难,其实也不难,随便在网上找些入门的视频,从头开始看,大部分人都可以看得懂。基本的数据类型、判断语句、循环语句、面向对象以及Html入门,大家都可以看得懂。但是你如果想走的更远,请做好准备 不断学习,不断汲取知识;前期放弃王者、LOL不要吃鸡,多花点时间将学过的代码多敲几次,熟能生巧。 这里再说下,初中生、高中生可不可以学习java,答案当然是可以的,但是!注意了,初中生、高中生学习这行第一个是需要付出的更多;再者成功率更低。一方面是心智方面还没达到一定层次,再者社会对你的学历认可程度低,所以各位初中、高中童鞋还是努力学习,先考上大学再说吧! 确实,也不是说这行什么门槛都没有。至少英语单词得多认识几个不是~ 那么初学者该如何学习Java呢,前面有说到,在网上找一个java基础视频,大家都可以看懂。但是难就难在坚持和连贯。所谓坚持,就是你可能得花上2到3个月的时间去系统的学习Java基础、前端基础、主流框架

学完25岁美团T3架构师推荐633页JavaEE核心框架实战直接入职美团

☆樱花仙子☆ 提交于 2020-08-14 12:02:32
前言 从近几年用人单位对人才招聘的要求来看,越来越趋向于“实战性”,也就是要求新入职的员工能立即融入团队,迅速上手项目开发,快速创造经济利益。 要想学好Java语言或Java EE框架,掌握其中丰富的编码技巧、设计模式、代码优化方法,将它们熟练地综合应用在项目开发中,并没有捷径可走。 而本文则希望可以成为读者学习掌握JavaEE的***。 本文不仅涵盖学习主流Java框架所须掌握的核心技术,还涵盖使用它们进行项目实战的必备知识,其主旨就是让读者尽快上手,掌握开源Java EE框架的核心内容,汲取Java EE的思想,正确进行项目开发。 现在,主流的Java EE框架还是MyBatis、Hibernate. Struts 2、Spring MVC、Spring。 尽管有些Java开源框架的确能极大提升开发效率,但由于用户数不多,并没有普及开来; 而软件公司在招聘时的技术要求则是“大众化”的,这就要求应聘人员具备主流JavaEE框架的使用经验。本文通过近200个开发案例对上述主流的JavaEE框架开发技术进行了详细讲解,可以让读者充分认识、学习、掌握这些核心技术,为他们的求职就业和项目开发提供帮助。 目录 主要内容 本文涵盖了MyBatis 3、Struts 2、Ajax+ JSON、Spring 4 MVC、Hibernate 4、Spring 4、WebLogic

MVC架构的职责划分原则,对我很有启发,分享一下

北城以北 提交于 2020-08-14 11:49:47
博主 负责一个项目,用了 Yii Framework 的 MVC 框架,刚开始自以为结构很稳健。 但是随着对业务逻辑理解的深入,才开始意识到问题的严重。 我错误地理解了 MVC 中的 Controller ,想当然地根据以往的经验,把所有的业务逻辑都放在 Controller 的 action 中去实现。 于是,每一个 Controller 的 代码都上千行,越来越臃肿 。 最后,我下定决心重构代码,起源是一个对外开放 API 接口的需求。 按照现在的架构,代码基本无法复用,我需要把很多功能再重复写一遍,这实在是无法接受。 面向对象编程不仅仅是课本上的名词啊! 真正开始实践才发现,要有面向对象意识,有全局观,是多么难得的一件事情。 1 、到底什么是 MVC 模型-视图-控制器(MVC)是一种 设计框架(设计模式) 。 MVC 的 目标 是 将业务逻辑从用户界面的考虑中分离 。 这样,开发者就可以更容易地改变每一部分而不会影响其他。 在 MVC 中, Model 代表 数据和业务规则 ; View 包含了 用户界面元素,例如文本,表单 等; Controller 则管理模型和视图中的 通信 。 MVC 在各种编程语言中均有实现,例如 J2EE 应用开发中, View 可能由 jsp 实现;Controller 是一个 servlet,现在一般用 Struts 实现;Model

你离涨薪就差这本书——元老级架构师带你深入理解Java虚拟机

丶灬走出姿态 提交于 2020-08-14 08:55:11
前言 Java是目前用户最多、使用范围最广的软件开发技术,Java 的技术体系主要由支撑Java程序运行的虚拟机、为各开发领域提供接口支持的Java API、Java 编程语言及许许多多的第三方Java框架(如Spring和Struts等)构成。在国内,有关Java API、Java 语言及第三方框架的技术资料和书籍非常丰富,相比之下,有关Java虚拟机的资料却显得异常贫乏。 本书读者对象 (1)使用Java技术体系的中、高级开发人员。 Java虚拟机作为中、高级开发人员必须修炼的知识,有着较高的学习门槛,本书可作为学习虚拟机的优秀教材。 (2)系统调优师 本书中的大量案例、代码和调优实战将会对系统调优师的日常工作有直接的帮助。 (3)系统架构师 保障系统高效、稳定和可伸缩是系统架构师的主要职责之一,而这与虚拟机的运作密不可分,本书可以作为他们设计应用系统底层框架的参考资料。 本书一共分为五个部分:走近Java、自动内存管理机制、虚拟机执行子系统、程序编译与代码优化、高效并发。各个部分基本上是相互独立的,没有必然的前后依赖关系,读者可以从任何一个感兴趣的专题开始阅读,但是每个部分中的各个章节间有先后顺序。 目录 本书分为5个部分和目录,第一部分主要真是Java的发展历史以及技术体系,第二步分主要讲内存与垃圾收集问题,以及条有案例以及实战,第三部分介绍虚拟机执行子系统