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"%>


 
  购物系统
 
   
 
 
   用户名

   密码  

  
  
   
 

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 Login(String name,String password);
}
public class LoginDAOImpl extends GenericDAOImpl implements ILoginDAO{
 
 public List 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 =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层,就是不要混淆各层的任务了!这一点我也在学习过程中了,其实前不久我做了一个这种架构的系统了,但是由于实际经验实在是太少了,所以很多东西还在摸索阶段了,虽说按照这种方法做的,但是没理解了!最近心情不太爽了,各方面的原因了,看设计模式看了两个多月了,昨天晚上的确有点感觉了,本身想写点感受的,但是昨天又忘了,日子还长,一有感觉我就会发表自己的观点了!呵呵!加油了!

你可能感兴趣的:(spring,2.0,hibernate,spring,mvc,string,exception,login)