下午一个朋友问我HttpServletRequest.getSession().getId()和HttpServletRequest.getRequestedSessionId()的差异,其实我以前也没有研究过这个差异,看了下API的说明,前者应该是属于服务器端的概念,这个值是存在于服务器的,后者是客户端的概念,也就是那个值是浏览器提交的。我们知道HTTP连接是无状态的,那么如何维护一个Session呢?其实就是通过这个HttpServletRequest.getRequestedSessionId(),如果大家细心一些,有时候会发现有时候浏览器的地址栏或者状态栏里面的地址后面会带一个sessionId的参数值,这个应该就是那个HttpServletRequest.getRequestedSessionId()的返回值了。而且这个值一般也会存在cookie里面,这样就避免了在每次请求的时候都带在请求的URL里面或者FORM里面,它是随着浏览器和服务器端的Cookie进行交流,对于用户和开发人员是透明的。

(Visited 218 times, 1 visits today)