原理:web
Session实现有两种方式:浏览器
一、使用Cookie来跟踪session:Session经过SessionID来区分不一样的客户,session是以Cookie或RL重写为基础的,默认使用Cookie来实现,系统会建立一个名为JESSIONID的输出cookie,这称之为session cookie,seesion cookie存储于浏览器的内存中,并非写在硬盘上,一般看不到JSESSIONID。cookie
二、URL重写:response.encodeURL 或response.encodeRedirectURLsession
绝对路径问题:app
一、开发时建议编写“绝对路径”,写绝对路径确定没有问题,但写相对路径可能会有问题。spa
在由Servlet转发到JSP页面时,由此浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超连接仍是相对于该JSP页面的地址,则可能出现路径混乱的问题。code
而用绝对路径能够避免上诉问题:xml
①、什么是绝对路径内存
相对于当前WEB应用的根路径的路径。即任何的路径都必须带上contextPath。开发
②、如何编写?
若“/”表明是站点的根目录,则在其前面加上contextPath就能够了,能够有request.getContextPath()或application.getContextPath()获取
2、JaveWeb中的“/”:
①、当前WEB应用的根路径:http://localhost:8080/contextPath/(两种状况下表明是WEB应用的根路径)
>请求转发时:request.getRequestDispatcher().forward(request,response);
>web.xml文件中映射servlet访问路径:
②、WEB站点的根路径:http://localhost:8080/(三种状况下表明web站点的根路径)
>超连接:< a href="/testServlet"></a>
>表单中的action
>请求重定向的时候
总结:若“/”须要交由Servlet容器处理,表明WEB应用根路径,若交由浏览器处理,则表明站点根目录。