SSM整合的第一个登录案例(详细)

 SSM整合


1.用IDea创建一个maven的项目

2.导入jar包(节点)

我这里包括所有的节点(至少登录是够用的):



  4.0.0
  cn.happy
  Subms-SSM
  war
  1.0-SNAPSHOT
  Subms-SSM Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    

    
      org.springframework
      spring-jdbc
      4.3.8.RELEASE
    


    
      log4j
      log4j
      1.2.17
    
    
    
      org.mybatis
      mybatis-spring
      1.2.0
    

    
    
      org.springframework
      spring-web
      4.3.9.RELEASE
    

    
    
      javaee
      javaee-api
      5
    
    
    
      javax.servlet
      jstl
      1.2
      runtime
    

    
    
      org.springframework
      spring-webmvc
      4.3.7.RELEASE
    
    
    
      org.springframework
      spring-web
      4.3.7.RELEASE
    

    
      com.alibaba
      fastjson
      1.2.31
    

    
    
      org.mybatis
      mybatis
      3.2.2
    
    
      asm
      asm
      3.3.1
    
    
      com.fasterxml.jackson.core
      jackson-core
      2.8.1
    

    
      com.fasterxml.jackson.core
      jackson-databind
      2.5.1
    




  
  
    
      
        src/main/java
        
          **/*.xml
        
      
    
  


3.我们配置xml文件  包括myBatis-config.xml     applicationContext.xml   jdbc.properties  等  还有web.xml

在myBatis-config.xml 我们无需配置太多 只要一个实体类别名就好了。





    
       
    


jdbc.properties:连接数据库的。

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///subms
jdbc.username=root
jdbc.password=


applicationContext.xml  是最重要的配置。



    
    
    
     
    
     
         
         
     

    
   
    
    
        
        
        
        
    

    
    
        
        
    

    
    
        
    

    
    
        
    

    
    



web.xml

我们这里面连接的都是springmvc就是上面的applicationContext.xml文件,另外的就是一些过滤器。。。




  Archetype Created Web Application
  
  
    contextConfigLocation
    classpath:applicationContext.xml
  

  
  
    CharactorEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      utf-8
    
    
      forceEncoding
      true
    
  

  
    CharactorEncodingFilter
    /*
  

  
    org.springframework.web.context.ContextLoaderListener
  


  
  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:applicationContext.xml
    
    1
  
  
    springmvc
    /
  



  
  
    default
    *.js
  
  
    default
    *.css
  
  
    default
    *.jpg
  
  
    default
    *.bmp
  
  
    default
    *.png
  
  
    default
    *.gif
  
  
    login.jsp
  


这些都好了我们就开始 下一步了

4.搭架构。

SSM整合的第一个登录案例(详细)_第1张图片


大致上就是图上的那样的,我们先从 实体类开始 ,

package cn.smbms.entity;

import java.util.Date;

/**
 * Created by Administrator on 2017/7/3.
 */
//`id``userCode``userName``userPassword``gender``birthday``phone``address``userRole``createBy``createDate``modifyBy``modfiyDate`
public class User {
    private Integer id; //id
    private String userCode; //用户编码
    private String userName;//用户名称
    private String userPassword; //用户密码
    private int gender;     //性别
    private Date birthday;   //出生日期
    private String phone;   //电话
    private String address;   //地址
    private int userRole;   //用户角色
    private int createdBy;   //创建者
    private Date creationDate;   //创建时间
    private int modifyBy;   //更新者
    private Date modfiyDate;   //更新时间

    private Role role;

    public Role getRole() {
        return role;
    }

    public void setRole(Role role) {
        this.role = role;
    }


    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getId() {
        return id;
    }

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

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public String getUserPassword() {
        return userPassword;
    }

    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }

    public int getGender() {
        return gender;
    }

    public void setGender(int gender) {
        this.gender = gender;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getUserRole() {
        return userRole;
    }

    public void setUserRole(int userRole) {
        this.userRole = userRole;
    }

    public int getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(int createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    public int getModifyBy() {
        return modifyBy;
    }

    public void setModifyBy(int modifyBy) {
        this.modifyBy = modifyBy;
    }

    public Date getModfiyDate() {
        return modfiyDate;
    }

    public void setModfiyDate(Date modfiyDate) {
        this.modfiyDate = modfiyDate;
    }
}


然后我们可以开始接口和xml了,


        




我们的接口:

package cn.smbms.dao;

import cn.smbms.entity.User;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.List;

/**
 * Created by linlin on 2017/8/21.
 */
public interface IUserDao {
    public User isLogin(User user);
}

然后我们写Service

这里的接口和上面的一样的

package cn.smbms.service;

import cn.smbms.entity.User;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.List;

/**
 * Created by linlin on 2017/8/21.
 */
public interface IUserService {
    public User isLogin(User user);}

实现类:这里要说一下,首先它是业务层 ,所以要在类上面弄一个@Service的标识 在Controller里面我们会调用,

然后我们还要  声明一下dao下的接口并且给他一个注解,我们直接@Resouce的name值等于他的接口名就可以了,

然后重写方法。


import cn.smbms.dao.IUserDao;
import cn.smbms.entity.User;
import cn.smbms.service.IUserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;

/**
 * Created by linlin on 2017/8/21.
 */
@Service("userService")
public class IUserServiceImpl implements IUserService{
    @Resource(name="IUserDao")
    IUserDao userdao;
    public User isLogin(User user) {
        return userdao.isLogin(user);
    }


在然后就是Controller层的 这里我们的@Resouce的name是上面的@Service  这个方法上的@RequestMappin是页面上对应的。判断如果获取的值不是空的我们就登录成功跳转到 成功的页面,否则 还在login页面。

package cn.smbms.controller;

import cn.smbms.entity.User;
import cn.smbms.service.IUserService;
import cn.smbms.util.page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * Created by linlin on 2017/8/21.
 */
@Controller
public class UserController {
    @Resource(name = "userService")
    IUserService userService;

    @RequestMapping("/islogin")
    public String isLogin(User info) {
        User user = userService.isLogin(info);
        if (user != null && !user.getUserName().equals("")) {
            System.out.println("=========success");
            //login success
            return "welcome";
        } else {
            return "login";
        }
    }

最后我们开一下页面。还有一点注意,就是我们表单中文本框的name值一定是对应的是实体类,就像我们的userCode  和userPassword  就是和实体类对应一样的。 并且 表单提价的action的值就是我们Controller方法注解上的那个 @RequestMapping。

<%--
  Created by IntelliJ IDEA.
  User: linlin
  Date: 2017/7/12
  Time: 16:39
  To change this template use File | Settings | File Templates.
--%>

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"  %>
<%@ page import="java.util.Date" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>




    
    系统登录 - 超市账单管理系统
    


超市账单管理系统


演示结果:

SSM整合的第一个登录案例(详细)_第2张图片SSM整合的第一个登录案例(详细)_第3张图片

你可能感兴趣的:(SSM整合的第一个登录案例(详细))