セッション変数を設定し、将来のリクエストで取得しようとしています。Spring MVC でこれを行うにはいくつかの方法があるようです。いくつかの方法を試しましたが、どれもうまくいきません。最も単純な方法 (手動セッション操作) に戻りましたが、まだ運がありません。
これが私のコードです:
@Controller
public class Test {
private static final Logger LOG = Logger.getLogger(Test.class);
@RequestMapping({ "/set", "/set/" })
public final ModelAndView set(
final HttpServletRequest request,
final HttpServletResponse response,
final HttpSession session) {
LOG.info("setting the session");
session.setAttribute("userId", new Object());
request.getSession(true).setAttribute("userId", new Object());
return new ModelAndView("someView");
}
@RequestMapping({ "/get", "/get/" })
public final ModelAndView get(
final HttpServletRequest request,
final HttpServletResponse response,
final HttpSession session) {
final HttpSession session1 = request.getSession();
final Object userId = session.getAttribute("userId");
final Object userId1 = session1.getAttribute("userId");
LOG.info("and the userId is '" + userId + "' '" + userId1 + "'");
return new ModelAndView("someView");
}
}
サーバーを /set でヒットし、次に /get でヒットしました。ログを見ると、次のように表示されます。
setting the session
and the userId is 'null' 'null'
なぜこれが機能しないのですか?