【Java】SSH框架功能实现 —— 一条功能线代码浅析

【前言】

       不到一个月的时间,璐小编成功完成SSH网上商城项目。写到博客第一句话以资鼓励~~
       上篇博客简单解析了SSH框架,本篇博客将以后台登录功能代码为线索,简单解析使用SSH框架如何实现一条功能线。
   

【SSH实现后台登录功能】

       看官先别急,先看看SSH功能一条线的导图,先在心底有个大概的印象,然后我们就粗发~~                                

       1.以后台登录为例。首先,我们要有登录的jsp页面。也要建立登录相关的Action类、Service类、Dao类(放到package里更便于管理)。


       2.Spring托管了Hibernate , Spring文件中也要有登录方法的service 和 dao 的注入引用。  
 <!-- 后台登录的Service -->
	 <bean id="adminUserService" class="cn.itcast.shop.adminuser.service.AdminUserService">
	 	<property name="adminUserDao" ref="adminUserDao"/>
	 </bean>
<!-- 后台登录的Dao -->
	<bean id="adminUserDao" class="cn.itcast.shop.adminuser.dao.AdminUserDao">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
       3. Jsp页面会涉及到我们的具体方法 —— action ,使用action接收我们一系列操作之后的返回值。
       参考以下代码,我们看到在form表单里,有一个action方法,它调用adminUser_login.action 。
       关键代码:

<form method="post" action="${pageContext.request.contextPath }/adminUser_login.action" target="_parent" name='theForm' οnsubmit="return validate()">
  <table cellspacing="0" cellpadding="0" style="margin-top: 100px" align="center">
  <tr>
    <td><img src="${pageContext.request.contextPath }/images/login.png" width="178" height="256" border="0" alt="SHOP" /></td>
    <td style="padding-left: 50px">
      <table>
      <tr>
        <td>管理员姓名:</td>
        <td><input type="text" name="username" /></td>
      </tr>
      <tr>
        <td>管理员密码:</td>
        <td><input type="password" name="password" /></td>
      </tr>
       ......

       4.AdminUserAction 中的login方法,调用 adminUserService,并且接收service 返回值。

/**
	 * Action层后台登录的方法
	 */
	public String login(){
		//调用service方法完成登录
		AdminUser existAdminUser = adminUserService.login(adminUser);
		if(existAdminUser==null){
			
			this.addActionError("亲,您的用户名或者密码错误!");
			return "loginFail";
			
		}else{
			//用户名或密码正确,登录成功
			ServletActionContext.getRequest().getSession().setAttribute("existAdminUser", existAdminUser);
			return "loginSuccess";
		}
		
		
	}

       5.通过AdminUserAction 层的login方法返回的字符串,我们需要在Struts 配置jsp页面和action的跳转关系。
<!-- 配置后台登录的Action -->
		<action name="adminUser_*" class="adminUserAction" method="{1}">
		      <result name="loginFail">/admin/index.jsp</result>
		      <result name="loginSuccess" type="redirect">/admin/home.jsp</result>
		</action>

        6.在AdminUserService层 的AdminUser login方法中,调用adminUserDao(数据库层,和数据库的数据打交道),并且接收Dao层的返回值。

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

       7.在AdminUserDao层的AdminUser login方法中,hql语句负责表明查询哪些表的哪些信息。然后我们就可以直接使用Hibernate 封装好的方法,进行数据库的操作。并将结果返回给前一层Service层。

	/**
 	 * Dao层后台登录方法
 	 * @author 璐
 	 *
	 */
	public class AdminUserDao extends HibernateDaoSupport{

		//Dao中的登录方法
		public AdminUser login(AdminUser adminUser) {
	            String hql="from AdminUser where username = ? and password = ?";
		    List<AdminUser>list= this.getHibernateTemplate().find(hql, adminUser.getUsername(),adminUser.getPassword());
		    if(list!=null && list.size()>0){
		       return list.get(0);			
		     }
		    return null;
	         }
        }

       8.之后,Service层将Dao层的结果返给Action层,Action将结果进行逻辑判断,然后通过Struts连接好的jsp页面,将功能效果显示在页面。

【小结】

       对于SSH框架的实现过程知识知道了一个大概,很多具体的知识为什么这么用,璐小编还需要再接再厉。

       See you  next one~~


  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值