手把手搭建一个完整的SSH项目(适合新手)

为了方便大家,同时也为了加深自己的记忆,这里小落自己搭建一个ssh项目

我把项目搭建步骤都先写出来,使大家在编写代码上更明确 项目源码下载

1.新建一个项目  导入必须的jar包
2.创建db.properties文件并配置

db.properties

jdbc.user=root
jdbc.pwd=root
jdbc.driver=com.mysql.jdbc.Driver
jdbc.jdbcurl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

jdbc.initPoolSize=5
jdbc.maxPoolSize=10
3.创建hibernate.cfg.xml并配置

hibernate.cfg.xml




	
	org.hibernate.dialect.MySQLDialect
	false
	false
	org.springframework.orm.hibernate4.SpringSessionContext    
	update
	


4.创建applicationContext.xml引入资源文件并配置c3p0数据源

applicationContext.xml




	



5.在applicationContext.xml中配置sessionfactory


	
		
		
		
		
			
				com.jsx.pojo
			
		
	


6.在applicationContext.xml中配置spring声明事务
1.配置hibernate事务管理器 



	
		
	


2.配置事务属性


	
		
			
			
			
		
	


3.配置事务切入点, 再把事务属性和事务切入点关联起来 


	
		
		
	


7.配置applicationContext.xml开启自动扫描指定包上类的注解


	
(附完整的applicationContext.xml)



	

	
		
		
		
		
		
		
	

	
		
		
		
		
			
				com.jsx.pojo
			
		
	


	
		
	

	
		
			
			
			
		
	

	
		
		
	

	


8.在web.xml 中配置 spring 监听 和  struts核心过滤器



  	
  
  
  	contextConfigLocation
  	classpath:applicationContext*.xml
  
  
    
  	org.springframework.web.context.ContextLoaderListener
  
  
  
  	struts
  	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
  	struts
  	/*
  
  
  
  
    index.jsp
  






9.创建包层结构

com.jsx.pojo

com.jsx.dao

com.jsx.service

com.jsx.action

10.在pojo层创建User实体 以及对应的User.hbm.xml映射文件

User.java

package com.jsx.pojo;

public class User {
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int 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;
	}
	
}

User.hbm.xml



    
    
    	
    		 
    			
    		
    		
    		
    	
    
    
    
    
    


11.在dao层创建UserDao接口 以及对应的接口实现类 UserDaoImpl  实现类添加关于sessionfactory set注入

UserDao.java

package com.jsx.dao;

import com.jsx.pojo.User;

public interface UserDao {
	public boolean register(User user);
	public User login(User user);
}
UserDaoImpl.java

package com.jsx.dao;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;

import com.jsx.pojo.User;

public class UserDaoImpl implements UserDao{
    private SessionFactory sessionFactory;
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	
	public boolean register(User user) {
		try {
			sessionFactory.getCurrentSession().save(user);
			return true;
		} catch (HibernateException e) {
			return false;
		}
	}
	public User login(User user) {
		User u = null;
		u = (User)sessionFactory.getCurrentSession().createQuery("from User where username=:username and password=:password")
		.setString("username", user.getUsername())
		.setString("password", user.getPassword()).uniqueResult();
		return u;
	}

}



12.在service层创建UserService接口以及对应的接口实现类UserServiceImpl 实现类添加关于UserDao的set注入

UserService.java

package com.jsx.service;

import com.jsx.pojo.User;

public interface UserService {
	public boolean register(User user);
	public User login(User user);
}

UserServiceImpl.java

package com.jsx.service;

import com.jsx.dao.UserDao;
import com.jsx.pojo.User;

public class UserServiceImpl implements UserService{
    private UserDao userDao;
	public UserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	
	public boolean register(User user) {
		return userDao.register(user);
	}
	public User login(User user) {
		return userDao.login(user);
	}
	
}


13.在action层创建UserAction 
1.继承ActionSuport(需要用到里边的常量)

2.实现ModelDriven接口(new 一个User对象接收)

3.添加UserService的set注入

4.实现UserAction的对应方法

UserAction.java

package com.jsx.action;

import com.jsx.pojo.User;
import com.jsx.service.UserService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class UserAction extends ActionSupport implements ModelDriven{
    private User user = new User();
	public User getModel() {
		return user;
	}
	private UserService userService;
	public UserService getUserService() {
		return userService;
	}
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	
	public String register(){
		boolean register = userService.register(user);
		if(register){
			return SUCCESS;
		}else{
			return ERROR;
		}
	}
	public String login(){
		User u = null;
		u = userService.login(user);
		if(u!=null){
			ActionContext.getContext().getSession().put("LoginUser", u.getUsername());
			return SUCCESS;
		}else{
			return ERROR;
		}
	}
	
}


14.在struts.xml中配置UserAction

struts.xml



	
		
		
		
		
	


struts-user.xml



	
		
			
				/success.jsp
				/error.jsp
			
		
	
15.创建applicationContext-beans.xml并配置bean

applicationContext-beans.xml




	
			
	
	
			
	
	
			
	
	





16.编写jsp文件

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>


  
    My JSP 'index.jsp' starting page
  
  
   			

用户登录

用户注册

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>


  
    My JSP 'index.jsp' starting page
  
  
   			成功 ---${LoginUser} 
  


error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>


  
    My JSP 'index.jsp' starting page
  
  
   			失败
  


项目结构 手把手搭建一个完整的SSH项目(适合新手)_第1张图片 手把手搭建一个完整的SSH项目(适合新手)_第2张图片 手把手搭建一个完整的SSH项目(适合新手)_第3张图片 手把手搭建一个完整的SSH项目(适合新手)_第4张图片



你可能感兴趣的:(【JavaEE技术】)