路径URL问题

1. Java Servlet API 中引用 Session 机制来追踪客户的状态。Servlet API 中定义了 javax.servlet.http.HttpSession 接口,Servlet 容器必须实现这个接口。

2.当一个 Session 开始时,Servlet 容器将创建一个 HttpSession 对象,Servlet 容器为 HttpSession 分配一个唯一标识符,称为 Session ID。Servlet 容器将 Session ID 作为 Cookie 保存在客户的浏览器中。每次客户发出 HTTP 请求时,Servlet 容器可以从 HttpRequest 对象中读取 Session ID,然后根据 Session ID 找到相应的 HttpSession 对象,从而获取客户的状态信息。

3.当客户端浏览器中禁止 Cookie,Servlet 容器无法从客户端浏览器中取得作为 Cookie 的 Session ID,也就无法跟踪客户状态。

Java Servlet API 中提出了跟踪 Session 的另一种机制,如果客户端浏览器不支持 Cookie,Servlet 容器可以重写客户请求的 URL,把 Session ID 添加到 URL 信息中。

4. HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url)

该方法的实现机制为:   
● 先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。   
● 再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url。

我们可以对网页中的链接稍作修改,解决以上问题:

修改前:

<a href=“maillogin.jsp“>   
修改后:

<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>

时间: 2024-08-02 00:43:27

路径URL问题的相关文章

JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址

JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址 在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上1.可以在servlet的init方法里String path = getServletContext().getRealPath("/");这将获取web项目的全路径例如 :E:\eclipseM9\workspace\tree\tree是我web项目的根目录 2.你也可以随时在任意的class里调用this.getCla

IOS常用获取沙盒路径,URL方法

获得沙盒Documents文件夹路径 1: <span style="font-size:18px;"> NSArray *searchPach = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path1 = [[searchPach firstObject] stringByAppendingPathComponent:@"f

CI框架apache和nginx环境下面统一去掉路径URL后面的index.php

APACHE: 在apache下去掉url上的index.php折腾了好久 ,一直是访问css ,js,图片文件   you can't access files on server 之类的错误提示,apached的配置上说的是 把 AllowOverride  none 改成  AllowOverride All ,然后allow from all,一直不生效,可以跳转页面,但是样式,js文件,图片都丢失, 发现还是.htaccss的RewriteCond出现了问题,原来是目录不对. 原先的样

git config找到下载的路径URL

  有时想在别的机器上下载自己的上传的源代码,发现git不像svn那么方便一眼就能看到下载地址,这两天在网上查了一下,终于找到方法了. 一般本地的github目录下总会有一个.git目录,点击进入,可看到如下图所示的文件结构: 其中config即为我们要找寻的文件,将之打开,会看到类似如下内容,其中的url即为我们要找寻的下载地址 [core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates =

中文路径-接口路径url不能传输中文解决方案

服务端:

【vue】vue-router跳转路径url多种格式

1.形如  http://localhost:8080/#/book?id=**** ①路由配置 ②路由定向链接,以query传参id 另外,获取query传递的参数id用  this.$route.query.id 2.形如  http://localhost:8080/#/book/**** ①路由配置 ②路由定向链接,以params传参id // 当匹配到一个路由时,参数值会被设置到 this.$route.params,可以在每个组件内使用. // 可以通过this.$route.par

CSS中URL路径

项目中,为a标签添加背景,老是没效果 (VS2013中相关文件的位置:CSS文件位于/Content中,图片位于/images中) 为a标签添加背景的CSS代码为:background:  url(images/sort.png) no-repeat 0 3px; 一直没有效果,后来才发现是绝对路径,相对路径搞错了.url(images/sort.png)表示的是当前文件夹下的images文件夹下的sort.png图片,因为CSS文件位于/Content文件夹,所以系统就去/Content/im

php获取当前域名、主机、URL、端口、参数、网址、路径、代理等

<?php //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br />"; //获取网页地址 echo $_SERVER['PHP_SELF']."<br />"; //获取网址参数 echo $_SERVER["QUERY_STRING"]."<br />"; //获取用户代理 echo $_SERVER['HTTP_REFERER']."

web项目路径问题

路径    相对路径        URL中第一个字符不为“/”        request.getRequestDispatcher("b");        相对于该代码所在的位置,指的是java文件的位置.        绝对路径        URL中第一个字符不为""        request.getRequestDispatcher("/b")        前台            /代表的是服务器的根目录,注意:是服务器的