全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 928|回复: 17

[美国VPS] springmvc重定向有问

[复制链接]
发表于 2022-10-2 23:11:45 | 显示全部楼层 |阅读模式
本帖最后由 似幸识你 于 2022-10-2 23:15 编辑

刚学完ssm,准备来个宿舍管理系统,就重定向都直接卡住了

目前卡了个问题,求大佬帮忙看看  鞠躬了  用的thymeleaf解析  但是重定向好像跟thymeleaf没关系,我加上login.html还是找不到



为什么重定向必须要这样才能打开页面,isLogin方法不能直接重定向到login.html   有大佬帮忙看下嘛

发表于 2022-10-3 12:34:26 | 显示全部楼层
似幸识你 发表于 2022-10-3 12:01
你要注意你想直接访问/login.html以达到访问登录页的效果你只需要写一个映射@RequestMapping("/login.htm ...

像我这样写就行,明白重定向后浏览器发送的是一个请求就很好理解,你请求的uri肯定要映射一个handler来执行相关的业务逻辑。像这种没登录跳转登录页常规就是拿filter来做,不然每个方法里都来if else很不雅观。其次你学原版的ssm,ssh整合呀,基本的servlet编写是有必要的,后续的springboot无非就是把你做的配置给你做了让你专注业务,如果你不了解基本的原理及流程可能后面用springboot遇到问题都不知道如何排查,慢慢来吧

发表于 2022-10-2 23:21:11 | 显示全部楼层
资源路径问题,应该是没找到login页面
 楼主| 发表于 2022-10-2 23:30:00 | 显示全部楼层
loverhoc 发表于 2022-10-2 23:21
资源路径问题,应该是没找到login页面

thymeleaf解析器问题  好像只能图一写法- -
发表于 2022-10-3 01:03:39 来自手机 | 显示全部楼层
本帖最后由 darius 于 2022-10-3 11:40 编辑

你要写访问根节点/如果没登录就重定向到登录页的效果是吧,你重定向那块后面不加.html就是发的/login请求对应的就是你controller中的login方法,所以你如果注释了login方法然后就会404,仔细理解下吧
 楼主| 发表于 2022-10-3 10:22:18 来自手机 | 显示全部楼层
darius 发表于 2022-10-3 01:03
你要写访问根节点/如果没登录就重定向到登录页的效果是吧,你的isLogin重定向要写成redirect:/login.html才 ...

已经配置了themeleaf,重定向后面就算加上html,redirect:/login.html一样是找不到,



后来csdn我查到了个,好像只有图一写法,不知道准不准确,你说的我能理解,但是就是404,我直接访问路径/login.html都访问不到,好像就是themeleaf直接屏蔽了

发表于 2022-10-3 11:39:12 | 显示全部楼层
本帖最后由 darius 于 2022-10-3 11:43 编辑
似幸识你 发表于 2022-10-3 10:22
已经配置了themeleaf,重定向后面就算加上html,redirect:/login.html一样是找不到,


抱歉哈,昨晚手机上看的粗略的回答了一下,redirect后浏览器自动重定向发送的是contextPath+redirect后的内容的请求,例如contextPath为http://localhost:8080/test/,然后redirect是redirect:/login,那么到client端也就是浏览器就是发送了一个http://localhost:8080/test/login请求,所以此时你必须要有一个handler来处理/login这个request uri,所以你不写/login的处理逻辑他就会找不到uri和handler的映射就会404。你要注意你想直接访问/login.html以达到访问登录页的效果你只需要写一个映射@RequestMapping("/login.html")即可,redirect 302重定向后客户端会发送请求,请注意redirect后面的是请求的uri并不是页面名称
发表于 2022-10-3 11:41:17 来自手机 | 显示全部楼层
用spring security做登陆验证吧 soeasy
发表于 2022-10-3 11:43:52 来自手机 | 显示全部楼层
而且springmvc 在过滤器fliter里面配啊这种根目录重定向
发表于 2022-10-3 11:45:38 | 显示全部楼层
springmvc返回除json,模板引擎以外的麻烦的一批,不如其他的mvc框架
我选择用其他的mvc框架 ,写个starter
 楼主| 发表于 2022-10-3 12:01:12 来自手机 | 显示全部楼层
本帖最后由 似幸识你 于 2022-10-3 12:05 编辑
darius 发表于 2022-10-3 11:39
抱歉哈,昨晚手机上看的粗略的回答了一下,redirect后浏览器自动重定向发送的是contextPath+redirect后的 ...


你要注意你想直接访问/login.html以达到访问登录页的效果你只需要写一个映射@RequestMapping("/login.html")即可,redirect 302重定向后客户端会发送请求,请注意redirect后面的是请求的uri并不是页面名称


首先感谢老哥长文回复
刚学ssm,我思想很多不足,我目的是要访问/,然后辨别是否已经登录了(正常这里逻辑应该写在**中,判断,但是我这里先这样试着,我主要是练手),然后再重定向,目的不是直接访问login.html,如果使用@RequestMapping("/login.html"),再通过转发到login,那和我第一种没区别了

你说的意思就是访问login.hrml再转发到login视图,那其实本质就是和我那个差不多,只是我是访问login转发到login视图

再次感谢老哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-10 16:28 , Processed in 0.063897 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表