当前位置: 首页 > news >正文

Cookie和Session的获取方法

1、Cookie的简单获取方法(可以获取到所有的cookie)

(1)在参数里还有HttpServletResponse response这些,这些都是内置对象需要就拿不需要就删掉就可以,在这里我们用到的是HttpServletRequest request

(2)lambda表达式方法

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r2")public  String getCookie(HttpServletRequest request)  {Cookie[] cookies=request.getCookies();if(cookies!=null){Arrays.stream(cookies).forEach(x->System.out.println(x.getName()+":"+x.getValue()));return "获取cookie成功";}return "Cookie为空";}
}

(3)for循环方法

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r2")public  String getCookie(HttpServletRequest request)  {Cookie[] cookies=request.getCookies();if(cookies!=null){for (Cookie c:cookies){System.out.println(c.getName()+":"+c.getValue());}return "获取cookie成功";}return "Cookie为空";}
}

2、用spring boot方法获取cookie(获取指定的,获取不到所有的)也可以继续在声明里加其他的cookie

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r2")public  String getCookie(@CookieValue("lala") String lala )  {return "lala:"+lala;}
}

3、获取session(传统方式)

要先运行SetSession在访问GetSession,如果直接get会返回默认值为null

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r1")public  String setSession(HttpServletRequest request )  {HttpSession session=request.getSession();session.setAttribute("username","zhangsan");return "设置session成功";
}@RequestMapping("/r2")public String getSession(HttpServletRequest request){HttpSession session=request.getSession();String username=(String) session.getAttribute("username");return "登录用户:"+username;}
}

4、spring boot方法获取session(对代码起到简化效果)声明中的HttpSession是内置对象不需要可以去掉

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r1")public  String setSession(HttpServletRequest request )  {HttpSession session=request.getSession();session.setAttribute("username","zhangsan");return "设置session成功";
}@RequestMapping("/r2")public String getSession(HttpSession session){String username=(String) session.getAttribute("username");return "登录用户:"+username;}
}

5、使用注解方式获取session,再次简化代码,运行结果和上面两个一样

(1)这个代码的session不能为空,为空就报错

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r1")public  String setSession(HttpServletRequest request )  {HttpSession session=request.getSession();session.setAttribute("username","zhangsan");return "设置session成功";
}@RequestMapping("/r2")public String getSession(@SessionAttribute("username") String username){return "登录用户:"+username;}
}

(2)我们为了为空时候不报错,需要对我们代码进行修改

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r1")public  String setSession(HttpServletRequest request )  {HttpSession session=request.getSession();session.setAttribute("username","zhangsan");return "设置session成功";
}@RequestMapping("/r2")public String getSession(@SessionAttribute(value = "username",required = false) String username){return "登录用户:"+username;}
}

这个就是修改过程,加了一个require

6、拓展我们可以用我们的声明获得我们的其他信息,其他参数信息(举例获取User-Agent)获取全部的

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r1")public  String getHeader(HttpServletRequest request )  {String userAgent=request.getHeader("User-Agent");return "User-Agent:"+userAgent;
}
}

postman的User-Agent

浏览器的User-Agent

7、指定获取参数,用注解方法

@RestController
@RequestMapping("/user")
public class user {@RequestMapping("/r1")public  String getHeader(@RequestHeader("User-Agent") String userAgent)  {return "User-Agent:"+userAgent;
}
}

http://www.lryc.cn/news/318760.html

相关文章:

  • 旅游市场游客满意度调查报告
  • 为什么选用python开发web?
  • C# Chart曲线控件专题
  • Spring:StopWatch
  • 考研C语言复习进阶(5)
  • [uni-app] 小程序码转为二维码, 小程序解析此码获取数据
  • 【四 (3)数据可视化之 Seaborn 常用图表及代码实现 】
  • ASP.NET-Server.HtmlEncode
  • Linux下进行JavaEE开发-安装JDK、Tomcat、MySQL
  • 视频和图像编码标准或格式的发展关系
  • 移动云行动:5.5G技术引领数字化转型
  • Git如何与Gitee连接(主) , Git的基础使用方式简述(次)
  • 使用VLC实现自动播放视频
  • KY199 查找
  • html5播放flv视频
  • 【知识简略】 简单理解SpringCloud微服务架构:服务注册发现、配置中心、限流、熔断、降级、网关路由等
  • 福派斯课堂:选择黑背犬的狗粮时需要注意哪些细节?
  • Python QT 之PySide6简单入门
  • 美团大规模KV存储挑战与架构实践
  • 计算机基础1-汇编基础
  • 六、项目进度管理
  • java操作HBase
  • 【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
  • 浏览器 实现文件下载 完成回调 兼容ie11
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Grid)
  • Docker使用(四)Docker常见问题分析和解决收集整理
  • 通过spring boot/redis/aspect 防止表单重复提交【防抖】
  • C++ 作业 24/3/14
  • 新品牌推广怎么做?百度百科创建是第一站
  • k8s系列-kubectl 命令快速参考