1. 程式人生 > >【Spring boot】session與cookie的使用

【Spring boot】session與cookie的使用

總體而言使用方法非常簡單,可以直接參考下面的例子。

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為"/"。