struts基础知识

1.框架

(1).是一系列jar包,其本质是对JDK功能的拓展。

(2).框架是一组程序的集合,包含了一系列的最佳实践,作用是解决某一个领域的问题。

2.框架的作用:

      框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用

3.框架和设计模式的区别

有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式。实际上它们完全是不同的概念。

(1).  框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

 (2). 框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

(3).框架模式有哪些?

MVC、MTV、MVP、CBD、ORM等等;

(4).框架有哪些?

C++语言的QT、MFC、gtk,Java语言的SSH 、SSI,php语言的 smarty(MVC模式),python语言的django(MTV模式)等等

(5).设计模式有哪些?

工厂模式、适配器模式、策略模式等等

简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

4.最佳实践五要素:

(1)可读性

(2)可维护性

(3)可拓展性

(4)简单是美(Simple is Beauty):

消除重复、化繁为简

简单必须可读、简单必须可拓展

(5)减少依赖、消除耦合

5.Web开发中的最佳实践——分层开发模式

JavaEE开发中,整个程序根据功能职责进行纵向划分(技术层面的"分而治之")。不能的层次承担了不同的功能职责:

表现层(Predentation Layer):负责处理与界面交互的相关功能  -->
(Struts2)

业务层(Business Layer):    负责复杂的业务逻辑计算和判断  -->
(Spring)

持久层(Persistent Layer):  负责将业务逻辑数据持久化存储  -->
(Hibernate)

6.MVC模式

MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式

MVC架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率。

数据模型(Model):负责封装应用的状态,并实现应用的功能。通常又分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息、用户信息等;而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等。

视图展现(View):界面,用来将模型的内容展现给用户,用户可以通过视图来请求模型进行更新。视图从模型获得要展示的数据,然后用自己的方式展现给用户,相当于提供界面来与用户进行人机交互;用户在界面上操作或者填写完成后,会点击提交按钮或是以其它触发事件的方式,来向控制器发出请求。

控制器(Controller):用来控制应用程序的流程和处理视图所发出的请求。当控制器接收到用户的请求后,会将用户的数据和模型的更新相映射,也就是调用模型来实现用户请求的功能;然后控制器会选择用于响应的视图,把模型更新后的数据展示给用户。

模式图:

7.struts

由传统Struts1和WebWork两个经典框架发展而来

Struts2框架=Struts2+XWork

8.Strust2 核心功能

(1).允许POJO(Plain Old Java Objects)对象 作为Action

(2).Action的execute 方法不再与Servlet API耦合,更易测试

(3).支持更多视图技术(JSP、FreeMarker、Velocity)

(4)基于Spring AOP思想的拦截器机制,更易扩展

(5)更强大、更易用输入校验功能

(6)整合Ajax支持

9.struts处理流程图

10.Struts运行必要jar包

struts2-core-2.3.1.1.jar:Struts 2框架的核心类库

xwork-core-2.3.1.1.jar:Command模式框架,WebWork和Struts2都基于xwork

ognl-3.0.3.jar:对象图导航语言(Object Graph Navigation Language),

struts2框架通过其读写对象的属性

freemarker-2.3.18.jar:Struts 2的UI标签的模板使用FreeMarker编写

commons-logging-1.1.x.jar:ASF出品的日志包,Struts 2框架使用这个日志

包来支持Log4J和JDK 1.4+的日志记录。

commons-fileupload-1.2.2.jar: 文件上传组件,2.1.6版本后需要加入此文件

commons-io-2.0.1.jar:传文件依赖的jar包

commons-lang-2.5.jar:对java.lang包的增强

10.前端控制器(front controller):J2EE中的设计模式:

主要提供一种可以集中式管理请求的控制器,一个前端控制器可以接受所有的客户请求,将每个请求递交给相应的请求处理对象(Action/Controler),并适当地响应用户。

前端控制器完成大部分通用功能,把把具体的操作交给各个Action去完成。

ThreadLocal又称为“线程局部变量”,它为每一个使用该变量的线程都提供一个变量值的副本,

使每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。

struts基础知识

时间: 2024-10-27 09:12:42

struts基础知识的相关文章

struts(基础知识2)

1. struts2提供了35拦截器,18个为默认. 2. 方法过滤拦截器,拦截方法. 3. PreResultListener类监听器,它的beforeResult方法在拦截器的invoke执行后执行. 4. strust2中配置文件加载顺序,如下图: 5. @Action中可以配置很多东西,如下图: 6. Struts可以使用struts2-convention-plugin-2.2.1.1.jar插件实现基于注解的配置. 7. struts中可以新建一个struts.properties文

struts(基础知识)

1. Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:        一.Python常用扩展包        二.Numpy科学计算包        三.Pandas数据分析包        四.Matplotlib绘图包 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.K

微信公众平台开发基础知识38问

最近接触微信公众号后台的开发,看了一些资料基本可以满足简单的需求开发.笔者将这些问题及解答整理出来,以帮助更多初学者少走弯路. 1.订阅号与服务号的主要区别是什么? 订阅号每天能群发一条消息,没有自定义菜单及高级接口权限(目前 个人.企业订阅号关联腾讯微博认证之后才有自定义菜单):服务号有自定义菜单微信认证之后有高级接口权限,但每月只能群发一条消息. 2.到底该申请订阅号还是服务号? 申请哪种类型的公众账号,主要取决于账号的用途.服务号主要面向企业和组织,旨在为用户提供服务:订阅号主要面向媒体和

springMVC1 springmvc的基础知识

springmvc第一天 springmvc的基础知识 springmvc课程安排: 第一天: 基础知识 springmvc框架(重点) mvc在b/s系统中应用方式 springmvc框架原理(DispatcherServlet前端控制器(类似于struts的过滤器).处理器映射器.处理器适配器.视图解析器) springmvc入门程序 需求:商品列表查询 常用的处理器映射器,处理器适配器 注解的处理器映射器,处理器适配器用于注解开发(重点) 3 注解开发基础 常用的注解使用 参数绑定 自定义

WCF入门教程:WCF基础知识问与答(转)

学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太少,直到现在,我也认为自己不过是初窥WCF的门径而已. 学以致用”,如果仅仅是希望能够在项目中合理地应用WCF,那么对于程序员而言,可以有两种选择,一种是“知其然而不知其所以然”,只要掌握了WCF的基础知识,那么对于一般的应用就足够了.要做到这一点就很容易了,微软秉承了一贯的方式,将WCF这门技术优雅地呈现给

JAVA程序员需要学习哪些基础知识?

极客营认为想要成为一个合格的java程序员,必须需要牢固的基础,这样在未来接触新的知识的时候,才能快速吸收,极客营认为基础不牢固的程序员,随时都会被新的知识和技术所淘汰,下盘不稳风一吹就倒,那么作为一个合格的java程序员应该具备哪些知识呢?今天极客营就来和大家分享java高手之路上的必备基础知识: 一.面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;什么是抽象类,什么是接口.了解了概念

Java的入门基础知识

https://course.tianmaying.com/java-basic%2Bjava-environment#0 作者:David链接:https://www.zhihu.com/question/25255189/answer/86898400来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 这个教程将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界.万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的

20181126-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 学习内容  基于