快速整合ssh框架搭建简单demo

eclipse创建项目
File -> new ->Dynamic Web Project
快速整合ssh框架搭建简单demo_第1张图片
->next ->next
快速整合ssh框架搭建简单demo_第2张图片
Generate web.xml deployment descriptor 打上勾,项目创建时会自动创建web.xml文件。->finish
快速整合ssh框架搭建简单demo_第3张图片
复制相关jar文件到lib
struts2_lib
快速整合ssh框架搭建简单demo_第4张图片
spring_lib
快速整合ssh框架搭建简单demo_第5张图片
hibernate_lib
快速整合ssh框架搭建简单demo_第6张图片
这三个lib目录分别单独属于struts2、spring、hibernate三个框架,整合在一起的会有部分重复,删除旧版本,保留新版本即可
在这里插入图片描述
三个框架整合是struts-spring.jar一定要加,调试的时候忘记导入这个包,spring和struts2整合疯狂报错,当时一脸懵
这里推荐一个jar下载网站Jar File Download,需要的jar、源文件一般都可以在里面找到=-=重要的是,完全免费,不需要积分,都知道说的是谁奥:) 或者使用maven,只需要配置pom.xml就可以自动下载所需的jar包
导入jar到项目中
选中lib包下所有的jar(按住shift,左键点第一个文件,最后一个文件,即可选中所有的jar)右键->Build Path -> add to Build Path

需求:查询数据库中user表中的所有记录,以表格形式显示所有的记录(user表字段【id,username,password】)
前期准备
在src文件下新建下列包和.java,.xml文件
快速整合ssh框架搭建简单demo_第7张图片
Demo.java

public class Demo extends ActionSupport{
	DemoService demoService;
	public void setDemoService(DemoService demoService) {
		this.demoService = demoService;
	}
	public String query() throws Exception{
		List list = demoService.queryAll();
		//获取值栈对象,将demoService返回的List放入值栈中
		ActionContext context = ActionContext.getContext();
		ValueStack valueStack = context.getValueStack();
		valueStack.set("users",list);
		return "query";	
	}	
}

User.java

package cn.sshdemo.entity;
public class User {
	private Integer id;
	private String username;
	private String password;
	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;
	}
	
}

DemoDao.java

public interface DemoDao {
	//返回User集合
	List queryAll();
}

DemoDaoImpl.java 实现DemoDao接口

public class DemoDaoImpl extends HibernateDaoSupport implements DemoDao{
	@Override
	public List queryAll() {
		// TODO Auto-generated method stub
		List users = (List)this.getHibernateTemplate().find("from User");
		return users;
	}
}

DemoService.java
类名上添加事务注解

@Transactional
public class DemoService {
	DemoDao demoDao;
	public void setDemoDao(DemoDao demoDao) {
		this.demoDao = demoDao;
	}
	public List queryAll(){
		return demoDao.queryAll();
	}
}

在这里插入图片描述
WebContent 下新建index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<%@ taglib uri="/struts-tags" prefix="s"%>




index


	
			
id username password

搭建struts2环境
(1)创建struts.xml,在xml中配置action




	
		
			
				index.jsp
			
		
	

(2)在web.xml中配置struts2的过滤器

 
        struts2
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
     
        struts2
        /*
    

搭建hibernate环境
创建hibernate.cfg.xml 配置数据库连接信息、映射文件




	
		 com.mysql.jdbc.Driver
		【数据库url地址】
		【用户名】
		【密码】 
		true
		true
		
		update
		
		org.hibernate.dialect.MySQLDialect
		
		
	
	

创建映射配置文件user.hbm.xml(实体类和数据库表相互映射)



	
		
			
				
			
			
			
		
	
	

搭建spring环境
创建applicationContext.xml,添加相关约束



		

web.xml中相关配置


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

struts2和spring整合
配置applicationContext.xml
spring核心功能之一IOC:控制反转,将实例化对象交由spring处理。这里生成demoService、demoDaoImpl分别通过set方法注入到DemoAction、DemoService中去


		
	
	
		
	
	
		
	

修改struts.xml文件,action的class修改为demoAction,因为该对象已由spring创建



	
		
			
				index.jsp
			
		
	

hibernate和spring整合
在applicationContext.xml中配置dataSource、sessionFactory等相关信息


		
       
       
       
	
	
		
		
	
	
		
	

注释掉hibernate.cfg.xml中配置的数据库连接信息,因为已由spring配置完毕




	
			
		true
		true
		
		update
		
		org.hibernate.dialect.MySQLDialect
		
		
	
	

配置事务
在applicationContext.xml中添加一下代码


	 
	
	
		
	
	
	

运行
右键add and remove,将要运行的项目添加进 Configured
快速整合ssh框架搭建简单demo_第8张图片
右键start,服务器启动。查看console,如果程序没有问题,控制台不会有异常抛出且数据库会自动生成m_user表,如果出现异常,则根据异常一步步排查错误
打开chrome浏览器,地址栏中输入localhost:8080/sshdemo/demo_query.action 调用Demo中的query方法
在这里插入图片描述
因为数据库中只插了一行记录,当然只有一行显示啦==
如果出现404错误,检查路径;出现500错误,检查代码就行了:)

你可能感兴趣的:(快速整合ssh框架搭建简单demo)