SSH网上商城--后台登录

     本篇通过简单的后台登录来讲解SSH的应用,页面主要采用框架来进行布局,通过dtree.js作为树形结构菜单来使用。

     主要登录功能的实现有以下步骤组成:


    1.后台管理页面。由于资料里已给出,可直接在WebRoot下新建admin文件夹后将后台页面直接引入即可,这里不做详细说明,页面也可自行制作。(注意css和image等的引用是否存在)。启动服务器后,打开浏览页面,如下图所示



     2.创建表:

CREATE TABLE `adminuser` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

     并插入一条后台登录用户admin

INSERT INTO `adminuser` VALUES (2,'admin','admin');


     输入用户名和密码后,点击管理中心后提交,在index.jsp中,点击“进入管理中心”按钮后,提交到后台的adminUser_login登录界面


     3.创建包、类及类之间的联系

     * cn.itcast.shop.adminuser
          * action
               * AdminUserAction.java
          * service
              * AdminUserService.java
         * dao
               * AdminUserDao.java

          * vo
               * AdminUser.java           

          * AdminUser.hbm.xml(映射)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="cn.itcast.shop.adminuser.vo.AdminUser" table="adminuser">
		
	    <id name="uid">   
			<generator class="native"/>
		</id>
		
		<property name="username"/>
		<property name="password"/>
				
	</class>
</hibernate-mapping>

     然后加到Spring的配置文件applicationContext中去,加上该映射:

		<!-- 配置Hibernate的映射文件 -->
		<property name="mappingResources">
			<list>
				<value>cn/itcast/shop/adminuser/vo/AdminUser.hbm.xml</value>
			</list>
		</property>
	</bean>

     然后就去新建AdminUser.action

package cn.itcast.shop.adminuser.action;

import cn.itcast.shop.adminuser.vo.AdminUser;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/**
 * 后台登录的Action
 * @author DXJ
 *
 */
public class AdminUserAction extends ActionSupport implements ModelDriven<AdminUser>{
	//模型驱动使用的对象
	private AdminUser adminUser = new AdminUser();

	@Override
	public AdminUser getModel() {
		return adminUser;
	}
	

}
     

     在service包中新建AdminUserService类

package cn.itcast.shop.adminuser.service;
/**
 * 后台登录业务层代码类
 * @author DXJ
 *
 */
public class AdminUserService {

}
     

     在dao包中新建AdminUser类

package cn.itcast.shop.adminuser.vo;
/**
 * 后台用户登录实体类
 * @author DXJ
 *
 */
public class AdminUser {
	private Integer uid;
	private String username;
	private String password;
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	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中注入service,并提供set方法

	//注入service
	private AdminUserService adminUserService;

	public void setAdminUserService(AdminUserService adminUserService) {
		this.adminUserService = adminUserService;
	}
     

     在service中加上事务管理并注入dao,提供set方法

@Transactional
public class AdminUserService {
	//注入dao
	private AdminUserDao adminUserDao;

	public void setAdminUserDao(AdminUserDao adminUserDao) {
		this.adminUserDao = adminUserDao;
	}
	
}

     在dao中继承HibernateDaoSupport

package cn.itcast.shop.adminuser.dao;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 * 后台登录的Dao,类
 * @author DXJ
 *
 */
public class AdminUserDao extends HibernateDaoSupport{

}

     把上述类交给Spring进行管理,在applicationContext完成相应的配

        <!-- 后台登录的Dao -->
	<bean id="adminUserDao" class="cn.itcast.shop.adminuser.dao.AdminUserDao">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	<!-- 后台登录的Service,并注入Dao -->
	<bean id="adminUserService" class="cn.itcast.shop.adminuser.service.AdminUserService">
		<property name="adminUserDao" ref="adminUserDao" />   
	</bean>
	<!-- 后台登录的Action,并注入Service -->
	<bean id="adminUserAction" class="cn.itcast.shop.adminuser.action.AdminUserAction" scope="prototype">
		<property name="adminUserService" ref="adminUserService"/>
	</bean>

     上述只是一系列的准备工作,是对前一篇的解释吧,接下来就是后台登录的代码实现过程:

     基本操作过程为:* index.jsp----->AdminUserAction----->AdminUserService----->AdminUserDao

     在index.jsp中点击“进入管理员页面”按钮,转向到adminUser_login.action,此时就需要在AdminUserAction中编写login方法,这时到这里是需要Struts的,进行Action的配置,让它跳转到某一个页面,稍后进行配置

       <!-- 配置后台登录的Action,让它跳转到某一个页面-->
       <action name="adminUser_*" class="adminUserAction" method="{1}">
               <result>需要跳转的页面</result>
       </action>

     从index中接收到的用户名和密码都存在模型驱动adminUser中了,通过用户名和密码登录到后台系统,

在Action中调用Service, 

	/**
	 * 后台登录的方法
	 */
	public String login(){
		//调用Service完成登录,传过来adminuser,得到一个新的AdminUser对象existAdminUser,
		AdminUser existAdminUser = adminUserService.login(adminUser);
		return NONE;
	}

     去业务层实现该方法

	/**
	 * 业务层登录的方法
	 * @param adminUser
	 * @return
	 */
	public AdminUser login(AdminUser adminUser) {
		return adminUserDao.login(adminUser);
	}
     

     再去dao中完成该方法

public class AdminUserDao extends HibernateDaoSupport{
	/**
	 * Dao中的登录方法
	 * @param adminUser
	 * @return
	 */
	public AdminUser login(AdminUser adminUser) {	
		//编写hql,去查询adminUser这个对象
		String hql="from AdminUser where username = ? and password = ?";
		//获得模板,并调用find方法,传入相应的参数(可从adminUser中获得),这样可以得到一个对象,在此时list集合形式
		List<AdminUser> list = this.getHibernateTemplate().find(hql,adminUser.getUsername(),adminUser.getPassword());
		//对集合进行判断
		if (list != null && list.size()>0) {
			return list.get(0);  //因为只能查到一个
		}
		return null;
	}

}
     

     此时AdminUserAction中的existAdminUser就有值了,并进行相应的判断

	/**
	 * 后台登录的方法
	 */
	public String login(){
		//调用Service完成登录,传过来adminuser,得到一个新的AdminUser对象existAdminUser,
		AdminUser existAdminUser = adminUserService.login(adminUser);
		if (existAdminUser == null) {
			//登录失败
			this.addActionError("亲,您的用户名或密码错误,请重新输入!");
			//返回失败页面
			return "loginFail";
		} else {
			//登录成功
			//将用户信息存到session中
			ServletActionContext.getRequest().getSession().setAttribute("existAdminUser", existAdminUser);
			return "loginSuccess";
		}
		
	}
     

      接下来只需要去Struts中补充配置loginFail和loginSuccess就OK

		<!-- 配置后台登录的Action,让它跳转到某一个页面,在这是一个成功页面,一个失败页面-->
		<action name="adminUser_*" class="adminUserAction" method="{1}">
			<result name="loginFail">/admin/index.jsp</result>
			<result name="loginSuccess">/admin/home.jsp</result>
		</action>


      然后获得session中的用户名进行登录



     进行测试!

     登录成功!




     上述是通过后台登录的一个小demo来简单介绍SSH的应用,不了解SSH的可参考SSH初探














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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值