./ 当前目录

../ 父级目录

/ 根目录

资源寻找都是依靠路径,资源存储方式是按照哈希表运算的,所以路径的计算其实就是哈希值的计算。

servlet中,所有路径的配置都要用绝对路径。

什么是绝对路径,就是以“/”开头的路径(开发中就这样理解)。

实际开发中,“/”所代表的含义不同,但主要分以下两种情况:

1.servlet内部配置路径

servlet内部的含义就是:在客户端看不到,全是在(应用)后台处理的部分(简单说,就是除了JSP以外的所有地方)。包含以下2点:

a. web.xml中servlet 配置的路径

helloWorld



com.bill99.li.servlet.HelloWorldServlet

helloWorld

/test1/helloWorld

我们配置的这个“ /test1/helloWorld”,前面必须加“/” —- 该“/”代表我们应用的名称。比如我们的应用名是“test”,那访问我们应有的地址就是: http:// 192.168.XX.XX:8080/test ,说白了就是代表项目的名称。

“ /test1/helloWorld”代表的路径就是http:// 192.168.XX.XX:8080/test/test1/helloWorld

b.forward转发的路径(注意:不包含redirect重定向)

做完后台业务逻辑处理后,需要做页面的跳转,比如:

req.getRequestDispatcher(“/pages/succ.jsp”).forward(req, resp);

这时候跳转的页面”/pages/succ.jsp”也必须添加“/”,它代表的含义也一样,是我们应用的名称。

总结:

在应用内部,“/”代表的就是应用的名称!!!

2.页面配置的路径

页面是指什么 —— 肯定是指我们的JSP页面,而JSP页面是服务端解析的,对我们而言是下载到客户端,让浏览器解析为HTML展示出来的页面。

比如,我们的应用url是:http:// 192.168.XX.XX:8080/test

那站点的路径就是:http:// 192.168.XX.XX:8080/ — 很明显 test 是应用名

对客户端的浏览器而言,它认识的只有站点,也就是说,我们的jsp页面,“/”代表的是站点名。

所以在“/”后需要添加上我们应用的名称才能正确的访问到。(也容易理解,一个tomcat下可以部署多个应用,就相当于一个站点多个应用,怎么区别不同的应用呢,当然是不同应用名啦—–这个需要和上面的servlet内部配置路径区分理解一下啊,因为servlet本身就部署在服务端,在站点内部了,内部处理肯定知道它是站点下的哪个应用内,但对于外部而言,只知道一个站点IP。)

页面主要表现有以下3个地方:

a. form的action路径配置

页面举例:

解析:

应用名是test,/ 代表站点的url http:// 192.168.XX.XX:8080/,所以/test代表 http:// 192.168.XX.XX:8080/test

而/test1/helloWorld代表servlet在web.xml中配置的访问路径,所有上面的action可以正确的访问。

但是在真正的应用中,我们经常这样写:

${pageContext.request.contextPath} 的效果就是”/应用名” ,这里等于 /test

一样的效果,不解释啦。

b. 页面资源引用

同样,只要是页面中引入的东西(常常需要引入CSS,JS,图片等),都要如此写,比如

c. jsp/servlet的重定向 redirect

首先必须理解重定向的概念:重定向其实向服务器发送了2次请求,第一次把请求url告诉给服务器,服务器看到这个请求的状态码,马上明白该url是需要浏览器来重新去请求的url,于是呢把该url显示在浏览器的地址栏内,再次向服务器请求(第二次了吧),服务器响应,然后返回。

很明显,只要和页面打交道的,“/”都代表站点名,需要在后面添加应用名以区分是哪个应用的请求。所有。。。。不解释也明白了吧!

总结:

所有涉及前端页面的地方,“/”代表的是站点名,需要我们在“/”加上应用名以明确应用服务!!

=========================================================

基本上可以总结为两点:

a. servlet中所有访问路径都要用绝对路径“/”开头

