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(); }