项目中遇到的关于request和session的有关问题
该bug是在练习smbms项目找回密码页面中遇到的,希望能给你带来一些帮助
一.本意是想在发送短信验证码之前让用户进行图片验证码的检测,如果
1)图片验证码输入正确
2)手机号格式正确
方可进行第三步发送手机验证码的操作
![找回密码页面](https://img-blog.csdnimg.cn/20210318142323873.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlbndlbmFpZXI=,size_16,color_FFFFFF,t_70
图片验证码输入正确则有
request.setAttribute(“Imgmessage”, “true”);
否则request.setAttribute(“Imgmessage”, “false”);
但是在发送验证码的servlet中,查看图片验证码是否输入正确的信息时发现
通过
String Imgmessage = (String) request.getAttribute(“Imgmessage”);
获取到的信息为null,与理想状况中的"true"不一致,
最终解决方案:
将request.setAttribute更改为request.getSession().setAttribute
将request.getAttribute更改为request.getSession().getAttribute
更改之后获取到了Imgmessage信息
总结:request和session的作用域不同,request.setAttribute将数据保存在request作用域中,在一次请求内共享数据,session.setAttribute是一次会话中的多次请求之间共享数据