JavaEE:Spring Web简单小项目实践二(用户登录实现)
创始人
2025-01-10 14:33:59
0

学习目的:

1、理解前后端交互过程

2、学习接口传参,数据返回以及页面展示

1、准备工作

创建SpringBoot项目,引入Spring Web依赖,添加前端页面到项目中。

前端代码:

login.html

             登录页面    

用户登录

用户名:
密码:

index.html

                       用户登录首页    登录人:       

2、约定前后端交互接口

需求分析:

对于后端来说,不涉及前端页面展示的设计,只需要实现两个功能:

登录页面:通过获取账号和密码,校验输入的账号密码是否正确,并反馈给前端

首页:告知前端当前登录用户。如果当前已有用户登录,则返回登录的账号,没有则返回空

1、校验接口

接口定义:

请求路径:/user/login

接口描述:校验账号密码是否正确

请求参数:

响应数据:

Content-Type:text/html

响应内容:true   账号密码验证成功 / false  账号密码验证失败

2、查询用户登录接口

接口定义:

请求路径:/user/getLoginUser

接口描述:查询当前登录的用户

请求参数:

响应数据:

Content-Type:text/html

响应内容:zhangsan

                (返回当前登录的用户)

3、实现服务端代码

1、校验接口

写法一:

import jakarta.servlet.http.HttpSession; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  @RestController() @RequestMapping("/user") public class LoginController {     @RequestMapping(value = "/login")     public Boolean login(String userName, String password, HttpSession session) {         //账号或密码为空         if(userName == null || password == null) {             return false;         }         //校验账号密码是否正确         //因为没有引进数据库,所以这边先采用硬编码把它写死         if("zhangsan".equals(userName) && "123456".equals(password)) {             //账号密码校验成功,存储到session中             session.setAttribute("username", userName);             return true;         }         return false;     } }

写法二:

import jakarta.servlet.http.HttpSession; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  @RestController() @RequestMapping("/user") public class LoginController {     @RequestMapping(value = "/login")     public Boolean login(String userName, String password, HttpSession session) {         //写法二:         //校验账号密码是否为空         if (!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)) {             return false;         }                  //校验账户密码是否正确         if (!"zhangsan".equals(userName) || !"123456".equals(password)) {             return false;         }         session.setAttribute("userName", userName);         return true;     } }

StringUtils.hasLength()Spring提供的一个工具方法,判断字符串是否有值

字符串为 null "" 时,返回 false,其他情况返回 true

2、查询用户登录接口

import jakarta.servlet.http.HttpSession; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  @RestController() @RequestMapping("/user") public class LoginController {        @RequestMapping("/getLoginUser")         public String getLoginUser(HttpSession session) {         //从session中获取用户登录信息         String userName = (String) session.getAttribute("username");         //如果用户已经登录,session不为空,则直接返回用户信息         if (userName != null) {             return userName;         }         return "";     } } 

4、调整前端页面代码

1、调整登录页面login.html

        对于前端而言,当点击登录按钮时,需要把用户登录的信息传递到后端进行校验,后端校验成功,则跳转到首页 index.html;后端校验失败,则弹出警告

    

2、调整首页代码

        调整首行代码只需显示当前登录用户即可,当前登录用户需要从后端获取,并显示到前端

    

5、运行测试

session存储在内存中,只要服务器没重启,即使多次刷新,仍可以显示登录人信息~

相关内容

热门资讯

步骤辅助!wepoker有没有... 步骤辅助!wepoker有没有透视方法,wepoker私人局辅助,分享教程(有挂工具)1、游戏颠覆性...
手段辅助!poker红龙辅助,... 手段辅助!poker红龙辅助,德扑之心免费透视,有挂教程(有挂辅助)1、玩家可以在德扑之心免费透视透...
机巧辅助!wepoker透视最... 机巧辅助!wepoker透视最简单三个步骤,wepoker代打辅助,教你教程(有挂攻略)1、下载好w...
模板辅助!WePOker有没有... 模板辅助!WePOker有没有透视方法,菠萝德普辅助器免费版在哪里,了解教程(有挂实锤)1、首先打开...
技法辅助!wepoker透视脚... 技法辅助!wepoker透视脚本苹果版,wepoker私人局有透视吗,必备教程(新版有挂)1、金币登...
妙计辅助!哈糖大菠萝可以开挂吗... 妙计辅助!哈糖大菠萝可以开挂吗,hhpoker德州挂真的有吗,详细教程(果真有挂)1、哈糖大菠萝可以...
秘籍辅助!wepoker免费辅... 秘籍辅助!wepoker免费辅助器,德普之星透视辅助软件是真的吗,总结教程(有挂技巧)1、许多玩家不...
教材辅助!wepoker透视辅... 教材辅助!wepoker透视辅助下载,we poker游戏下,有挂教程(有挂细节)1、教材辅助!we...
绝活辅助!拱趴大菠萝十三水作弊... 绝活辅助!拱趴大菠萝十三水作弊,wepoker有没有机器人,专业教程(有挂讲解)1、任何拱趴大菠萝十...
讲义辅助!aapoker能控制... 讲义辅助!aapoker能控制牌吗,约局吧能不能开挂,必备教程(存在有挂)1、实时约局吧能不能开挂透...