URL Session

既然cookie和session这2个东西都有可能用户禁止掉,那么最好还是有一种更加可靠的机制。

这个东西叫做 URL Session。

其实它比起session来说只多了一步操作,就是在得到request.getRequestURL().toString()方法之后将其作为参数传递给response.encodeURL(这里),这样的话如果cookie被禁止掉了,当request送到服务器以后,服务器仍然会创建一个session id,并且把它写倒url后面,也就是传说中的url重写。

如果你想要保证万无一失的话,在所有和session相关的地方都最好进行url重写,以防客户端禁掉cookie,导致你的程序跑不通。


总结一下:

1.session是服务器端的一小块内存,所以有时候也要考虑,比如如果是一些可有可无的东西,就要考虑是不是要用session,因为它会占用服务器的资源。再者,cookie除了在窗口打开的时候可以作用外,还可以以一定的时间存活,有时候这样会有用,而session只有默认的时间(在/conf/web.xml文件中),为30分钟。

2.session和客户端的窗口是对应的,二者有对应的session id,只要你的窗口不关,就有效

3.客户端向服务器发送session id有2种方式

a.cookie
b.url重写

4.在重写doGet或者doPost的时候,最好别涉及成员变量,别用this关键字(当然你可以使用this来计数等等)。因为只有一个servlet对象,很多用户同时访问的话response会乱套。

你可能感兴趣的:(JAVA,EE,session,url,服务器,servlet)