내 응용 프로그램에서는 30 초마다 Ajax 호출을 통해 세션이 만료되었을 때 알지만, 컨트롤러 메소드를 사용할 수있을 때 HttpSession을 새로 고치고 lastaccessedtime을 변경하면 문제가 발생합니다. 세션의 상태를 변경하지 않고 세션의 상태를 알 수있는 방법을 알려주십시오. 내가, 심지어 request.isRequestedSessionIdValid()
으로 매번 내가 전화 컨트롤러 방법을 JQuery와 및 SpringMVC 2.5Jquery로 세션 상태 가져 오기
@RequestMapping(value = "/consultForm.htm", params = "verifySession", method = RequestMethod.GET)
public ModelAndView verifySessionStatus(WebRequest webRequest, Model model, HttpServletRequest request, HttpServletResponse response) {
boolean isValid = true;
HttpSession session = request.getSession(false);
if (session.getAttribute("user") == null) {
isValid = false;
}
ModelAndView modelAndView = new ModelAndView("jsonView");
model.addAttribute("sessionValid", isValid);
modelAndView.addObject(model);
return modelAndView;
}
$.ajax({
url : "search.htm?verifySession=1",
type : "GET",
async : false,
cache : false,
success : function(data) {
valid = data.sessionValid;
if (!valid) {
showPopinExpire = true;
$("#dialog-session-expired").dialog("open");
}
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
}
});
을 사용하고, 세션이 새로 고친.
감사합니다
문제는 내 컨트롤러에서 세션을 가져올 때 새로 고침되고 lastaccessedtime이 업데이트되었습니다. 그것을 지킬 생각이 있습니까? – Mohamed
컨트롤러에서 세션을 호출하면 lastAccessedTime이 변경됩니다. 내가 아약스 전화를 할 때 그것을 지킬 방법이 있습니까? 감사 – Mohamed