用php做购物网站案例一年的百度指数
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;
}
}