文章目录
用SpringBoot的项目实现登录和发表文章功能
1. SpringBoot创建及使用 :约定大于配置
详情参考这篇文章: SpringBoot项目创建和HTML语法
2. 用SpringBoot完成用户登录操作
2.1 流程:
1:用户通过首页index.html点击超链接[用户登录]来到登录页面login.html
2:在登录页面你上有两个输入框:用户名和密码
用户在这里输入登录信息后点击登录按钮提交表单
3:服务端处理登录验证
4:响应用户登录结果(成功或失败)
2.2 实现步骤
1:在static目录下定义需要使用的页面
1.1:login.html 登录页面
该页面中form表单action=“/loginUser”
1.2:login_info_error.html
当用户输入登录信息有误(比如空着不输入内容就点击登录)时提示该页面
居中显示一行字:登录信息输入有误,请重新登录
1.3:login_success.html
登录成功提示页面,居中显示一行字:登录成功,欢迎回来
1.4:login_fail.html
登录失败提示页面,居中显示一行字:登陆失败,用户名或密码错误.
2:在UserController上定义处理登录的方法:login()
在该方法上添加注解:@RequestMapping(“/loginUser”)
3:实现login方法逻辑
3.1:通过request获取表单提交的用户名和密码
3.2:读取users目录下对应的用户文件(反序列化)
3.3:比对用户密码
3.4:响应用户登录成功或失败页面
登录成功的标准:用户名和密码都输入正确
登录失败的标准:用户名错误或密码错误
2.3 在entity包下创建User
package com.tedu.springboot2209.entity;
import java.io.Serializable;
/**
* 用户对象,该类的每一个实例表示一个注册用户信息
*/
public class User implements Serializable {
private String username;
private String password;
private String nickname;
private int age;
public User(){
}
public User(String username, String password, String nickname, int age) {
this.username = username;
this.password = password;
this.nickname = nickname;
this.age = age;
}
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 getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", nickname='" + nickname + '\'' +
", age=" + age +
'}';
}
}
2.4 创建userController类
package com.tedu.springboot2209.controller;
import com.tedu.springboot2209.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* 我们定义的用于处理某个请求的类(某个Controller类)都需要在类上添加注解@Controller
* 这样SpringMVC框架才能识别这个类
*/
@Controller
public class UserController {
//用来表示保存所有用户信息的目录:users
private static File userDir;
static {
userDir = new File("./users")