Struts

Struts通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产

品。
 
Struts1的核心构成
 
在 Struts1 中,由一个名为 ActionServlet 的 Servlet 充当 控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的 struts-

config.xml 的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。
 
在 MVC 的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分

别具体对应 Struts 1里的 ActionForm 与 Action 两个需要继承实现超类。在这里,Struts 1可以与各种标准的数据访问技术结合在一起,包

括Enterprise Java Beans(EJB), JDBC 与 JNDI。
 
在 Struts 1的视图(View) 端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层

组件技术(产品)进行整合,比如 Velocity Templates,XSLT 等。
 
通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。
 
struts2
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与

Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够

与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品
 
strut2的体系结构
 
解析:
当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括  流程(ActionContextCleanUp)过滤器,然后经过

Other filters(SiteMesh ,etc),
接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求那个Action,ActionMapper返回一个收集Action详细信息

的ActionMaping对象。
接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息

(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N) 一旦执行结

果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)
来呈现页面,之后拦截器(Interceptor N)会在被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的

那些过滤器和(核心控制器)(FilterDispatcher)。
 
为什么使用Struts?
首先,Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据

J2EE的特点,做了相应的变化与扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化
 
另外, struts具有页面导航功能,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护

有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

Hibernate

什么是Hibernate?
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编

程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用

中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任
 
Hibernate基本执行流程
 
为什么使用Hibernate?
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2、Hibernate是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解

放出来,使开发更对象化了。
3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。

Spring

什么是Spring?
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
 
Spring的特性
Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码
 
为什么使用Spring?
Spring的以上特性使得开发人员使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发

。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

Java SSH 资料总结相关推荐

  1. 计算机实战项目[含论文+源码等]基于java+ssh+mysql实现的共享自行车租赁|出租管理系统

    <基于java+ssh+mysql实现的共享自行车租赁管理系统>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 使用技术: 前端使用技术:JSP,HTML5,CSS ...

  2. 计算机毕业设计之 [含论文+源码等]基于java+ssh+mysql实现的共享自行车租赁|出租管理系统

    <基于java+ssh+mysql实现的共享自行车租赁管理系统>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 使用技术: 前端使用技术:JSP,HTML5,CSS ...

  3. 计算机毕业设计之 [含论文+源码等]基于java+ssh+mysql实现的美食网站

    <基于java+ssh+mysql实现的美食网站>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 使用技术: 前端使用技术:JSP,HTML5,CSS3.JavaS ...

  4. 【java毕业设计】基于java+SSH+jsp的物资租赁系统设计与实现(毕业论文+程序源码)——物资租赁系统

    基于java+SSH+jsp的物资租赁系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+SSH+jsp的物资租赁系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...

  5. JAVA学习资料整理

    今天偶然间发现之前一个群里发过的一篇关于JAVA学习资料的东西.本着服务大众的精神,搬来了博客园: <JAVA编程思想>第四版(英文原版) 下载地址:http://115.com/file ...

  6. java ssh 和mvc_[转]JAVA三大框架SSH和MVC

    Java-SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是 ...

  7. java ssh客户端_简单的Java SSH客户端

    java ssh客户端 可以使用jcabi-ssh在Java中通过几行代码通过SSH执行shell命令: String hello = new Shell.Plain(new SSH("ss ...

  8. java ssh 和mvc_JAVA三大框架SSH和MVC

    Java-SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是 ...

  9. 国外著名java技术资料网站

    国外著名java技术资料网站 国外著名java技术资料网站 http://www.onjava.com O'Reilly的Java网站. 每周都有新文章 http://java.sun.com 官方的 ...

最新文章

  1. 第四章 .net core做一个简单的登录
  2. Pro LINQ 之三:LINQ to DataSet
  3. mysql as_mysql AS子句
  4. JEECG Framework 3.3.1 beta版本发布第一天战报(文档下载量破1300、...
  5. 自动工作负载信息库 AWR
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的医院信息管理系统
  7. html文档中strokestyle,HTML5画布的StrokeStyle?(html5 canvas strokeStyle?)
  8. 饿了么合并百度外卖,ThinkSNS:产品上线要趁早
  9. mysql 系统工程师_数据库系统工程师难考吗?
  10. TeXmacs 中文输入问题
  11. 龙芯OS看cpu频率
  12. 解决ffmpeg合并视频后播放条拖不动,画面出错的问题
  13. 超文本标签语言html的主要特点,福建教师招考整理:超文本标记语言(HTML)
  14. OpenCV-细化算法(thinning algorithm)算法详解——提取二值图的骨架
  15. proe5.0插件在windows7 64系统预览模型
  16. 警察规范执法案例_警察改革沉浸式技术可以改变执法方式
  17. 【opencv四】利用opencv读取显示视频
  18. 达梦数据库除法保留小数
  19. 【安全狐】NmapMasscan扫描工具使用详讲
  20. w ndows7启动项怎么关,(让Wndows7让系统“飞”起来二级精华.doc

热门文章

  1. Spring基于注解的AOP配置
  2. 字节输入流 InputStream
  3. Windows 技术篇-桌面图标全部消失问题解决方法,windows资源管理器重启实例演示
  4. vbs控制电脑说话,vbs获取时间,vbs小程序
  5. Java用户账号和密码登录
  6. [BJDCTF2020]EzPHP 1
  7. [YTU]_2716 统计不及格人数
  8. 1.2 matlab数值数据的输出格式
  9. c++在txt中每行写入数据和每行输出
  10. 【解决方案】requests.exceptions.SSLError: HTTPSConnectionPool