SSH就是 struts+spring+hibernate 的一个集成框架,是java中一种流行的JAVA WEB 应用程序开源框架。由于我最熟悉的还是ASP.NET的的MVC和Python的Django框架,今天有必要学习下java 的流行框架SSH,事实上作为WEB应用的总体框架,我发现当中有非常多类似的地方,比方这里的Struts就是Django中的Views层+模板层的一个前台数据填充模块,而spring
就是连接Struts和Hibernate 的中间业务逻辑层,可是这在Django中已经被划分到views中去了,最后的Hibernate 就是典型的数据库映射层嘛,这一点和Django的models 层有相似之处,就是没有Django的简化,以下是看了篇博客然后总结的:
Struts
这是的java 基于Sun J2EE 平台的MVC框架,主要是採用 Servlet 和 JSP 技术来实现的。
Spring
解决很多J2EE开发中常见的问题的框架,Spring提供了管理业务对象的一致性方法而且鼓舞面向接口编程而不是对类编程,Spring架构的基础是基于JavaBean属性的Inersion of Control容器,String提供了唯一的数据訪问抽象,包含简单和有效的JDBC框架,String 结合Hibernate和其它的O/R mapping 解决方式等。
官方地址:spring: http://www.springsource.org
Hibernate
他是一个开源的对象关系映射框架,它对JDBC进行了很轻量级的对象封装,使得Java 程序猿能够随心所欲的使用对象编程思维来操控数据库,Hibernate能够在应用EJB的J2EE架构中代替CMP,完毕数据持久化的重任。
在SSH的组合模式中,三者各自的作用
Struts 是一个非常好的MVC框架,主要技术是Servlet 和Jsp.Struts的MVC设计模式能够使我们的逻辑变得非常清晰,让程序变得层次分明(类似于Django中的Views层)。
Spring提供了管理业务对象的一致化方法,而且鼓舞对接口编程而不是对类编程,这样在非常大程度上松解了耦合(已经被融入到Views层中了)。
Hibernate 是用来持久化数据的,提供全面的面向对象的数据库操作,Hibernate 对JDBC进行了很轻量级的封装,这样和数据库打交道就easy多了(类似于Django 中的models层)。
当中非常多没说的,直接看看SSH架构图吧:
Struts负责的是web层:
ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward到相应的网页中,在Struts-config.xml中定义<action-mapping>,这样ActionServlet会载入进来。
Spring负责的是业务逻辑层,即Service:
Service为Action提供统一的调用接口,封装持久层的DAO,而且集成了Hibernate ,Spring可对JavaBean(对象)和事物进行统一的管理。
Hibernate负责持久层,完毕数据库的CRUD操作:
Hibernate有一组hbm.xml和PO,是数据库中的相应的表相相应的,然后定义DAO,这些是与数据库打交道的类。(直接就是复杂化的Models层)
以下是SSH中的对象调用流程图:
基本的数据流路径是:Struts->Spring->Hibernate(JSP->Action->Service->DAO->Hibernate)
Java SSH框架学习(入门)的更多相关文章
-
SSH 框架学习之初识Java中的Action、Dao、Service、Model-收藏
SSH 框架学习之初识Java中的Action.Dao.Service.Model-----------------------------学到就要查,自己动手动脑!!! 基础知识目前不够,有感性 ...
-
Spring.NET依赖注入框架学习--入门
Spring.NET依赖注入框架学习--入门 在学些Spring.net框架之前,有必要先脑补一点知识,比如什么是依赖注入?IOC又是什么?控制反转又是什么意思?它们与Spring.net又有什么关系 ...
-
01-Spring Security框架学习--入门(二)
一.入门案例 Spring Security 自定义登录界面 通过之前的一节 01-Spring Security框架学习--入门(一)的简单演示,Spring security 使用框架自带的登录界 ...
-
java SSH框架详解(面试和学习都是最好的收藏资料)
Java—SSH(MVC)1. 谈谈你mvc的理解MVC是Model—View—Controler的简称.即模型—视图—控制器.MVC是一种设计模式,它强制性的把应用程序的输入.处理和输出分开.MVC ...
-
[Java] SSH框架笔记_框架整合示例(一)
本文描述的是框架SSH集成的示例,由于在这个过程中有一些小的细节容易被遗忘,特别撰写了一篇小的博文来记录这个过程,希望对自己以及后来者能够起到积极意义. 本文中使用的框架和版本号为: struts-2 ...
-
[Java] SSH框架笔记_框架分析+环境搭建+实例源码下载
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...
-
Java集合框架学习(一)List
先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...
-
SSH框架学习
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...
-
Java SSH框架系列:用户登录模块的设计与实现思路
1.简介用户登录模块,指的是根据用户输入的用户名和密码,对用户的身份进行验证等.如果用户没有登录,用户就无法访问其他的一些jsp页面,甚至是action都不能访问.二.简单设计及实现本程序是基于Jav ...
随机推荐
-
利用js2image把代码压缩成圣诞树
马上圣诞节了,作为一名程序猿,如何体现自己独特的过节风格,如何在朋友圈发一张专属自己的祝福照片我觉得很有必要,你们说是不是. 谈到圣诞节,话说程序猿和圣诞之间的关系还有这么一个笑话: Q:程序员为什么 ...
-
Python编写邮件群发(qq邮箱)
#电子邮件操作 import poplib import smtplib from email.header import decode_header from email.mime.text imp ...
-
Yocto开发笔记之《Tip-设置程序开机启动》(QQ交流群:519230208)
QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 IMX6UL,转载请注明出处 ============================================== ...
-
11月16日《奥威Power-BI基于SQL的存储过程及自定义SQL脚本制作报表》腾讯课堂开课啦
上周的课程<奥威Power-BI vs微软Power BI>带同学们全面认识了两个Power-BI的使用情况,同学们已经迫不及待想知道这周的学习内容了吧!这周的课程关键词—— ...
-
Hiddenfield控件
本文转自:http://www.cnblogs.com/weicleer/archive/2012/11/26/2788722.html ASP.NET2.0 HiddenField控件(1)2007 ...
-
UVA 11825 Hackers&#39; Crackdown
题目大意就是有一个图,破坏一个点同时可以破坏掉相邻点.每个点可以破坏一次,问可以完整破坏几次,点数=16. 看到16就想到状压什么的. 尝试设状态:用f[i]表示选的情况是i(一个二进制串),至少可以 ...
-
Visible Lattice Points SPOJ - VLATTICE 三维+莫比乌斯反演
#include<bits/stdc++.h> #define ll long long using namespace std; ; int vis[maxn]; int mu[maxn ...
-
Nginx 完整安装篇
第一步安装各种编译库如c++编译库等 yum install -y gcc //安装GCC ...安装过程省略 yum install -y gcc-c++ //安装C++库用来编译c++ ...安装 ...
-
BZOJ4409 [Usaco2016 Feb]Circular barn 动态规划 斜率优化
原文链接http://www.cnblogs.com/zhouzhendong/p/8724739.html 题目传送门 - BZOJ4409 题意 有一个N个点的环,相邻两个点距离是1.点顺时针标号 ...
-
python 创建实例--待完善
今天好好琢磨一下 python 创建实例的先后顺序 一. 就定义一个普通类 Util (默认)继承自 object,覆写 new ,init 方法 class Util(object): def __ ...