1登录界面跳转
1.1将登录页面写入前端页面的use.jsp
将此行代码写入WEB-INF>jsp>front>user.jsp
<jsp:forward page="/WEB-INF/jsp/front/login.jsp"/>
1.2登录login界面
1.2.1 进入src>java>entity>user类,根据sql数据库的表内容写入public User代码:
package com.cn.panda.entity;
public class User {
private int id=0;//用户id
private String username;
private String password;
private String realname="";//真实姓名
private String phone="";//手机号
private String idcard="";//身份证号
private int gender=0;//男或女
private int role=0;//角色
public User() {
}
public User(int id, String username, String password, String realname, String phone, String idcard, int gender, int role) {
this.id = id;
this.username = username;
this.password = password;
this.realname = realname;
this.phone = phone;
this.idcard = idcard;
this.gender = gender;
this.role = role;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", realname='" + realname + '\'' +
", phone='" + phone + '\'' +
", idcard='" + idcard + '\'' +
", gender=" + gender +
", role=" + role +
'}';
}
}
1.2.2 对User接口文件UserMapper.java的写入
在接口使用@Repository注解,并在接口中生命方法getUserByUsernameAndPassword(User user);。进入src>java>mapper>UserMapper接口,其模块代码如下:
package com.cn.panda.mapper;
import com.cn.panda.entity.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper {
User findUserById(int id);
//依据用户名和密码查询用户
User getUserByUsernameAndPassword(User user);
}
1.2.3 写入UserMapper.xml映射文件
进入src>main>resoruces>com.cn.panda.mapper>UserMapper.xml文件夹下写入如下代码段:
<?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="com.cn.panda.mapper.UserMapper">
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id = #{id}
</select>
<select id="getUserByUsernameAndPassword" parameterType="user" resultType="user">
SELECT * FROM user WHERE username=#{username} AND password=#{password};
</select>
</mapper>
1.2.4 在UserService中加入方法
在main>java>com.cn.panda>service>impl>UserServicelmpl.java文件夹中写入如下代码段:
package com.cn.panda.service.impl;
import com.cn.panda.entity.User;
import com.cn.panda.mapper.UserMapper;
import com.cn.panda.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
OK 了
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
public User queryUser(int id) {
User user =userMapper.findUserById(id);
return user;
}
@Override
public User getUserByUsernameAndPassword(User user){
return userMapper.getUserByUsernameAndPassword(user);
}
}
1.2.5 UserController写入注解和方法
进入main>java>com.cn.panda>controller>UserController文件夹下写入如下代码段:
package com.cn.panda.controller;
import com.cn.panda.entity.User;
import com.cn.panda.service.UserService;
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.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("getUser")
public String getUser(int id) {
User user = userService.queryUser(id);
System.out.println(user);
return "front/user";
}
@PostMapping("login")
public String getUser(User user, HttpServletRequest request, HttpSession session){
User u= userService.getUserByUsernameAndPassword(user);
System.out.println(u);
if (u!=null){
System.out.println("登录成功!真棒");
session.setAttribute("user",u);
return "";
}else{
System.out.println("登录失败哦小宝贝!");
//如果登录失败或错误则应该跳转至login界面或者专门的错误提醒界面
return "front/login";
}
}
}
1.2.6 运行测试
有的小伙伴在这里运行的时候,输入账号名和密码后会发现页面跳转错误,这是因为我还没有去写登录后的界面,在代码中可以看到这行代码:return "";引号中的部分留待后续开发。
登录成功可以在后台看到有sql的数据检测:
若账号名和密码错误,页面刷新,同时可以看到后台显示登录失败提示:
至此登录界面的跳转结束,跳转后的界面等待后续开发。