1、获取request和cookie
@RequestMapping("request")
@ResponseBody
public String getReequest(HttpServletRequest request,
HttpServletResponse response){
//浏览器拿到的内容
StringBuffer str=new StringBuffer();
Enumeration<String> headerNames = request.getHeaderNames();//获取所有元素名字
while (headerNames.hasMoreElements()){//下一个元素存在
String name=headerNames.nextElement();//获取当前元素
str.append(name+"::: "+request.getHeader(name)+"<br>");//通过当前元素得到具体内容
}
//cookie不为空时可用
for (Cookie cookie:request.getCookies()){
str.append(cookie.getName()+":"+cookie.getValue());
}
return str.toString();
}
2、301和302
重定向301,一般浏览器会进行缓存(下一次再访问直接去重定向的页面,因为已经缓存了,302不会),而302是暂时性重定向,就是请求的资源暂时驻留在不同的 URI 下 ,故而除非特别指定了缓存头部指示,该状态码不可缓存。
@RequestMapping("/redirect/{code}") //ModelAndView是重定向301
public ModelAndView redirect(
@PathVariable("code") int code,
HttpSession session
){
session.setAttribute("han","2000113");//存session
ModelAndView mv=new ModelAndView( new RedirectView("/ftl",true));//modelandview具有model存值传参和view视图跳转的功能
return mv;
}
3、错误显示
一般springboot出现错误会加载springboot默认的提示模板,我们可以自定义捕获异常并在页面显示
@RequestMapping("admin")
@ResponseBody
public String admin(@RequestParam(value = "user",required = true)String user){
if (user.equals("admin")){
return "hello admin";
}
throw new IllegalArgumentException("user错误");
}
//错误页面处理,默认是spring捕获显示错误页面,通过这个可以显示自己定义的错误
@ExceptionHandler
@ResponseBody
public String getException(Exception e){
return "错误"+e.getMessage();
}