先上图
用户服务器开发
1. login.html和register.html页面,就一个form表单,登录和注册一样,改下地址就行了
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<title>登录</title>
<meta charset="utf-8">
</head>
<body>
<form action="/login" method="post">
<label>用户名</label>
<input type="text" name="username">
<label>密码</label>
<input type="password" name="password">
<button>登录</button>
<p style="color: red" th:if="${msg ne null}" th:text="${msg}"></p>
</form>
</body>
</html>
2. person.html页面,用户中心,可以展示一些个人信息,游戏设置
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<title>个人中心</title>
<meta charset="utf-8">
</head>
<body>
id:<span th:text="${id}"></span><br>
用户名:<span th:text="${username}"></span>
<form action="/game">
<label>选择颜色</label>
<select name="color">
<option value="red">红</option>
<option value="green">绿</option>
<option value="blue">蓝</option>
<option value="purple">紫</option>
<option value="gray">灰</option>
<option value="cyan">青</option>
<option value="yellow">黄</option>
<option value="orange">橙</option>
</select>
<button>确定</button>
</form>
</body>
</html>
3. UserController用户控制器
package tank.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import tank.service.UserService;
import javax.servlet.http.HttpSession;
@Controller
public class UserController {
@Autowired
UserService userService;
@GetMapping("login")
public String login() {
return "user/login";
}
@PostMapping("login")
public ModelAndView login(@RequestParam("username") String username,
@RequestParam("password") String password,
HttpSession session) {
ModelAndView mv = new ModelAndView();
if (userService.auth(username, password, session)) {
mv.setViewName("redirect:person");
} else {
mv.addObject("msg", "账号或密码错误");
mv.setViewName("user/login");
}
return mv;
}
@GetMapping("register")
public String register() {
return "user/register";
}
@PostMapping("register")
public ModelAndView register(@RequestParam("username") String username, @RequestParam("password") String password) {
ModelAndView mv = new ModelAndView();
if (userService.create(username, password)) {
mv.setViewName("redirect:login");
} else {
mv.addObject("msg", "注册失败");
mv.setViewName("user/register");
}
return mv;
}
@GetMapping("person")
public ModelAndView person(HttpSession session) {
ModelAndView mv = new ModelAndView();
mv.addObject("id", session.getAttribute("id"));
mv.addObject("username", session.getAttribute("username"));
mv.setViewName("user/person");
return mv;
}
}
4. GameController游戏控制器
package tank.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
@Controller
public class GameController {
@GetMapping("game")
public ModelAndView game(@RequestParam("color") String color, HttpSession session) {
ModelAndView mv = new ModelAndView();
mv.addObject("color", color);
mv.setViewName("game");
return mv;
}
}
5. UserService用户服务处理
package tank.service;
import tank.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpSession;
import java.util.Map;
@Service
public class UserService {
@Autowired(required = false)
UserMapper userMapper;
public Boolean auth(String username, String password, HttpSession session) {
Map<String, Object> map = userMapper.auth(username, password);
if (map != null) {
session.setAttribute("id", map.get("id"));
session.setAttribute("username", map.get("username"));
return true;
}
return false;
}
public Boolean create(String username, String password) {
return userMapper.create(username, password) == 1;
}
}
6. UserMapper文件
package tank.mapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
@Mapper
public interface UserMapper {
Map<String, Object> auth(String username, String password);
int create(String username, String password);
}
7. user.xml(mybatis文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="tank.mapper.UserMapper">
<insert id="create" keyProperty="id">
insert into user(username, password) value (#{0}, #{1})
</insert>
<select id="auth" resultType="Map">
select id, username from user where username = #{0} and password = #{1}
</select>
</mapper>
上面这些我相信大家都基本写过百十遍了,不解释了!!
目录结构