spring mvc +hibernate 登录

最近几天没写东西了,呵呵,并不是没学习了,一直在努力了!前不久我在自己的QQ删了一个人,其实说真的我不想了,但是我太感性了,因为现在的我必须学东西了,有时候我连自己真的都控制不了啊,没办法,我只能对自己这样了,我没别的选择了,因为我必须理性啊,有时候真的希望自己冷血了,但是我真的做不到啊!呵呵,不乱砍了,现在开始讲spring+hibernate的登录了,

前台页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  购物系统
  </head>
 <SCRIPT Language = javascript>
 <!--
  //下面的副程序将执行资料检查
  function isValid()
  { 
   //下面的if判断语句将检查是否输入帐号资料
   if(frmLogin.name.value == "")
   { 
    window.alert("您必须完成用户名的输入!");
    //显示错误信息
   document.frmLogin.elements(0).focus();
    //将光标移至帐号输入栏  
    return  false;
   }
   
   //下面的if判断语句将检查是否输入帐号密码
   if(frmLogin.password.value == "")
   {
    window.alert("您必须完成密码的输入!");
   //显示错误信息
    document.frmLogin.elements(1).focus();
    //将光标移至密码输入栏
    return  false;  //离开函数
   }
 
   frmLogin.submit(); //送出表单中的资料
 }
  -->
  </SCRIPT>  
  <body>
  <form  name="frmLogin" action="login.html" method="POST" onSubmit="return isValid(this);">
   用户名<input type="text" name="name" id="name"/><br>
   密码<input type="password" name="password" id="password" />   <br>
   <input type="submit" name="submit" value="登录"/>
   <input type="reset" name="reset" value="重置"/>
    </form>
  </body>
</html>
LoginAction 代码如下:

package org.scuta.action;

 

import java.util.List;

import javax.servlet.http.HttpSession;

import org.scuta.dto.LoginDTO;
import org.scuta.model.ChanPin;
import org.scuta.service.IListProductService;
import org.scuta.service.ILoginService;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class LoginAction extends SimpleFormController {
 private String cancelView;
 private ILoginService loginService;
   public String getCancelView() {
  return cancelView;
 }

 public void setCancelView(String cancelView) {
  this.cancelView = cancelView;
 }

 public ILoginService getLoginService() {
  return loginService;
 }

 public void setLoginService(ILoginService loginService) {
  this.loginService = loginService;
 }

 public ModelAndView onSubmit(Object command,BindException exception) throws Exception {
  LoginDTO loginDTO = (LoginDTO) command;
  Boolean test = loginService.Login(loginDTO.getName(),
    loginDTO.getPassword());
  if (test) {
   
    return new ModelAndView (this.getSuccessView());
  } else {
   return new ModelAndView (this.getCancelView());
  }
 }

}
LoginDAO类代码如下:


public interface ILoginDAO {
   public List<User> Login(String name,String password);
}
public class LoginDAOImpl extends GenericDAOImpl<User> implements ILoginDAO{
 
 public List<User> Login(String name,String password){
      String hql="from User where username=?";
      return this.find(hql,name);
      
      }
}
一个接口一个实现类.

LoginService类代码如下:

public interface ILoginService {
      public boolean Login(String name,String password);
     
}

public class LoginServiceImpl implements ILoginService {
 private ILoginDAO loginDAO;

 public ILoginDAO getLoginDAO() {
  return loginDAO;
 }

 public void setLoginDAO(ILoginDAO loginDAO) {
  this.loginDAO = loginDAO;
 }

 public boolean Login(String name, String password) {
  // TODO Auto-generated method stub
  List<User> user =loginDAO.Login(name, password);
  if (user.size()==0) {
   return false;
  } else if (user.get(0).getPassword().equals(password)) {
   return true;
  }      else {
    return false;
  }
 }

}
同样了,在spring里面有一个IOC依赖注入,在service层注入DAO层,再在Controller层注入service层了,service层是业务逻辑层,DAO层是数据库持久层,controller层是控制层,转发页面,现在强调的是每层都是分层清晰的,功能单一的,不要混乱,尤其是写代码,不能把业务逻辑代码写到DAO层,就是不要混淆各层的任务了!这一点我也在学习过程中了,其实前不久我做了一个这种架构的系统了,但是由于实际经验实在是太少了,所以很多东西还在摸索阶段了,虽说按照这种方法做的,但是没理解了!最近心情不太爽了,各方面的原因了,看设计模式看了两个多月了,昨天晚上的确有点感觉了,本身想写点感受的,但是昨天又忘了,日子还长,一有感觉我就会发表自己的观点了!呵呵!加油了!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值