获取request Header内容和重定向


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM