上一篇已经将 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 文件
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