博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
S2SH---(Struts2+Spring+Hibernate)
阅读量:4089 次
发布时间:2019-05-25

本文共 6517 字,大约阅读时间需要 21 分钟。

SSH不是一个框架,而是将多个框架紧密结合在一起,用于构建灵活、易于扩展的多层web应用程序。

SSH框架搭建的系统分为四层:表示层、业务逻辑层、数据持久层和实体层

1、struts2:它是一个基于MVC模式的框架,使用struts2的目的在于负责MVC的分离,将页面从业务逻辑中分离出来,使得页面

     灵活多变,不会影响业务逻辑,使得开发更加高效。

2、hibernate:是一个对象关系映射框架,对JDBC进行了轻量级封装,使得我们可以采用面向对象的思想操作关系型数据库。

3、spring:它是一个轻量级的控制反转和面向切面的容器框架。使用spring的目的在于使得管理对象更加方便,极大降低组件

   之间的耦合度,实现软件各层之间的解耦。

SSH实现视图、控制器和模型的彻底分离,而且实现业务逻辑层和持久层的分离,使得耦合度降低、可复用性高。

下面讲述如何搭建ssh开发环境

一、搭建spring开发环境

第一步:下载spring所需要的jar包,如下

第二步:在src下新建【source folder】文件config,然后在其下创建applicationContext.xml文件,如下图所示:

applicationContext.xml文件内容如下:

第三步:在src下新建包com.cn.service,在包下编写一个接口IUserService

package com.cn.service;public interface IUserService {	/**	 * 测试方法	 * */	public void test();}

第四步:在src下新建包com.cn.service.impl,在包下编写接口的实现类UserServiceImpl

package com.cn.service.impl;import org.springframework.stereotype.Service;import com.cn.service.IUserService;@Service("userService") //将UserServiceImpl标注为一个servicepublic class UserServiceImpl implements IUserService{	@Override	public void test() {		System.out.println("hello Spring!");	}}

第五步:在web.xml中配置spring的监听器

contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener

第六步:测试Spring是否搭建成功

package com.cn.test;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.cn.service.IUserService;public class SpringTest {	@Test	public void test(){		//通过applicationContext.xml配置文件创建spring的应用程序上下文环境		ApplicationContext context=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");		//从spring的IOC容器中获取bean		IUserService userService=(IUserService) context.getBean("userService");		//执行测试方法		userService.test();	}}
运行结果如下图:

将项目部署在tomcat服务器上,然后启动tomcat服务器,没有出错。然后在浏览器地址栏输入

http://localhost:18080/s2shDemo,能够正常访问,则说明spring的开发环境搭建成功

二、搭建struts2开发环境并整合spring

第一步:下载struts2所需要的jar包

第二步:在config下创建struts2的核心配置文件struts.xml,配置文件如下:

/WEB-INF/jsp/test/test.jsp

第三步:新建包com.cn.action,并在该包下创建UserAction

package com.cn.action;public class UserAction {	public String test(){		return "test";	}}

第四步:在web.xml中配置struts2的核心过滤器,代码如下:

struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
*.action
第五步:在WEB-INF下新建jsp,然后在jsp文件夹下新建文件test,在test文件夹下新建test.jsp

test.jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>          My JSP 'test.jsp' starting page    
struts2和spring整合成功....
第六步:测试

在浏览器地址栏输入:http://localhost:8080/s2shDemo/testAction.action

如果输出下图结果,则struts2环境搭建成功

三、搭建Hibernate开发环境并整合spring

步骤1:导入Hibernate所需要的jar包、数据库连接池包和数据库驱动包

步骤2:在config下新建file文件db.properties

jdbc_driverName=com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/ssh?useUnicode=true&characterEncoding=UTF-8jdbc_username=rootjdbc_password=roothibernate.dialect=org.hibernate.dialect.MySQLDialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=truehibernate.format_sql=true
步骤3:在applicationContext.xml中配置数据源DataSource、Session工厂SessionFactory以及事务管理器

org.hibernate.dialect.MySQLInnoDBDialect
true
true
update
classpath:com/cn/vo
步骤4:新建实体类UserVO

package com.cn.vo;public class UserVO {	private Integer id;   //用户id	private String username;  //用户名	private String password;  //用户密码		//无参构造器	public UserVO() {		super();	}	//带参数构造器	public UserVO(Integer id, String username, String password) {		super();		this.id = id;		this.username = username;		this.password = password;	}		//get和set方法	public Integer getId() {		return id;	}	public void setId(Integer id) {		this.id = id;	}	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;	}	}
步骤5:新建接口IUserDao

package com.cn.vo;public class UserVO {	private Integer id;   //用户id	private String username;  //用户名	private String password;  //用户密码		//无参构造器	public UserVO() {		super();	}	//带参数构造器	public UserVO(Integer id, String username, String password) {		super();		this.id = id;		this.username = username;		this.password = password;	}		//get和set方法	public Integer getId() {		return id;	}	public void setId(Integer id) {		this.id = id;	}	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;	}	}
步骤6:新建接口IUserDao实现类UserDaoImpl

package com.cn.dao;import com.cn.vo.UserVO;public interface IUserDao {	/**	 * 新增用户	 * */	public UserVO insertUser(UserVO userVO);	/**	 * 根据id查询用户	 * */	public UserVO selectUserById(Integer id);	}
步骤7:测试Hibernate和spring整合是否成功

package com.cn.test;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.cn.service.IUserService;import com.cn.vo.UserVO;public class HibernateTest {	private IUserService userService;	@Before	public void before(){		ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");		userService =(IUserService) context.getBean("userService");	}			@Test	public void insertUser(){		UserVO userVO=new UserVO(6,"Lily","123456");		userService.insertUser(userVO);			}	}
项目截图:

下节在此基础上实现SSH搭建的环境下完成CRUD和分页操作,后面继续集成前端框架EasyUI完成.......

你可能感兴趣的文章
如何高效学习动态规划?
查看>>
动态规划法(六)鸡蛋掉落问题(一)
查看>>
LeetCode 887.鸡蛋掉落(C++)
查看>>
Dijkstra‘s algorithm (C++)
查看>>
奇异值分解(SVD)的原理详解及推导
查看>>
算法数据结构 思维导图学习系列(1)- 数据结构 8种数据结构 数组(Array)链表(Linked List)队列(Queue)栈(Stack)树(Tree)散列表(Hash)堆(Heap)图
查看>>
求LCA最近公共祖先的离线Tarjan算法_C++
查看>>
Leetcode 834. 树中距离之和 C++
查看>>
【机器学习】机器学习系统SysML 阅读表
查看>>
最小费用最大流 修改的dijkstra + Ford-Fulksonff算法
查看>>
最小费用流 Bellman-Ford与Dijkstra 模板
查看>>
实现高性能纠删码引擎 | 纠删码技术详解(下)
查看>>
scala(1)----windows环境下安装scala以及idea开发环境下配置scala
查看>>
zookeeper(3)---zookeeper API的简单使用(增删改查操作)
查看>>
zookeeper(4)---监听器Watcher
查看>>
zookeeper(2)---shell操作
查看>>
mapReduce(3)---入门示例WordCount
查看>>
hbase(3)---shell操作
查看>>
hbase(1)---概述
查看>>
hbase(5)---API示例
查看>>