SpringBoot项目实战杂货铺——登录注册界面怎么写好看,2024高级Java笔试总结

那么如此拦截有什么效果呢?效果就是当你未登录的情况下,访问任何内部请求都会统一跳转到登录界面,登录以后方可进入主页。

结果就是,如果你没登陆,要么登录进入系统,要么注册以后通过登录进入系统。

二、登录认证


// 配置登录请求相关内容

http.formLogin()

.usernameParameter(“idNumber”) // 登录表单的账号name属性值,默认username。可自行通过此语句配置

.passwordParameter(“password”) // 登录表单的密码name属性值,默认password。可自行通过此语句配置

.loginPage(“/store/loginPage”) // 当用户未登录的时候默认跳转到登录界面

.loginProcessingUrl(“/loginSys”) // 对应登录表单上的action属性值

.defaultSuccessUrl(“/store/homepage”,true) // 登录成功后,响应重定向的位置

;

由以上代码块,相信通过注释就可以看出来他们所代表的意思,loginPage就是未登录时我们要请求的地址,loginProcessingUrl对应的就是以上HTML代码中form表单上的action属性,defaultSuccessUrl登录认证成功后我们跳转的界面请求。

当我们登录失败的时候,弹出提示:

登录失败提示

三、登录界面记住我操作


记住我勾选以后有什么效果呢?就是当你将网页关闭以后,不用再次登录,只要你以前登录过,就无需再次输入密码进行登录。

// remember-Me操作

http.rememberMe()

//.rememberMeParameter(“”) // 记住我参数名,默认是remember-me

.tokenValiditySeconds(60*60) // 设置记住我的时间,单位是秒,默认是7天

.tokenRepository(persistentTokenRepository)

.userDetailsService(userLoginService)

;

由图上代码可以看出,点击记住我的默认属性值是remember-me,可通过rememberMeParameter自行设置,而tokenValiditySeconds的意思就是记住你的时间,代码中的60*60就是记住你一个小时,这一个小时之内免登录。

四、退出操作


// 配置退出登录的请求

http.logout()

.invalidateHttpSession(true) // 回收HttpSession对象,回收之前调用HttpSession.invalidate(),默认true

.clearAuthentication(true) // 退出之前清空Security记录的用户登录标记,默认true

// .addLogoutHandler() // 增加退出处理器

.logoutSuccessUrl(“/store/loginPage”) // 退出后回到登录界面

.logoutUrl(“/logout”);

退出

如以上代码的注释。

五、密码加密解密操作


在使用SpringSecurity认证的时候,必须有一个对密码的加密解密的操作,那么此处我们是针对密码做一个MD5的加密认证操作,那么在注册存储密码的时候,我们就需要将密码通过SpringSecurity的加密方式存储密码。

我们来看看数据库中锁存储的值:

加密以后的密码

代码展示:

// 密码加密方式:MD5

try {

MessageDigest digest = MessageDigest.getInstance(“MD5”);

byte[] tmp = digest.digest(user.getPassword().getBytes());

// 转换为以十六进制的无符号整数形式,用一个整数参数的字符串表示形式

// 可自行定义,但是要与SpringSecurity中的密码校验方式相同

StringBuilder passWord = new StringBuilder(“”);

for(byte b : tmp){

String s = Integer.toHexString(b & 0xFF);

if(s.length() == 1){

passWord.append(“0”);

}

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

面试真题

Spring源码笔记

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

[外链图片转存中…(img-PMsnRyQ8-1711156804356)]

[外链图片转存中…(img-vJDfRQka-1711156804356)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于涉及到前后端交互,这里提供一个完整的Spring Boot和Vue.js的文件上传功能模块的代码示例。 1. 后端代码 在Spring Boot中,我们可以使用MultipartFile类处理文件上传。我们可以定义一个Controller来处理上传请求,并在该Controller中使用MultipartFile类来处理上传文件。以下是一个简单的文件上传Controller示例: ```java @RestController public class FileUploadController { @PostMapping("/upload") public ResponseEntity<?> uploadFile(@RequestParam("file") MultipartFile file) { try { // 处理文件上传逻辑 return ResponseEntity.ok().build(); } catch (Exception e) { // 处理异常情况 return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } } } ``` 2. 前端代码 在Vue.js中,我们可以使用Vue.js的Axios库来处理文件上传。Axios是一个基于Promise的HTTP客户端,可以在浏览器和Node.js中使用。以下是一个简单的文件上传Vue组件示例: ```vue <template> <div> <input type="file" @change="selectFile" /> <button @click="uploadFile">Upload</button> </div> </template> <script> import axios from "axios"; export default { data() { return { selectedFile: null, }; }, methods: { selectFile(event) { this.selectedFile = event.target.files[0]; }, uploadFile() { let formData = new FormData(); formData.append("file", this.selectedFile); axios .post("/upload", formData, { headers: { "Content-Type": "multipart/form-data", }, }) .then((response) => { console.log(response.data); }) .catch((error) => { console.log(error); }); }, }, }; </script> ``` 在这个组件中,我们使用了一个input元素来让用户选择要上传的文件,并使用了一个button元素来触发文件上传操作。在selectFile方法中,我们使用了HTML5的File API来获取用户选择的文件,并将其保存到selectedFile变量中。在uploadFile方法中,我们创建了一个FormData对象,并将selectedFile添加到其中,然后使用Axios库的post方法发送文件上传请求。在请求头中,我们指定了Content-Type为multipart/form-data。 以上就是一个完整的Spring Boot和Vue.js的文件上传功能模块的代码示例。需要注意的是,由于涉及到文件上传,需要特别注意文件大小、文件类型、文件重名等问题,以确保系统的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值