本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。
博客涉及框架的重要知识点,根据序号学习即可。
目录
本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。
博客涉及框架的重要知识点,根据序号学习即可。
1.1传统版本【使用HttpServletRequest】
1.2简洁版本【使用注解@CookieValue】
2、获取session
2.1传统版本【使用HttpServletRequest】
2.2简洁版本【使用注解@SessionAttribute】
2.3简洁版本【使用HttpSession】
3、获取header
3.1传统版本【使用HttpServletRequest】
3.2简洁版本【使用注解@RequestHeader】
最后:无论使用传统的HttpServletRequest获取,还是使用注解获取,大差不差,关键要懂其原理,当然更推荐使用注解的方式,因为更方便(哈哈哈哈哈哈代码少!!!)
1、获取cookie
1.1传统版本【使用HttpServletRequest】
@RequestMapping("/m11")public String m11(HttpServletRequest request, HttpServletResponse response){//获取所有的cookie信息Cookie[] cookies=request.getCookies();//打印cookie信息StringBuilder builder=new StringBuilder();if(cookies!=null){for(Cookie ck:cookies){builder.append(ck.getName()+":"+ck.getValue());}}return "Cookie信息:"+builder;}
运行结果:
没有获取到cookie是因为没有设置,下图展示如何自定义cookie【 在Application中手动添加cookie,其实这是不安全的,后端需要进行cookie的校验】
1.2简洁版本【使用注解@CookieValue】
@RequestMapping("/m12")public String m12(@CookieValue("zhangsan") String name){//简洁版获取cookie,使用注解return "获取到的name:"+name;}
注意区分这里的zhangsan 和name ,搞懂为啥不是第一个cookie,而是以zhangsan为name的cookie。因为@CookieValue
2、获取session
2.1传统版本【使用HttpServletRequest】
@RequestMapping("/m13")public String m13(HttpServletRequest request){//session的存储//获取session对象HttpSession session =request.getSession();//与getSession(true)一样,默认值为trueif(session!=null){session.setAttribute("u","123");}return "Session存储成功";}@RequestMapping("/m14")public String m14(HttpServletRequest request){//session的读取//如果session不存在,不会自动创建sessionHttpSession session=request.getSession(false);String username=null;if(session!=null&&session.getAttribute("u")!=null){username=(String) session.getAttribute("u");}return "username:"+username;}
session是存放在服务器中的,不方便演示,所以我们先存储session,在读取
2.2简洁版本【使用注解@SessionAttribute】
@RequestMapping("/m15")public String m15(@SessionAttribute(value = "u",required = false)String username){//获取session简洁版【1】return "username:"+username;}
2.3简洁版本【使用HttpSession】
@RequestMapping("/m16")public String m16(HttpSession session){//获取session简洁版【2】//通过Spring MVC内置队象HttpSession来获取String username=(String)session.getAttribute("u");return "username:"+username;}
3、获取header
3.1传统版本【使用HttpServletRequest】
@RequestMapping("/m17")public String m17(HttpServletRequest request){//传统获取headerString userAgent=request.getHeader("User-Agent");return "userAgent:"+userAgent;}
3.2简洁版本【使用注解@RequestHeader】
@RequestMapping("/m18")public String m18(@RequestHeader("User-Agent")String userAgent){//简洁版获取headerreturn "userAgent:"+userAgent;}