SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
轻量——在做ITOO开始,就经常听一句话:“spring是一种轻量级框架!”可是它的轻量到底体现在哪里呢?
从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类(这句话理解的不是非常透彻,应该和spring注入有关,注入在配置文件中的路径不变,但是所指的类的内容可以变化)。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。(举个简单的例子:以前写C#的时候要用这个对象都是要先new一下,相当于主动式的,但是如果用控制反转技术,在配置文件中写上该类的命名空间.类名,然后在用这个类的时候只要传入一个该类名字的字符串就可以应用该类!)
面向切面——Spring提供了面 向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务和事务进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
spring应用在SSH中的具体体现是applicationContext.xml的应用!用于体现spring的注入!比如:将Dao注入到Service
中。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。(一堆官方的话,自己总结一下就是和C#中的EF一样,方便了数据库的链接和实体的生成!)
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。在JAVA中用得最多获取session的方法就是SessionFactory。但是SSH商城用DAO层的类继承HibernateDaoSupport类,这个HibernateDaoSupport类已经有获取session的方法getSession了,非常好用。
而让Dao类继承HibernateDaoSupport类虽然好用,但是我们需要动态注入SessionFactory。如下图:
百度百科中对这个特殊类的解释是:在JDBC中一个Connection对象使用一个事务,那么在Hibernate中一个事务肯定要关联一个SessionFactory了,然而这个SessionFactory却没有在DAO中体现。其实主要的原因是HibernateDaoSupport类已经默默地做了封装的工作,它用一个setSessionFactory方法将SessionFactory进行注入,所以继承自HibernateDaoSupport类的DAO都会具有SessionFactory的属性,从而可以通过SessionFactory创建Session实例操作数据库。
struts是一个基于javaee平台的mvc框架。而网上商城用的struts2,后者比前者多一个拦截器的功能,可以使编程更加灵活。(自己研究的不多,就先到这里吧,等以后的分享!)
struts.xml用于form提交,页面跳转,action定义路径等。
需要注意的是:
struts.xml里的配置错误是 class里是完整路径、但是不包括类的扩展名。如下图:
中间转到的jsp页面要用绝对路径。就是说如图:
web.xml是最基本的,可能含有数据库连接,过滤器,监听器等信息的配置。下图是SSH里面的web.xml的配置:
小总:
小编在最初从VS跳到MyEclipse的编程工具以后各种的不适应啊!在VS中好多的快捷键使顺手了,到MyEclipse都不能用!真是烦恼啊!不过我还是通过自己的摸索总结了一点快捷键的使用,希望可以帮到大家!
1. Ctrl+左键:用来查看变量、方法、类的定义
2. Ctrl+O:查看一个类的纲要,列出其方法和成员变量。提示:再多按一次Ctrl+O,可以列出该类继承的方法和变量。
3. Ctrl+T :查看一个类的继承关系树,是自顶向下的,再多按一次Ctrl+T,
会换成自底向上的显示结构。
提示:选中一个方法名,按Ctrl+T,可以查看到有这个同名方法的父类、子类、接口。
4.Alt+左右方向键 :我们经常会遇到看代码时Ctrl+左键,层层跟踪,然后迷失在代码中的情况,这时只需要按“Alt+左方向键”就可以退回到上次阅读的位置,同理,按“Alt+右方向键”会前进到刚才退回的阅读位置,就像浏览器的前进和后退按钮一样。
5、全局: 全部保存 Ctrl+Shift+S;全局
全部关闭 Ctrl+Shift+F4
6、Java编辑器 格式化 Ctrl+Shift+F
Java编辑器 取消注释 Ctrl+/
Java编辑器 注释 Ctrl+/、或者Ctrl+Shift+C