ssm项目session使用及其作用域问题

网友投稿 240 2023-02-13


ssm项目session使用及其作用域问题

这两天由于自己在前端用到ajax发起异步更新请求,发现ajax会暴露后端的接口地址,这个问题当然是避免不了的啦,前端都是明文。可怜于是就在百度、谷歌、QQ群里各种查询各种提问题,都说只能通过安全验证去解决问题,作为新手第一个选择的当然是session啦,网上还有token验证、shrio框架等,有兴趣的朋友可以网上搜寻教程学习。

session是存在服务器的一种缓存机制,可以验证用户是否已经登录过了。我把自己学http://到的写上来,可以让新手少走弯曲路,直接上代码~

第一、在SSM的登录接口参数里需要加入 HttpServletRequest request 请求,用来获取请求携带的session

第二、登录接口内代码进行session设置,HttpSession session = request.getSAqNqqtZession(true); //这句是获取session,true是表示如果没有则新建一个session,可以不用填

session.setAttribute("logined","success"); //这句话是写入一个标识,你也可以把登录的账号设置在session里面,防止发起修改请求时恶意篡改另一个帐号的资料。

第三、如何在接口验证呢?同样需要带HttpServletRequest request参数请求用于获取客户端发起http请求所携带的session,HttpSession session = request.getSession();   session.getAttribute("logined")则读取是否有logined这个key,如果没有说明没有登录过,就不给请求内容,直接返回信息提醒用户登录。

ssm项目session作用域问题

描述:用户登录系统成功后把该用户的相关信息放进一个session域中方便调用,并取名为xx,

当用户登录进入此系统之后要修改个人信息,修改完之后,将用户在前台页面修改后的个人信息重新塞到这个session域中,覆盖之前的session,这样用户当再次登录时或者查看时就是他修改之后的信息。

分析:当用户修改完个人信息之后想要再修改个人登录密码(修改个人信息和修改个人密码不在同一页面),此时就会提示输入的旧密码错误,因为修改个人信息的时候并没有个人密码,也就是在用户修改完将自己的信息塞进session的时候,个人密码封装进去的就是空值了,此时就取不到用户登录的真正密码。

解决办法:若想实现修改完个人信息之后顺利的修改个人密码,就要在修改个人信息的页面加上一个用户密码的AqNqqtZ隐藏域。这样个人登录密码也会随着用户修改的信息封装进对象,呗=被塞进session域中,这样可以在修改密码时调用session域中的内推,密码就不会为空了。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:vue iView 上传组件之手动上传功能
下一篇:什么是接口自动化测试(接口自动化怎么测试)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~