JavaWeb路径问题打包总结--小心出门右转404
话说,培训和自学就不是一个回事,两周讲完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了~
首先我来整理一下会涉及到路径的几个相关操作:
一:客户端路径
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的更多相关文章
- Vue build打包之后,刷新页面出现404解决方案
Vue build打包之后,刷新页面出现404,HTML5 History 模式 原因分析: vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于 ...
- webpack踩坑之路——图片的路径与打包
转自:http://www.cnblogs.com/ghost-xyx/p/5812902.html 刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不 ...
- webpack图片的路径与打包
转的http://www.cnblogs.com/ghost-xyx/p/5812902.html 今天写 react遇到打包图片,之前都是通过url在css里,没遇到问题,今天在 react里直接用 ...
- JavaWeb(七)之详解JavaWeb路径
前言 在我们的实际开发中,经常要写路径,不管是链接,重定向还是转发,这都是需要路径的.那这一篇我给大家详细的分享一下Web中的各种路径问题. 世界上一切东西都是相对的,对于这点而言,相信大家并不陌生, ...
- webpack踩坑之路 (2)——图片的路径与打包
刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我们就来分析下在webpack项目中图片的应用场景. ...
- JavaWeb 路径问题
路径问题 CreateTime--2016年9月22日15:19:56 Author:Marydon 一.jsp页面 src="../demo/clazz/clazz_add.js&qu ...
- vue打包之后找不到图片路径,打包项目时,dist文件夹内部分图片找不到
1.打包项目时,会默认把存放在public内的小于4k的图片转换成base64,作为内联样式. 可以在vue.config.js中修改默认大小,在chainWepack:config=>{}中添 ...
- eclipse实现JavaWeb应用增量打包
很多情况下,项目是不允许全量发布的,所以你得把有做修改的文件一个个挑出来,如果有成千上百的文件,你是不是要头大了? 以下方法应该可以让你得到解救!前提是你是用装有svn plugin的eclipse上 ...
- JavaWEB路径总结
这篇文章是小编一直想写的一篇,主要是对web阶段中各个路径进行的一些总结,希望读者看过之后对于路径方面有一个清晰的认识.首先声明一点:世界上一切东西都是相对的,对于这点而言,相信大家并不陌生,从初中开 ...
随机推荐
- ubuntu14.04上Virtualbox安装win7(使用Ghost镜像安装,启用USB设备支持,设置共享目录)
由于某些软件只有windows版本,于是只好安装个虚拟机win7 /**************************安装*************************************/ ...
- Android中Intent的用法总结
Intent只在Android中特有,我把它比作一种运载工具,就像飞机一样,会把一些人带到某个地方,而且如果需要的话,还可以找到机上有哪些人员(数据),这就需要另外一些设备来支持(如:Bundle), ...
- 使用Junit等工具进行单元测试
一.类的定义: 类是同一事物的总称,类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类. 二.Junit工具的使用: 1.首先新建一个项目叫JUnit_Test,我们编写一个 ...
- ASP.NET MVC 多语言方案
前言: 好多年没写文章了,工作很忙,天天加班, 每天都相信不用多久,就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰,想想还有点小激动~~~~ 直到后来发生了邮箱事件,我竟然忘了给邮箱密 ...
- Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
一.HDFS出现的背景 随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多 ...
- Unity3D游戏开发初探—2.初步了解3D模型基础
一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...
- 基于HttpModule的简单.NET网站授权方案
摘要 本文介绍一种入门级的网站授权(注:这里所指的授权指的是注册码效果,而不是网站登陆时的身份授权)方案,仅供学习交流及对付小白客户使用.复杂的网站授权涉及网站加密等一系列复杂的技术,不做本文介绍内容 ...
- JavaScript面试时候的坑洼沟洄——表达式与运算符
上篇博客JavaScript面试时候的坑洼沟洄--数据类型总结了一下JavaScript数据类型几转换的相关知识,很多朋友可能和我一样,买了书后对数据类型啊.运算符啊.语句啊都是扫两眼或直接略过的,自 ...
- Web Modify The Html Elements According Url Parameters With Jquery
需求说明 根据URL的参数, 来批量的对某些HTML元素做统一的修改. 解决思路 首先, 想办法获得这个URL的参数, 然后遍历对应的HTML元素, 做出对应的修改. 即可. 代码实现 <!DO ...
- Atitit.软件开发的几大规则,法则,与原则Principle v3
Atitit.软件开发的几大规则,法则,与原则Principle v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ...