《java web整合开发实践 基于struts2 + hibernate + Spring》

https://www.cnblogs.com/tuhooo/p/6491906.html

一、java web基础

核心标准  URL    HTTP    HTML

HTTP  请求:请求行  请求报头  请求体

           响应:状态行  响应报头  响应正文

tomcat轻量级的web应用服务器

关闭被占用端口的进程的方法:http://blog.csdn.net/u011182412/article/details/53893587

①netstat   -ano|findstr  8080  ②taskkill  /pid  查出来的/f

mysql下载地址:https://dev.mysql.com/downloads/file/?id=474803 

mysql安装教程:https://www.cnblogs.com/chengxs/p/5986095.html

myeclipse 下载地址及安装教程:http://www.cnblogs.com/hoobey/p/5512924.html

JDBC(Java Database connectivity)是java程序与数据库系统通信的标准api

 使用JDBC访问MySql数据库的代码:

JSP指的是Java Server Pages   java服务器动态网页

 bean代表实体类用来与数据库表或者其他进行映射

二、表现层  Struts技术

MVC    Model模型  View视图  Controller控制器

模型层代表的是企业数据和其对应的业务逻辑,它控制着对数据的处理和更新。

视图层是模型层中的各个模型的具体表现形式。

控制层在MVC结构中连接模型层和视图层,起到纽带作用。将视图层的交互信息进行过滤等处理后,再传送到模型层相应的业务逻辑处理程序进行处理。

struts2的体系结构

Struts2的工作流程:

(1)浏览器发出请求

(2)控制层中的核心控制器FilterDispatcher根据请求调用相应的Action

(3)Struts2的拦截器链(即一系列拦截器)自动对请求调用一些通用的控制逻辑。

(4)回调Aciton中的execute()方法,并在方法内调用业务逻辑组件,即javabean处理请求。

(5)execute()方法返回后产生一个输出。

(6)该输出经过拦截器链自动处理

(7)控制层最后将数据返还并更新视图层。

1、FilterDispatcher控制层:

根据用户提交的URL和struts.xml中的配置,选择合适的action,让这个action处理用户请求。

2、Action模型层:

负责把用户请求的参数组装成合适的数据模型,并调用响应的业务逻辑进行真正的功能处理,然后产生下一个视图展示所需要的数据。最后得到下一个视图所需要的信息,并传递给控制层中的拦截器链。

3、Result视图层

主要用来与用户进行交互,它将从控制层得到的数据通过适合的展示方式展现给用户,让用户与之交互更加简洁简单。

工程配置文件web.xml    配置了struts2的核心filter以及进入web页面后的首页index.jsp

配置文件struts.properties  配置了web页面的默认编码集

控制器文件struts.xml 配置了action和对应请求之间的对应关系

前段页面index.jsp   success.jsp       视图层,表示信息

后台struts处理程序TestAction.java

标签:

 

 action业务逻辑处理对象

三、持久层Hibernate

持久化指的是将内存中的数据保存到磁盘等存储设备中。文本文件、xml、关系数据库。

ORM  object relation map 对象关系映射

Hibernate下载地址:https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.2.15.Final/hibernate-release-5.2.15.Final.zip/download

                                  https://sourceforge.net/projects/hibernate/files/hibernate3/3.6.10.Final/hibernate-distribution-3.6.10.Final-dist.zip/download

tools在esclipsse中的配置方法:http://blog.sina.com.cn/s/blog_14ecbc3ed0102wszm.html

使用Hibernate开发项目的步骤:

(1)准备开发环境,创建Hibernate项目

(2)在数据库中创建数据表

(3)创建持久化类

(4)设计映射文件,使用Hibernate映射文件将POJO对象映射到数据库

(5)创建Hibernate的配置文件Hibernate.cfg.xml

(6)编写辅助工具类HibernateUtils类,用来实现对Hibernate的初始化并提供获得Session的方法

(7)编写DAO层类       DAO指数据库访问对象

(8)编写Service层类

(9)编写测试类

Configure类主要用来读取配置文件,启动Hibernate,并负责管理Hibernate的配置信息。一个程序只创建一个configure对象。

SessionFactory主要用来生成session对象。初始化Hibernate

Session对象的生命周期以Transaction对象的事务开始和结束为边界,提供了一系列与持久化相关的操作。持久化管理器

Transaction主要用于管理事务,是Hibernate的数据库事务接口,它对底层的事务接口进行了封装

Query是Hibernate的查询接口,用于向数据库中查询对象,并控制执行查询的过程。

四、业务层框架Spring技术

spring框架基于java平台,为应用程序的开发提供了全面的基础设施支持。

 

下载地址:http://repo.spring.io/release/org/springframework/spring/

五、SSH框架整合开发

表示层:struts框架

业务层:struts的actions类+业务逻辑实现类

