执行SQL命令生成用户表t_user
2、用户表添加记录
INSERT INTO `t_user` VALUES ('1', 'admin', '12345', '15734345678', '2021-09-02 08:40:35', '0');
INSERT INTO `t_user` VALUES ('2', 'alice', '11111', '13956567889', '2021-10-20 09:51:43', '1');
INSERT INTO `t_user` VALUES ('3', 'brown', '22222', '13956678907', '2022-03-21 09:52:36', '1');
INSERT INTO `t_user` VALUES ('4', 'linda', '33333', '15890905678', '2022-05-25 09:52:56', '1');
创建Maven项目
添加相关依赖
在pom.xml文件里添加相关依赖
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
SSMLogin
spring-core
spring-beans
spring-context
spring-test
spring-jdbc
mysql-connector-java
druid
mybatis
mybatis-spring
log4j
junit
spring-web
spring-webmvc
jstl
javax.servlet-api
依赖下载
在resources目录里创建log4j.properties文件
log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/ssm.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
在resources目录里创建jdbc.properties
jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/ssmdb?useSSL=false
jdbc.username = root
jdbc.password = 903213
查看【Modules】内容
单击【OK】按钮
查看本机在局域网里的IP地址
本地或远程都可以访问http://10.0.1.92:8080/huawei/welcome.txt
本地或远程都可以访问http://10.0.1.92:8080/zsy/bear.png
创建用户实体类
package net.huawei.ssm.bean;
import java.util.Date;
public class User {
private int id;
private String username;
private String password;
private String telephone;
private Date registerTime;
private int popedom;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public Date getRegisterTime() {
return registerTime;
}
public void setRegisterTime(Date registerTime) {
this.registerTime = registerTime;
}
public int getPopedom() {
return popedom;
}
public void setPopedom(int popedom) {
this.popedom = popedom;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + ''' +
", password='" + password + ''' +
", telephone='" + telephone + ''' +
", registerTime=" + registerTime +
", popedom=" + popedom +
'}';
}
}
package net.huawei.ssm.mapper;
import net.huawei.ssm.bean.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper // 交给Spring容器管理
public interface UserMapper {
User login(@Param("username") String username, @Param("password") String password);
}
创建用户服务类
package net.huawei.ssm.service;
import net.huawei.ssm.bean.User;
import net.huawei.ssm.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service // 交给Spring容器管理
public class UserService {
@Autowired // 自动装配
private UserMapper userMapper;
public User login(String username, String password) {
return userMapper.login(username, password);
}
}
创建用户控制器
package net.huawei.ssm.controller;
import net.huawei.ssm.bean.User;
import net.huawei.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpSession;
@Controller // 交给Spring容器管理
@RequestMapping("/user") // 总路由
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/login") // 子路由
public String login(@RequestParam("username") String username,
@RequestParam("password") String password,
HttpSession session) {
// 调用用户服务对象的登录方法
User user = userService.login(username, password);
// 判断用户是否登录成功
if (user != null) {
// 将登录用户名写入会话
session.setAttribute("username", username);
// 删除会话里可能存在的登录错误提示信息
if (session.getAttribute("loginMsg") != null) {
session.removeAttribute("loginMsg");
}
System.out.println(user);
// 判断用户角色,跳转到不同页面
if (user.getPopedom() == 0) { // 管理员
// 跳转到后台管理页面、
return "backend/management"; // 逻辑视图名
} else { // 普通用户
// 跳转到前台首页
return "frontend/index"; // 逻辑视图名
}
} else {
// 将登录错误信息写入会话
session.setAttribute("loginMsg", "用户名或密码错误!");
// 跳转到前台登录页面
return "frontend/login"; // 逻辑视图名
}
}
@RequestMapping("/logout")
public String logout(HttpSession session) {
// 删除会话里保存的用户名信息
session.removeAttribute("username");
// 结束会话
session.invalidate();
// 跳转到前台登录页面
return "frontend/login"; // 逻辑视图名
}
}
启动服务器,查看效果
单击【登录】按钮



