首页 > 程序开发 > 综合编程 > 其他综合 >

SSM 登录演示

2017-08-21

SSM 登录演示。

2017-08-17 SSM 登录演示

前言

上一篇已经将 SSM 框架的环境搭建好了,还没来得及看的可以看链接:2017-08-17 SSM 环境搭建

而这一篇则是对 SSM 框架的初步使用,整个项目在上一篇有提供。

本案例以 test 数据库,创建 user 表为例,添加以下字段:

字段名 属性
id int(11)
name varchar(20)
password varchar(32)

密码一般可以设置为 32 位,后期使用 MD5 加密后长度就是 32 位

然后往里面插入相关的数据

可以使用以下代码创建数据库,创建表和添加数据

DROP DATABASE test;
CREATE DATABASE test;
USE test;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `password` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'aaa', 'aaa');
INSERT INTO `user` VALUES ('2', 'bbb', 'bbb');
INSERT INTO `user` VALUES ('3', 'ccc', 'ccc');

根据工程截图,创建对应的 Java 文件

ssm 框架工程截图]

com.demo.bean 下的 User.java

根据数据库表创建对应的 bean

package com.demo.bean;

public class User {
    private int id; // 用户 id
    private String name; // 用户名
    private String password; // 用户密码

    public User() {
        super();
    }
    public User(String name, String password) {
        super();
        this.name = name;
        this.password = password;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
    }
}

com.demo.mapper 下的 UserMapper.java

package com.demo.mapper;

import com.demo.bean.User;

public interface UserMapper { 

    // 根据用户名和密码查找用户
    public User findUserByNameAndPassword(User user);
}

com.demo.mapper 下的 UserMapper.xml

该文件和 UserMapper.java 对应





    
        

com.demo.dao 下的 UseDao.java

package com.demo.dao;

import javax.annotation.Resource;
import org.springframework.stereotype.Repository;
import com.demo.bean.User;
import com.demo.mapper.UserMapper;

@Repository
public class UserDao {

    @Resource 
    private UserMapper userMapper;

    // 根据用户名和密码查找用户
    public User findUserByNameAndPassword(User user) {
        return userMapper.findUserByNameAndPassword(user);
    }
}

com.demo.service 下的 UserService.java

package com.demo.service;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.demo.bean.User;
import com.demo.dao.UserDao;

@Service
public class UserService {

    @Resource()
    private UserDao userDao;

    // 根据用户名和密码查找用户
    public User findUserByNameAndPassword(User user) {
        return userDao.findUserByNameAndPassword(user);
    }
}

com.demo.controller 下的 UserController.java

package com.demo.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.demo.bean.User;
import com.demo.service.UserService;

@Controller
public class UserController  {

    @Resource(name="userService")
    private UserService userService;

    // 跳转到登陆页面
    @RequestMapping("loginForm.do")
    public String loginForm() {
        return "loginForm";
    }

    // 登陆验证
    @RequestMapping("/login.do")
    public ModelAndView login(String name, String password, HttpSession session){
        ModelAndView modelAndView = new ModelAndView();
        User user = new User();
        user.setName(name);
        user.setPassword(password);
        user = userService.findUserByNameAndPassword(user);

        if(null != user) {
            //登录成功,将 user 对象存入 session 并跳转到 page/success.jsp 页面
            session.setAttribute("user", user);
            //转发到main请求
            modelAndView.setViewName("success");
        } else {
            //登录失败,设置失败信息,并调转到登录页面
            modelAndView.setViewName("loginForm");
        }
        return modelAndView;
    }
}

JSP 页面实现

WEB-INF/pages/loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

用户名: 密码:

WEB-INF/pages/success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

欢迎[${sessionScope.user.name }]登录!

测试

然后运行项目

浏览器中输入链接:http://localhost:8080/test_SSM/loginForm.do

输入正确账号密码时则跳转到 WEB-INF/pages/success.jsp

输入错误则跳转到 WEB-INF/pages/loginForm.jsp 继续登录

登录演示到此结束

后记

本文基于个人的学习
分享出来纯当给大家参考一下,也当作自己的笔记

编辑:HochenChong
时间:2017-08-17
相关文章
最新文章
热点推荐