刚学完ssm,准备来个宿舍管理系统,就重定向都直接卡住了
目前卡了个问题,求大佬帮忙看看鞠躬了用的thymeleaf解析但是重定向好像跟thymeleaf没关系,我加上login.html还是找不到
为什么重定向必须要这样才能打开页面,isLogin方法不能直接重定向到login.html 有大佬帮忙看下嘛
热议
推荐楼 darius 昨天12:34
你要注意你想直接访问/login.html以达到访问登录页的效果你只需要写一个映射@RequestMapping("/login.htm ...
像我这样写就行,明白重定向后浏览器发送的是一个请求就很好理解,你请求的uri肯定要映射一个handler来执行相关的业务逻辑。像这种没登录跳转登录页常规就是拿filter来做,不然每个方法里都来if else很不雅观。其次你学原版的ssm,ssh整合呀,基本的servlet编写是有必要的,后续的springboot无非就是把你做的配置给你做了让你专注业务,如果你不了解基本的原理及流程可能后面用springboot遇到问题都不知道如何排查,慢慢来吧
2楼 loverhoc 前天23:21
资源路径问题,应该是没找到login页面
3楼 似幸识你 前天23:30
资源路径问题,应该是没找到login页面
thymeleaf解析器问题好像只能图一写法- -
4楼 darius 昨天01:03
你要写访问根节点/如果没登录就重定向到登录页的效果是吧,你重定向那块后面不加.html就是发的/login请求对应的就是你controller中的login方法,所以你如果注释了login方法然后就会404,仔细理解下吧
5楼 似幸识你 昨天10:22
darius 发表于 2022-10-3 01:03
你要写访问根节点/如果没登录就重定向到登录页的效果是吧,你的isLogin重定向要写成redirect:/login.html才 ...
已经配置了themeleaf,重定向后面就算加上html,redirect:/login.html一样是找不到,
后来csdn我查到了个,好像只有图一写法,不知道准不准确,你说的我能理解,但是就是404,我直接访问路径/login.html都访问不到,好像就是themeleaf直接屏蔽了
6楼 darius 昨天11:39
已经配置了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并不是页面名称
7楼 7836246 昨天11:41
用spring security做登陆验证吧 soeasy
8楼 7836246 昨天11:43
而且springmvc 在过滤器fliter里面配啊这种根目录重定向
9楼 xuh 昨天11:45
springmvc返回除json,模板引擎以外的麻烦的一批,不如其他的mvc框架
我选择用其他的mvc框架 ,写个starter
10楼 似幸识你 昨天12:01
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视图
再次感谢老哥
12楼 7836246 昨天12:02
你要注意你想直接访问/login.html以达到访问登录页的效果你只需要写一个映射@RequestMapping("/login.htm ...
直接在filter里面 判断cookie或session 来进行跳转
13楼 似幸识你 昨天12:06
直接在filter里面 判断cookie或session 来进行跳转
是,我昨天晚上的时候没想到这个,正常这个就应该全局拦截
14楼 7836246 昨天12:07
是,我昨天晚上的时候没想到这个,正常这个就应该全局拦截
SSM基本淘汰了 直接Springboot + security + mybatisPlus 一把梭哈了
15楼 似幸识你 昨天12:10
7836246 发表于 2022-10-3 12:07
SSM基本淘汰了 直接Springboot + security + mybatisPlus 一把梭哈了
没事,我先练练手,后面上手也会好点吧
16楼 7836246 昨天12:13
没事,我先练练手,后面上手也会好点吧
直接学Boot不用在配置任何XML
17楼 darius 昨天12:34
你要注意你想直接访问/login.html以达到访问登录页的效果你只需要写一个映射@RequestMapping("/login.htm ...
像我这样写就行,明白重定向后浏览器发送的是一个请求就很好理解,你请求的uri肯定要映射一个handler来执行相关的业务逻辑。像这种没登录跳转登录页常规就是拿filter来做,不然每个方法里都来if else很不雅观。其次你学原版的ssm,ssh整合呀,基本的servlet编写是有必要的,后续的springboot无非就是把你做的配置给你做了让你专注业务,如果你不了解基本的原理及流程可能后面用springboot遇到问题都不知道如何排查,慢慢来吧
18楼 似幸识你 19分钟前
darius 发表于 2022-10-3 12:34
像我这样写就行,明白重定向后浏览器发送的是一个请求就很好理解,你请求的uri肯定要映射一个handler来执 ...
好的,谢谢大佬,我已经把做了**,除了login以外开头的,其他全部做判断了
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。