SSH整合Demo——完成登录注册

文件目录结构:

                           


ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" xmlns:tx="http://www.springframework.org/schema/tx">


	
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>me/zhshiqi/domain/User.hbm.xml</value></list>
		</property></bean>
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<tx:annotation-driven transaction-manager="transactionManager" />
	
	<!-- Action配置 -->
	<bean id="userAction" class="me.zhshiqi.action.UserAction" scope="prototype">
		<property name="userService" ref="userService"></property>
	</bean>
	<bean id="registAction" class="me.zhshiqi.action.RegistAction" scope="prototype">
		<property name="userService" ref="userService"></property>
	</bean>
	<!-- Service配置 -->
	<bean id="userService" class="me.zhshiqi.service.UserService">
		<property name="userDao" ref="userDao">
		</property>
	</bean>
	
	
	<!-- Dao配置 -->
	<bean id="userDao" class="me.zhshiqi.dao.UserDao">
			<property name="sessionFactory" ref="sessionFactory">
			</property>
	</bean>
</beans>



RegistAction

/**
 * 用户注册Action
 * @author ZSQ
 *
 */
public class RegistAction extends ActionSupport implements ModelDriven<User>{

	
	

	User user = new User(); 
	
	public User getModel() {
		// TODO Auto-generated method stub
		return user;
	}
	private UserService userService;
	
	public UserService getUserService() {
		return userService;
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	public String regist() throws Exception{
		System.out.println("RegistAction中的regist()方法执行了");
		if(userService.save(user)){
			userService.save(user);
			return "registSuccess";
		}
		else
			return "registFailure";
	}

	
}

UserAction

/**
 * UserAction配置
 * @author ZSQ
 *
 */
public class UserAction extends ActionSupport implements ModelDriven<User>{

	static{
		System.out.println("Action执行了");
	}
	/*
	 *模型驱动使用的对象
	 */
	private User user = new User();
	public User getModel() {
		// TODO Auto-generated method stub
		return user;
	}

	/*
	 * 注入UserSerivce
	 */
	private UserService userService;
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	/*
	 * 登录方法
	 */
	public String login()
	{
		System.out.println("Action中的login()方法执行了");
		User existUser = userService.login(user);
		if(existUser==null){
			this.addActionError("登陆失败,该用户名与密码已录入,请重新尝试登录");
			return "loginFailure";
		}
		else{
			ServletActionContext.getRequest().getSession().setAttribute("existUser",existUser);
			return "loginSuccess";
		}
	}

}

Struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	
	<package name="SSHDemo" extends="struts-default" namespace="/">
	
		<action name="userAction" class="me.zhshiqi.action.UserAction" method="login">
			<result name="loginSuccess">/login_success.jsp</result>
			<result name="loginFailure">/login_failure.jsp</result> 
		</action>
	
		<action name="registAction" class="me.zhshiqi.action.RegistAction" method="regist">
			<result name="registSuccess">/regist_success.jsp</result>
			<result name="registFailure">/regist_failure.jsp</result>
		</action>
	</package>
	
</struts>    


UserDao

/**
 * UserDao类
 * @author ZSQ
 *
 */
public class UserDao extends HibernateDaoSupport{
	/*
	 * 保存用户对象
	 */
	public void add(User user){
		System.out.println(user.getUname()+"haha");
		Session session = getSessionFactory().getCurrentSession();
		session.save(user);
	}
	/*
	 * 删除用户对象
	 */
	public void delete(User user){
		
	}
	/*
	 * 更新用户信息
	 */
	public void update(User user){
		Session session =getSessionFactory().getCurrentSession();
		session.update(user);
	}
	/*
	 * 更具用户名查询用户信息
	 */
	public User queryById(User user){
		//System.out.println("UserDao,query");
		String hql="from User where uname = ?";
		Session session = getSessionFactory().getCurrentSession();
		Query query = session.createQuery(hql);
		System.out.println("+"+user.getUname());
		query.setString(0,user.getUname());
		@SuppressWarnings("rawtypes")
		List list = query.list();
		System.out.println("UserDao中的queryById()方法执行了");
		if(list.size()==0){
			System.out.println("list.size()="+list.size());
			return null;
		}
		return (User) list.get(0);
	}
	
	@SuppressWarnings("null")
	public  User login(User user)  {
		// TODO Auto-generated method stub
		System.out.println("UserDao中的login方法执行了");
		String hql="from User where uname = ? and upass = ?";
		
		Session session = getSessionFactory().getCurrentSession();
		Query query = session.createQuery(hql);
		query.setString(0,user.getUname());
		query.setString(1,user.getUpass());
		List <User> list=query.list();
		if(list!=null && list.size()>0){
			return list.get(0);
		}
		
		return null;
	}

}

User

/**
 * User entity. @author MyEclipse Persistence Tools
 */

public class User implements java.io.Serializable {

	// Fields

	private Integer id;
	private String uname;
	private String upass;

	// Constructors

	/** default constructor */
	public User() {
	}

	/** full constructor */
	public User(String uname, String upass) {
		this.uname = uname;
		this.upass = upass;
	}

	// Property accessors

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUname() {
		return this.uname;
	}

	public void setUname(String uname) {
		this.uname = uname;
	}

	public String getUpass() {
		return this.upass;
	}

	public void setUpass(String upass) {
		this.upass = upass;
	}

}

UserService

@Transactional
public class UserService {

	
	/*
	 * 注入UserDao
	 */
	private UserDao userDao;

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	
	public UserDao getUserDao() {
		return userDao;
	}

	public User login(User user){
		System.out.println("UserService中的login方法执行了");
		return userDao.login(user);
	}
	
	public boolean save(User user){
		System.out.println("UserService中的save方法执行了");
		if(userDao.queryById(user)!=null){
			System.out.println("userDao.queryById");
			return false;
		}
		else{
			userDao.add(user);
			System.out.println("userDao.add");
			return true;
		}
	}
	
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值