中文编码 UTF-8,引入控制编码的过滤器com.util.SetCharacterEncodingFilter ,在web.xml中

在spring中集成hibernate实际上就是将hibernate中用到的数据源DataSource、SessionFactory实例以及事务管理器都交给spring容器管理,由spring向发开人员提供统一的模板化操作。

datasource主要配置数据库的连接属性,sessionFactory主要管理Hibernate的配置、

Spring集成Struts主要有两种上下文装载方式和3种整合方法。

上下文装载:

       在web.xml文件中装载spring上下文:①使用ServletContextListener配置         监听器类

                                                                ②使用load-on-startup Servlet配置         Servlet

Spring集成struts2的目的是将struts2中的action的实例化工作交由spring容器统一管理,同时使得struts2中的action实例能够访问spring提供的业务逻辑组件资源。而spring容器自身所具有的依赖注入的优势也可以充分发挥。

spring集成struts2的步骤:①将spring3框架所依赖的jar包复制到WEB-INF的lib文件夹下;

                                          ②将以下struts2类包添加到类路径下。

                                          ③编写struts2配置文件struts.xml,将objectfactory设置为spring

                                          ④配置web.xml文件,让web应用启动时能自动加载spring容器

实例步骤:(1)新建项目

                 (2)新建包,定义类,是一个action

                 (3)在spring的配置文件applicationContext.xml中配置struts2的action实例,以便                             使用spring容器提供给我们的各种功能。

                 (4)在struts.xml中配置所有struts2的action,注class属性不再使用类全名。而使用                                bean的实例名。

                 (5)编写web.xml文件,使用contextloaderlistener初始化spring容器

                 (6)编写success.jsp

IoC(Inversion of Control) 即控制反转,它使程序组件或类之间尽量形成一种松耦合的结构,开发者在使用类的实例之前,需要先创建对象的实例。但是ioc将创建实例的任务交给ioc容器,这样开发应用代码时只需要直接使用类的实例。

bean就是由spring容器初始化、装配及被管理的对象。

六、SSH框架实例一  用户管理系统

1、四个功能:用户的添加、用户的删除、用户信息的更新以及查询指定用户信息。

2、系统结构:

    表现层:由多个JSP页面组成

    MVC层:使用Struts2框架技术

   业务逻辑层:使用业务逻辑组件构成

    DAO层:由DAO组件组成

    Hibernate持久层:使用Hibernate3框架

    数据库层:使用MySQL数据库来存储系统数据

3、搭建过程:

数据库层,mysqldb库中的USER表

Hibernate持久层设计包含:

       定义系统中用到的持久化类(java类,数据表的字段,setget方法)    

       编写各个持久化类对应的映射文件(XXX.hbm.xml)  java类名映射table

DAO层设计:主要包含sessionFactory的配置、DAO接口的创建以及DAO接口的实现类。

       spring管理SessionFactory            创建DAO接口           创建DAO实现类

④业务逻辑层设计:

       创建业务逻辑组件接口                       创建业务逻辑组件的实现类

       对DAO层类增加一层封装

⑤表现层开发:

       各个显示页面的开发           业务控制器action的开发

⑤完成用户登录设计

整合struts2和spring    创建用户登录action  用户登录页面    配置控制器    

⑥使用spring技术集成struts和hibernate

spring集成hibernate,通过applicationContext.xml文件完成,在该文件中定义数据源,并完成对SessionFactory的配置和管理,和bean的配置,依赖注入

整合struts2和spring,通过web.xml文件完成,配置筛选器、监听器。

七、基于struts、spring、hibernate的轻量级架构

(1)表现层:有struts实现,主要完成如下任务:管理用户请求和响应;提供一个控制器代理以调用业务逻辑和各层的处理;处理从其他层抛出给strutsaction的异常;为显示提供数据模型。

(2)持久层:由hibernate实现。它通过一个面向对象的查询语言或正则表达式的API来检索对象的相关信息。还负责存储、更新、删除数据库记录。同时hibernate支持大部分主流数据库,且支持父表/子表关系、事务处理、继承和多态。

(3)业务层:由spring实现,利用延时注入思想组装代码,提高了系统扩展性和灵活性,实现插件式编程。利用AOP思想,集中处理业务逻辑,减少重复代码,构建了较理想的解决方案。利用其对hibernate的会话工厂、事务管理的封装,可以更简洁地应用hibernate。

三层的整合:

struts和spring:在struts中action的创建交给spring,但是要注意action是多实例的;

hibernate和spring:hibernate的核心类是sessionFactory,这里要把sessionFactory的创建交给spring管理;hibernate的核心文件中进行了数据库信息的配置,这里也要交给spring处理;为dao对象配置持久层的spring提供的template。

原文地址:https://www.cnblogs.com/hanmolabi/p/8531700.html