1. 路劲可分为 绝对路径 和 相对路径

2. 绝对路径 (开头带"/"

  前端: http://localhost:8080/myWebApp/user/login.jsp

     /myWebApp/user/login.jsp

  后端: /user/login.jsp

  这里可以看出一个区别, 其中"/"这个斜杠在前后端有着不同的意义:

  前端--> (表示) 服务器的根路径(例如:http://localhost:8080/)

  后端-->(表示) 应用的根路径 (例如: http://localhost:8080/yourWebAppName/)

3. 相对路径 (开头不带"/")

举个例子, 假如当前的路径是 http://localhost:8080/myWebApp/user/login.jsp

那么这时候访问 “main.jsp”页面,即访问的是 http://localhost:8080/myWebApp/user/main.jsp

  也就是说,使用相对路径,那么访问的是 当前页面路径 所属 目录 下的文件路径

  这个特性无论是在前端 、 后端 都是一样的。

  在java中,无论是JSP或者Servlet , 都可以通过request这个对象获得requestURL( ) , 该方法返回当前所访问的页面的绝对路径的一个StringBuilder。

  应用服务器正是通过该路径来得到用户想要访问的页面路径。

  而一般使用forward时,就是通过修改该路径(无论当前指定的是绝对路径或者相对路径),来请求新的路径。

Base path :scheme+serverName+serverport+requestContext): http://192.168.10.64:8080  //应用路径 
req.reqeustURL(): http://192.168.10.64:8080/testPath/test.do   //请求路径
req.requestURI(): /testPath/test.do    //请求路径(相对服务器根目录部分)
req.getSession.getServletContext().getRealPath("")F:\tomcat\apache-tomcat-7.0.47\webapps\testPath
//根目录的真实路径
req.getSession().getServletContext().getResource("/") : jndi:/localhost/testPath/index.jsp  //这里必须要‘/'开头
req.getServletPath(): /test.do  //servlet的映射路径 
req.getSession().getServletContext().getContextPath()   : /testPath   //应用上下文路径(标准的)
req.getContextPath():    //请求request 所指向的应用上下文路径 一般为应用路径,即/AppName  (如果场景是把整个应用服务器当成一个应用,所以应用上下文为"/testPath")
testPath App
/testPath
req.getRealPath("file.upload") :
F:\tomcat\apache-tomcat-7.0.47\webapps\testPath\file.upload
req.getSession().getServletContext().getResource("/") :
jndi:/localhost/testPath/index.jsp
req.getSession.getServletContext().getRealPath("") :
F:\tomcat\apache-tomcat-7.0.47\webapps\testPath
req.getSession().getServletContext().getContextPath() :
/testPath
req.getRequestURL() :
http://192.168.10.64:8080/testPath/test.do
req.getRequestURI() :
/testPath/test.do
req.getAuthType() :
null
req.getMethod() : :
GET
req.getQueryString() :
null
req.getContentType() :
null
req.getContextPath() :
/testPath
req.getContentLength() :
-1
req.getLocale() :
zh_CN
req.getLocalAddr() :
192.168.10.64
req.getLocalName() :
c-PC
req.getLocalPort() :
8080
req.getRemoteAddr() :
192.168.10.64
req.getRemoteHost() :
192.168.10.64
req.getRemotePort() :
61783
req.getRemoteUser() :
null
req.getScheme() :
http
req.getServerName() :
192.168.10.64
req.getServerPort() :
8080
req.getServletPath() :
/test.do
/testPath
req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/" :
http://192.168.10.64:8080/testPath/ ROOT
req.getContextPath() :
""
req.getRealPath("file.upload") :
F:\tomcat\apache-tomcat-7.0.47\webapps\ROOT\file.upload
req.getSession().getServletContext().getResource("/") :
jndi:/localhost/index.jsp
req.getSession.getServletContext().getRealPath("") :
F:\tomcat\apache-tomcat-7.0.47\webapps\ROOT
req.getSession().getServletContext().getContextPath() : req.getRequestURL() :
http://192.168.10.64:8080/test.do
req.getRequestURI() :
/test.do
req.getAuthType() :
null
req.getMethod() : :
GET
req.getQueryString() :
null
req.getContentType() :
null
req.getContextPath() : req.getContentLength() :
-1
req.getLocale() :
zh_CN
req.getLocalAddr() :
192.168.10.64
req.getLocalName() :
c-PC
req.getLocalPort() :
8080
req.getRemoteAddr() :
192.168.10.64
req.getRemoteHost() :
192.168.10.64
req.getRemotePort() :
61836
req.getRemoteUser() :
null
req.getScheme() :
http
req.getServerName() :
192.168.10.64
req.getServerPort() :
8080
req.getServletPath() :
/test.do req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/" :
http://192.168.10.64:8080/

request 路径随笔的更多相关文章

  1. 超全面的JavaWeb笔记day10<Response&Request&路径&编码>

    1.Response 2.Request 3.路径 4.编码 请求响应流程图 response 1.response概述 response是Servlet.service方法的一个参数,类型为java ...

  2. 项目vue2.0仿外卖APP(二)

    vue-cli开启vue.js项目 github地址:https://github.com/vuejs/vue-cli Vue.js开发利器vue-cli,是vue的脚手架工具. 在工地上,脚手架是工 ...

  3. Python之Web框架Django

    Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址  Python 下载地址:https://www.pyt ...

  4. OWIN的理解和实践(三) –Middleware开发入门

    上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介绍下Middleware的开发 ...

  5. 【jmeter】WebSerivice测试

    WebSerivice测试计划的取样器有两种方式:HTTP请求.SOAP/XML-RPC Request. 1. 测试计划 启动JMeter,点击测试计划节点上,重命名测试计划:WebserviceT ...

  6. Day17 表单验证、滚动菜单、WEB框架

    一.表单验证的两种实现方式 1.DOM绑定 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  7. Python 一路走来 Django

    Web 框架 (本质:socket) Python web框架           自己实现socket                - Tornado           基于wsgi       ...

  8. Middleware开发入门

    Middleware开发入门 上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介 ...

  9. Spring @Pathvariable

    先记录下@PathVariable的用法吧: @RequestMapping("/demo/{id}") @ResponseBody public User getUser(@Pa ...

随机推荐

  1. About Restful Web Api Something.

    这种轻量级的服务架构目前来说还是比较流行的,比如微信的公众平台的接口开发就是一个很好的案例,提到restful那么他到底是一个什么样的东西? REST(Representational State T ...

  2. leetcode题1Two sum 练习

    题目为: 给一个整数数组, 返回数组中的两数之和等于指定值的两数在数组中的下标. Example: Given nums = [2, 7, 11, 15], target = 9, Because n ...

  3. [老老实实学WCF] 第六篇 元数据交换

    老老实实学WCF 第六篇 元数据交换 通过前两篇的学习,我们了解了WCF通信的一些基本原理,我们知道,WCF服务端和客户端通过共享元数据(包括服务协定.服务器终结点信息)在两个 终结点上建立通道从而进 ...

  4. Xcode6 模拟器不显示键盘

    在学习加法计算器时,程序运行后发现点击模拟器上的输入框时有时候键盘可以弹出来,有时候又弹不出来. 网上查询结果只需要在模拟器的菜单中找到hardware -> keyboard -> 取消 ...

  5. [转]解决win8.1右键菜单出现在左边

    1.在控制面板中找到“Tablet PC 设置”窗口,选择“其他”选项卡. 2.在“左右手使用习惯”下,点选“惯用左手”,确定. •如果win8.1的控制面板里找不到Tablet PC 设置 •可以在 ...

  6. 10款基于jquery实现的超酷动画源码

    1.jQuery二级下拉菜单 下拉箭头翻转动画 之前我们分享过不少基于jQuery的二级下拉菜单,甚至是多级的下拉菜单,比如这款jQuery/CSS3飘带状多级下拉菜单就非常华丽.但今天要介绍的这款j ...

  7. hdu 2955 Robberies 0-1背包/概率初始化

    /*Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...

  8. 勿在浮沙筑高台-- 关于IT技术学习的一点反思

    常常看到前辈们大牛们感慨, 感慨我们这一代人生活在最好的时代, 拥有海量的学习资源以及指数增长的新技术与新知识. 的确, 如果你是这个时代的大学生,或是初出茅庐的程序员, 你会发现有太多太多的选择,  ...

  9. 一点总结-关于debug比赛

    上午的题目是: 1. main里面定义的变量必须手动初始化,使用memset或者其他,函数外或者函数内,会进行初始化为0. 2. 最长回文子串的马拉车manacher算法,不会写! 3. 数字三角形d ...

  10. 简单工厂(Simple Pattern)模式

    一.简单工厂(Simple Factory)模式 Simple Factory 模式根据提供给它的数据,返回几个可能类中的一个类的实例.通常它返回的类都有一个公共的父类和公共的方法. Simple F ...