SSH框架说明文档

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、SSH整体介绍

1. 简介

本Demo程序采用的是SSH(Struts+Spring+Hibernate)三层架构。

(1)Struts用于表现层,负责页面数据提取,页面动作响应。

(2)Spring是一种轻量级的框架模型,主要负责业务逻辑层的对象创建,表现层的Action 的创建,以及持久层的DAO的创建。

(3)Hibernate负责把内存中的数据对象保存到数据库中。

2. 框架集成说明

在SSH三层架构中,主要用Struts来实现对页面的响应及页面跳转。当用户向服务器发送某一个请求,这个请求会被服务器(Tomcat)接收到,服务器会根据请求的内容,将这个请求发送给相应的Servlet实例进行处理。Servlet会根据其内容,去生成相应的Action实例。本程序中,Struts将Action的创建工作交给了Spring的代理类来完成,创建这个实例后,将这个实例注入,由Struts调用Action中的相应方法。Action中可以配置一个或多个Service对象,Action调用Service中的方法进行业务处理。Service中通常会有一个或多个DAO的对象,DAO 继承了Hibernate的接口,用来处理数据库的操作。而Action,Service,DAO的创建与注入,都是由Spring的Bean工厂来实现的。

(1)Struts与Spring的集成

✧在Web.xml中配置Struts的配置文件

✧在Web.xml中配置Spring的配置文件,Bean工厂及过滤器

✧在Struts配置文件中集成Spring的代理类

✧在Spring配置文件中配置Action

(2)Spring与Hibernate的集成

✧在Web.xml中配置Hibernate延迟过滤器配置

✧在Web.xml中配置Spring的配置文件,Bean工厂及过滤器

✧在Spring配置文件中配置DAO

✧在Hibernate配置文件中配置数据库信息

✧在DAO的实现类中继承HibernateDaoSupport类

3. 程序的包结构

(1)表现层的类包

,分别用来存放表现层的Form与Action。(2)持久层的类包

此文件夹下放置模型类,以及对应的Hibernate配置文件。

(3)业务层的类包

这个包用来放置相应的Service,用来处理相应的业务逻辑。

二、核心的配置文件的说明:

1. Web.xml文件——工程初始化配置文件

(1)Servlet配置

在WebRoot文件下的Web.xml文件,是WebProject工程配置文件,Tomcat服务器在启动时,会自动加载所有工程中的Web.xml文件。服务器会根据Web.xml中的配置信息,生成相应的Servlet的实例对象,用来处理客户端发送来的请求。

本程序的Servlet是使用的Struts中的ActionServlet,它是继承的HttpServlet类。ActionServlet 支持多线程,目前的Struts框架只允许在应用中配置一个ActionServlet。它是Struts中的控制器,系统的指令由其中转,它从struts-config.xml中读取配置信息,并在服务器后台自动启动一个线程。

(2)init-param设置

Init-param设置ActionServlet运行参数,对Servlet的运行环境进行初始化配置。实际上param-name的值是与ActionServlet中的属性相对应的。ActionServlet在创建时会调用init函数,函数会用配置文件中param-value值来设置相应的属性。

A)Struts配置文件设置

以相对路径的方式指明Struts应用程序的配置文件位置,在ActionServlet中默认值为/WEB-INF/struts-config.xml,所以如果是默认情况,在这里也可以不用配置。如果有多个配置文件可以用逗号分隔符。

B)debug设置

设置Servlet的debug级别,控制日志记录的详细程序。默认为0,记录相对最少的日志信息。C)detail设置

设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。D)load-on-startup设置

这个标记指示Web应用服务器在启动时加载这个Servlet(实例化并调用init方法),标记的内容必须使用一个整数指定Servlet的加载顺序。

如果这个整数是负值,或者这个值没有出现,那么窗口任意选择Servlet加载。

如果这个整数大于等于零以,那么窗口必须按照部署的顺序加载他们。

容器必须保证,拥有小的load-on-startup值的Servlet必须先被加载,如果Servlet有相同的load-on-startup值,那么,容器将自动选择这些Servlet的加载顺序。

(3)servlet-mapping配置

这里*是通配符,表示服务器只要接收到的形如*.do的请求,就会把这个请求交由名为action 的servlet实例来处理。请求的形式可以由开发者自己定义,Struts中通常都用do来做为后缀。而此处的servlet-name与上面servlet定义中的servlet-name是相对应的。

(4)Spring配置文件配置

context-param是application范围内的参数,存放在servletcontext中。此所设定的参数,在JSP 内页中可以使用${initParam.param_name}来取得,若在Servlet可以使用String param_name = getServletContext().getInitParamter(“param_name”);来取得。

在此程序中,参数contextConfigLocation用来定义要装入的Spring配置文件。如果想装入多个配置文件,可以在标记中用逗号作为分隔符。

默认情况Spring的配置文件为applicationContext.xml。此程序是因为改变了spring配置文件名字,所以才需要在Web.xml中配置。如果是默认情况则不需要配置。

(5)Spring的Bean工厂配置

listener元素用来定义Listerner接口,ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。它实现了ServletContextListener这个接口,在Web.xml 配置这个监听器,启动容器时,就会默认执行它的实现的方法,加载相应的Spring类,以使当对象调用时,实现其相应的注入。

这是一个Spring的重要类,在ContextLoaderListener中关联了ContextLoader类。所以整个加载配置过程由ContextLoader来完成,它创建的是XmlWebApplicationContext这样一个类,这个类实现了BeanFactory接口,所以Spring中的所有的bean都由这个类来创建。

(6)Filter配置

相关文档
最新文档