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