【Spring boot】session與cookie的使用
阿新 • • 發佈:2019-01-04
總體而言使用方法非常簡單,可以直接參考下面的例子。
package cn.smileyan.boot.test.session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/test") @CrossOrigin public class HelloSessionController { @RequestMapping("/add") public String addSession(HttpServletRequest httpServletRequest, @RequestParam("username")String username) { HttpSession session = httpServletRequest.getSession(); session.setAttribute("username",username); session.setMaxInactiveInterval(10000); return "新增成功"; } @RequestMapping("/show") public Object showSession(HttpServletRequest httpServletRequest) { HttpSession session = httpServletRequest.getSession(); Object object = session.getAttribute("username"); return object; } }
測試方法:開啟瀏覽器,訪問addSession方法對應的訪問路徑,然後新增url引數,比如說
localhost/test/add?username=smileyan
然後直接訪問這個路徑,可以看到“新增成功”這個返回結果。
道理基本相同,cookie的使用也是如此
package cn.smileyan.boot.test.session; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/cookie") public class HelloCookieController { @RequestMapping("/add") public String addCookie(HttpServletRequest request,HttpServletResponse response, @RequestParam("username")String username) { Cookie cookie = new Cookie("username", username); cookie.setPath(request.getContextPath()); cookie.setMaxAge(80000); response.addCookie(cookie); return "新增成功"; } @RequestMapping("/show") public String showCookie(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); for (Cookie cookie : cookies) { if(cookie.getName().equals("username")) { System.out.println(cookie.getName()); System.out.println(cookie.getValue()); return cookie.getValue().toString(); } } return "null"; } }
補充:
如果setSession和getSession所在的類不同的話,需要修改path為"/"。