话说,培训和自学就不是一个回事,两周讲完java基础,两天讲完jsp,两节课讲完servlet,还真不是一般人能受得了的,这两天学习jsp和servlet频繁被路径问题困扰,倒不是出错,只是各种action,各种请求转发,又各种重定向,还要配置web.xml的url-pattern,很头大,花了一晚上时间,整理了javaweb学习过程中的路径问题:
首先我来整理一下会涉及到路径的几个相关操作:
一:客户端路径
1:超链接     (<a href="........"></a>)
2: 表单(<form action="......"></form>)
3: 重定向 (response.sendRedirect("........")) 二:服务器端路径 4: 转发(request.getRequestDispatcher("......").forword(request,response))
5: 包含(request.getRequestDispatcher("......").include(request,response))
6: url-pattern( <url-pattern>.......</url-pattern>)
ok,首先我们来说客户端路径,这种路径分为三种:
*绝对路径
*以“/” 开头的相对路径
*不以“/”开头的相对路径 绝对路径没什么好说的,如你的路径为“http://localhost:8080/javaWeb/index.jsp”,访问绝对不会出问题,最终访问的页面,就是你输入的页面。
如果你以“/”开头,那么最终访问的路径是相对当前主机的,路径中要加项目名,
如“/javaWeb/index.jsp”,它最终访问的页面是“http://localhost:8080/javaWeb/index.jsp”
如果不以“/”开头,那么最终的访问路径是相对于当前页面的,假设你当前处在“http://localhost:8080/javaWeb/a.jsp”下,而你输入的路径为“index.jsp”,那么它最终的访问页面是“http://localhost:8080/javaWeb/index.jsp”
个人感觉还是使用“/”开头的路径比较好,先是项目名,再是要访问的文件名,这样看上去一目了然。

        接下来再说服务器端路径,服务器端路径很明显不能是绝对路径,必须是相对路径,但相对路径有两种形式:

		  *以“/” 开头的相对路径
*不以“/”开头的相对路径
这里着重说明一下,以“/”开头的相对路径,对于服务端和客户端路径来说是不同的,上面说的以“/”开头的客户端路径是相对于当前主机,而以“/”开头的服务器端路径是相对于当前应用,举个例子,假设你在一个Aservlet页面上执行请求转发操作,Aservlet所在路径为“http://localhost:8080/javaWeb/servlet/Aservlet“ ,
你写的路径为request.getRequestDispatcher("/Bservlet").forword(request,response),那么最终访问的页面将是“http://localhost:8080/javaWeb/Bservlet”!看到区别没有??并不是“http://localhost:8080/Aservlet”哟!!假设你写的路径是request.getRequestDispatcher("Bservlet").forword(request,response),这次是不带“/”的路径,那么你将访问到的路径是“http://localhost:8080/javaWeb/servlet/Bservlet, 对于请求包含操作是一样的道理,看到区别没有,总结一下就是:
	   以"/"开头的服务器端路径是相对于当前应用的,即当前项目名下的!
不以"/"开头的服务器段路径是相对于当前操作页面的,即当前页面所在文件夹中的。
最后说一下,url-pattern路径,一句话就是:此路径必须为“/”开头,是相对于当前应用的。
总结完毕,以上皆为手打,可能有手误,作为参考,希望各位看完对路径能有更深入的了解,至少做到各回各家各找各妈,不要走错道了就ok了~






JavaWeb路径问题打包总结--小心出门右转404的更多相关文章

  1. Vue build打包之后,刷新页面出现404解决方案

    Vue build打包之后,刷新页面出现404,HTML5 History 模式 原因分析: vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于 ...

  2. webpack踩坑之路——图片的路径与打包

    转自:http://www.cnblogs.com/ghost-xyx/p/5812902.html 刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不 ...

  3. webpack图片的路径与打包

    转的http://www.cnblogs.com/ghost-xyx/p/5812902.html 今天写 react遇到打包图片,之前都是通过url在css里,没遇到问题,今天在 react里直接用 ...

  4. JavaWeb(七)之详解JavaWeb路径

    前言 在我们的实际开发中,经常要写路径,不管是链接,重定向还是转发,这都是需要路径的.那这一篇我给大家详细的分享一下Web中的各种路径问题. 世界上一切东西都是相对的,对于这点而言,相信大家并不陌生, ...

  5. webpack踩坑之路 (2)——图片的路径与打包

    刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我们就来分析下在webpack项目中图片的应用场景. ...

  6. JavaWeb 路径问题

      路径问题 CreateTime--2016年9月22日15:19:56 Author:Marydon 一.jsp页面 src="../demo/clazz/clazz_add.js&qu ...

  7. vue打包之后找不到图片路径,打包项目时,dist文件夹内部分图片找不到

    1.打包项目时,会默认把存放在public内的小于4k的图片转换成base64,作为内联样式. 可以在vue.config.js中修改默认大小,在chainWepack:config=>{}中添 ...

  8. eclipse实现JavaWeb应用增量打包

    很多情况下,项目是不允许全量发布的,所以你得把有做修改的文件一个个挑出来,如果有成千上百的文件,你是不是要头大了? 以下方法应该可以让你得到解救!前提是你是用装有svn plugin的eclipse上 ...

  9. JavaWEB路径总结

    这篇文章是小编一直想写的一篇,主要是对web阶段中各个路径进行的一些总结,希望读者看过之后对于路径方面有一个清晰的认识.首先声明一点:世界上一切东西都是相对的,对于这点而言,相信大家并不陌生,从初中开 ...

随机推荐

  1. Python之路Day16--JavaScript(二)

    本节内容: 1.上节内容回顾 2.JavaScript补充 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 一.上节内容回顾 1.作业问题: a.页面布局不好 ...

  2. C#中常用的读取xml的几种方法(转)

    本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...

  3. php面试 1013总结

    面试题1:http://www.docin.com/p-288430879.html 数据库优化: session和cookies区别 缓存系统有哪些 myisam和InDB读写区别 varchar和 ...

  4. Microsoft JScript 运行时错误: 属性“$”的值为 null、未定义或不是 Function 对象

    运行网站时有的页面中可能有的js代码不起作用,原因可能是 JQ引用错误!他找不到JQ的基类!你引用的是JQ的插件.程序是先找到JQ的基类才能去实现插件功能的.把JQ的基类放在所有插件的前面.这样就不会 ...

  5. java线程学习

    线程概念 当我问别人什么是线程的时候,别人给我讲了一大堆线程如何创建,如何使用以及若干线程的高深问题,其实作为一个资深菜鸟,我就想问问,什么是线程而已,找了书中的一些概念总结了一下,多线程与操作系统中 ...

  6. Expert 诊断优化系列------------------冤枉磁盘了

    现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...

  7. MySQL 启动服务报错解决方案

    标签:ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid) 概述 文章 ...

  8. MySQL HASH分区

    200 ? "200px" : this.width)!important;} --> 介绍 基于给定的分区个数,将数据分配到不同的分区,HASH分区只能针对整数进行HASH ...

  9. Three.js + HTML5 Audio API 打造3D音乐频谱,Let’s ROCK!

    继续玩味之前写的音乐频谱作品,将原来在Canvas标签上的 作图利用Three.js让它通过WebGL呈现,这样就打造出了一个全立体感的频谱效果了. 项目详情及源码 项目GitHub地址:https: ...

  10. 《Entity Framework 6 Recipes》中文翻译系列 (16) -----第三章 查询之左连接和在TPH中通过派生类排序

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-10应用左连接 问题 你想使用左外连接来合并两个实体的属性. 解决方案 假设你有 ...