b. 页面中“/”表示站点路径(在客户端展现出来,只知道它的站点路径,所有需要“/”后追加应用名来区分属于站点下的哪个应用),其他地方的“/”表示应用路径(在服务端的应用程序内调用,肯定是相对于应用的路径啦)

Servlet中路径信息总结的更多相关文章

  1. servlet中路径的获取

    1.获取项目的绝对路径 可以request.getRealPath("/"),但是这个方法已经废弃了,最好用this.getServletContext().getRealPath ...

  2. Servlet中的转发

    public class OneServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServ ...

  3. Servlet中转发和重定向的路径问题以及表单提交路径问题

    一.请求转发与响应重定向的种类 有两种方式获得Servlet转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher() ...

  4. 4、Servlet中的Cookie 用于存储 web 页面的用户信息。

    Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. 识别返回用户包括三个步骤: 服务 ...

  5. servlet中的相对路径和绝对路径 及/, ./, ../的区别

    ./ 当前目录../ 父级目录/ 根目录资源寻找都是依靠路径,资源存储方式是按照哈希表运算的,所以路径的计算其实就是哈希值的计算. servlet中,所有路径的配置都要用绝对路径. 什么是绝对路径,就 ...

  6. 玩转web之servlet(六)---session介绍及简单使用(登录验证中保存信息)

    在浏览器与服务器进行交互时,往往需要把涉及到的一些数据保存下来,这时就需要使用cookie或session进行状态管理. 这篇文章先来说说session怎么用,首先在servlet中创建一个sessi ...

  7. Servlet中转发和重定向的路径问题【转】

    转发和重定向的路径问题 Servlet中有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获 ...

  8. python找递归目录中文件,并移动到一个单独文件夹中,同时记录原始文件路径信息

    运营那边有个需求. 下载了一批视频文件,由于当时下载的时候陆陆续续创建了很多文件夹,并且,每个文件夹下面还有子文件夹以及视频文件,子文件夹下面有视频文件或者文件夹 现在因为需要转码,转码软件只能对单个 ...

  9. servlet请求中的信息

    在servlet中HttpServeltRequest中有一个方法getRequestURL() 假如我们平常输入的地址是:localhost/Demo1/TestServlet?hello=worl ...

随机推荐

  1. 201521123070 《JAVA程序设计》第4周学习总结

    1. 本章学习总结 1.1 尝试使用思维导图总结有关继承的知识点. http://naotu.baidu.com/file/4de6f42e4f4f6cce0531dd9997b04e60?token ...

  2. 201521123016《Java程序设计》第10周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? 只有执 ...

  3. panda库------对数据进行操作---合并,转换,拼接

    >>> frame2 addr age name 0 beijing 12 zhang 1 shanghai 24 li 2 hangzhou 24 cao >>> ...

  4. Mybatis第一篇【介绍、快速入门、工作流程】

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  5. Ajax【介绍、入门、解决Ajax中文、跨域、缓存】

    什么是Ajax Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML Ajax实际上是下面这几种技术的融合: (1)XHTML和CSS的基于标准 ...

  6. C# 反射结构体struct的一个坑

    今天代码用到了反射赋值,代码是这样写的: var objtype = obj.GetType(); var Fieldinfo = objtype.GetField("I64"); ...

  7. 框架应用:Spring framework (四) - 事务管理

    事务控制 事务是什么?事务控制? 事务这个词最早是在数据库中进行应用,讲的用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位. 事务的管理是指一个事务的开启,内容添加, ...

  8. JAVA数据流再传递

    有一个filter类,在请求进入的时候读取了URL信息,并且读取了requestBod中的参数信息,那么在请求到达实际的控制层时,入参信息是拿不到的,对这种情况就需要数据流做再传递处理. 处理原理:使 ...

  9. Cnblogs关于嵌入js和css的一些黑科技

    #pong .spoiler{cursor:none;display:inline-block;line-height:1.5;}sup{cursor:help;color:#3BA03B;} Pon ...

  10. Unity GameObject Class

    GameObject  Note : gameObject 指的是当前挂着的对象. class in UnityEngine / Inherits from:Object     Descriptio ...