关于异步请求springmvc不同controller时取不到session的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于异步请求springmvc不同controller时取不到session的问题相关的知识,希望对你有一定的参考价值。
参考技术A 很多小菜鸟们在使用比如vue的axios对后端进行异步请求时候,比如做到关于注册的验证码的业务时候,明明在后端存进了session时候,但是第二次请求另一个接口的时候session取不到了(null),那是因为前端在请求的时候没有带上cookie,对于后端来说就产生了两个不同的session
那这种情况怎么解决呢?
拿微信小程序举例来说
1、首先我们可以全局设置一个空cookie
2、在第一次请求的接口中获取这次用到的session的id并且作为数据返回
3、在微信小程序中处理业务的js中接受返回的id并且赋值给cookie
4、在第二次请求的时候将cookie封装到请求头中
这样子呢,这种简单粗暴的方式就可以解决不同controlle会产生不同的session的问题啦
在springmvc中controller的一个方法处理多个不同请求
1、首先创建一个springmvc单元测试类MvcTest:加载spring配置文件和springmvc配置文件。
2、然后传入springmvc的ioc@RunWith(SpringJUnit4ClassRunner.class)。
3、创建MockMvc对象,虚拟mvc请求,获取处理结果。
4、模拟发送请求,拿到返回值。
5、请求成功之后,请求域中会有pageInfo。
6、最后请求完成后,点击打印程序结果,就完成了 。
参考技术A @RequestMapping(value="url1","url2","url3"....)还可以配置通配符匹配多个请求追问
配置通配符匹配多个请求,这个能不能在详细点
追答value的uri值为以下三类:
A)
可以指定为普通的具体值;
B)
可以指定为含有某变量的一类值(URI Template Patterns with Path Variables);
public String findOwner(@PathVariable String ownerId, Model model)
Owner owner = ownerService.findOwner(ownerId);
model.addAttribute("owner", owner);
return "displayOwner";
C)
可以指定为含正则表达式的一类值( URI Template Patterns with Regular Expressions);
public void handle(@PathVariable String version, @PathVariable String extension)
// ...
本回答被提问者采纳 参考技术B 用注解@requestMapping吧好像追问
我知道是用这个,但是怎么写?
追答@requestMapping(里面写访问的路径) 进入这个方法是跳转的括号里的路径就行了
参考技术C 一个方法想处理不同的请求,应该主要在判断传递参数上了吧,同过不同的参数去执行不同 的代码,controller方法有两种传递参数的方法:一:直接做为路径去传
@RequestMapping(value = "/createhtml/id/type.htm", method = RequestMethod.GET)
public void createHtml(@PathVariable Long id, @PathVariable Integer type)
二:使用方法函数去传
@RequestMapping(value = "/save.htm“)
public String save(String str)--这个str可以直接接收jsp传过来的参数,
不知道以上回答是不是你想要的。追问
我问的是不同的请求对应一个方法,这个RequestMapping是怎么写的
追答你对应的一个方法,那就是访问路径是估定的,按正常写就行,你想的太多了
以上是关于关于异步请求springmvc不同controller时取不到session的问题的主要内容,如果未能解决你的问题,请参考以下文章
springmvc中针对一个controller方法配置两个url请求