S2SH介绍

(一)Struts2基础

目标: 掌握Struts的框架结构 了解核心控制器FilterDispatcher 了解业务控制器Action 了解Struts支持的视图组件 掌握Struts工作流程 掌握Struts相关文件配置

Struts2 中大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器与servlet api分离。

Struts2框架结构:用户请求提交给strus2的核心控制器FilterDispatcher,FilterDispatcher根据请求调用相应的Aciton的execute()方法,并根据处理结果显示相应的jsp页面。其中,针对一些通用的功能,Struts2框架内置了许多拦截器,这些拦截器组成一个拦截器链,拦截器链会自动对请求应用这些通用型的功能。

Struts2的控制器有两部分组成FilerDispatcher和业务控制器Action。

(1)FilterDispatcher是一个Servlet过滤器,他是Struts2的核心组件,作用于整个web应用程序,需要在web.xml中进行配置。

在web.xml中配置FilterDispatcher的代码如下所示

<filter>    

<!--  配置Struts框架的核心Filter  -->    

<filter-name>struts2</filter-name>

<filter-class>

<!—配置Struts2核心Filter的实现类-->

org.apache.struts2.dispatcher.FilterDispatcher

</filter-class>

</filter>

<filter-mapping>  

  <filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

(2)Action Action是Struts2的业务控制器   

例子:一个Struts2的Action示例

LoginAction .java

public class LoginAction {  

//用户名

 private String userName;

 //密码  

private String passWord;

public String getUserName(){  

Return userName;

}

public void setUserName(String userName){

 this.userName=userName;

}

public String getPassword(){

 return passWord;

}

public void setPassword(String password){

 this.password=password;

}

/** *控制业务流程转向 *返回一个字符串,课映射到任何视图或Action **/

}

public String execute(){

 System.out.println("姓名为:"+userName);  

//判断用户名为“haier”且密码为“soft”,则返回success,否则返回error

 if("haier".equals(userName)&&"soft".equals(passWord)){  

 return "success";  

 }  

return "error";

}

Struts2中的Action类有如下优势:

Action类完全是一个POJO,具有良好的代码重用性;

Action类无须与Servlet API耦合,

因此无论是应用还是测试都非常简单 Action类的execute()方法仅返回一个字符串作为处理结果,该处理结果可映射到任何的视图或另一个Action

 

Struts的配置文件  Struts2创建系统的Action代理时,需要使用Struts2的配置文件,在此文件中需要对用户定义的Action进行相关信息的配置。

Struts2的配置文件有两种:   配置Action的Struts.xml文件   配置Struts2全局属性的struts.properties文件

 

(二)Hibernate框架

Hibernate框架是轻量级java EE 应用中持久层的解决方案,Hibernate不仅管理对象数据到数据库的映射,还提供面向对象的数据查询和获取方法,与单纯使用JDBC相比,大幅缩短了进行数据持久化处理的开发时间。hibernate能在众多的ORM框架中脱颖而出,是因为与其他ORM框架对比有如下优势。

开源并且免费,方便需要时研究,改写源代码,进行功能制定 简单,避免引入过多复杂问题,进行轻量级封装,容易调试;具有可扩展性,API开放,根据需要可进行扩展 稳定的性能,发展有保障

POJO跟普通的JavaBean一样Hibernate直接采用POJO作为PO,不需要持久化类继承人和父类 为使POJO具备可持久化操作的能力,Hibernate采用XML作为映射文件对POJO类和数据库中的表进行映射。

 

Hibernate API介绍

Configuration类        用于配置、启动Hibernate,创建SessionFactory实例对象 SessionFactory接口 用于初始化Hibernate,创建Session实例,充当数据源代理 Session接口 用于保存、更新、删除、加载和查询持久化对象,充当持久化管理器 Transaction接口 用于封装底层的事务,充当事务管理器 Query接口 用于执行HQL数据库查询,充当Hibernate查询器 Criteria接口 用于创建并执行面向对象方式的查询,充当Hibernate查询器

Hibernate 中的对象及功能 SessionFactory         Hibernate的关键对象,是针对单个数据库映射关系经过编译后的内存镜像,SessionFactory接口负责初始化Hibernate,充当数据存储源的代理,并负责创建Session对象,它是生成Session的工厂,一个应用只初始化一个SessionFactory,为不同的线程提供Session。

Session     Hibernate持久化操作的关键对象,是应用程序与数据库之间交互操作的第一个单线程对象,所有的持久化对象必须在Session管理下才可以进行持久化操作

Transaction          提供持久化中的原子操作,具有数据库事务的概念

Persistent Object        持久化对象,与Session关联,处于持久化状态

Transient  Object     瞬态对象,没有与Session关联,尚未持久化的对象

ConnectionProvider   数据库连接提供者,用于生成与数据库建立连接的JDBC对象

TransactionFactory   是生成Transaction对象的工厂,实现了对事务的封装

Hibernate应用有3种开发方式     自底向上从数据库表到持久化类。采用手动或者开发工具根据数据库中表的结构生成对应的映射文件和持久化类     自顶向下从持久化类到数据库表。先编写持久化类,然后手动或采用工具编写映射文件,进而生成数据库表结构     从中间出发向上与向下同事发展。先编写映射文件,然后根据映射文件向上生成持久化类,向下生成数据库表结构

Hibernate应用程序的开发一般经过的步骤 配置Hibernate用用环境,在应用中添加Hibernate所需要的jar包,并创建Hibernate配置文件 创建持久化类及其ORM映射文件 利用Configuration装载配置 利用SessionFactory创建Session 通过Session进行持久化对象的管理 利用Transaction管理事务 利用Query进行HQL查询或利用Criteria实现条件查询 

 (三)Spring 

Spring 概述 Spring 是Java领域中的优秀开源框架,它提供了一个全面的,一站式的JAVA EE解决方案,大大简化了Java企业级开发的过程,提供了强大、稳定的功能,为Java开发企业应用和Web应用带来了福音。

Spring是一个全方位的解决方案,主要包括如下功能:

基于依赖注入(控制反转IoC)的核心机制 声明式的面向切面编程(AOP)支持 与多种技术整合 优秀的Web MVC框架

Spring是企业应用开发的“一站式”选择,贯穿表示层、业务层、持久层。而且,Spring并不会取代哪些已有的框架,而是以高度的可制定性与之无缝结合。Spring不做重复性的实现,比如对象持久化和ORM,Spring只是对现有的JDBC、Hibernate,JPA等技术提供支持,将其整合,使之更易使用。

Spring具有如下优点:

低侵入式设计,代码无污染

独立于各种应用服务器,真正实现,Write Once、Run Anywhere(一次编写,随处运行)的承诺

Ioc容器降低了业务对象替换的复杂性,降低了组件之间的耦合

AOP容器允许将一些通用任务,如安全、事务、日志等进行集中式处理

Spring中的ORM和Dao支持提供了与第三方那个持久层框架的良好整合,并简化了底层的数据库访问

Spring的高度开放性,并不强制开发者完全依赖于Spring,可自由选用Spring框架的部分和全部功能

 

 

 

 

 

转载于:https://www.cnblogs.com/qlnujsjlzy-001/p/3158928.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值