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阶段中各个路径进行的一些总结,希望读者看过之后对于路径方面有一个清晰的认识.首先声明一点:世界上一切东西都是相对的,对于这点而言,相信大家并不陌生,从初中开 ...
随机推荐
- iOS 10 开发问题总结
兼容iOS 10 资料整理笔记 1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大 ...
- DSY3163*Eden的新背包问题
Description "寄没有地址的信,这样的情绪有种距离,你放着谁的歌曲,是怎样的心心静,能不能说给我听."失忆的Eden总想努力地回忆起过去,然而总是只能清晰地记得那种思念的 ...
- 关于媒体查询 @Media Screen 与响应式
其实CSS2中已经有了媒体查询的概念,但是CSS3中媒体查询功能更加的强大! 首先,我们来看一个小例子 设置媒体查询的 Max Width ,改变窗口大小到600px的时候就会触发一下代码: @med ...
- nginx-(/usr/local/nginx/conf/nginx.conf)更改配置文件
user www www; worker_processes ; error_log /usr/local/nginx/logs/error.log info ; pid /var/run/nginx ...
- USACO翻译:USACO 2012 JAN三题(1)
USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery c ...
- Silverlight 使用DataContractJsonSerializer序列化与反序列化 Json
环境说明:Silverlight 5.1,.Net Framework 4.0 1.添加引用System.ServiceModel.Web.dll. 因为 System.Runtime.Seria ...
- Java面试查漏补缺
一.基础 1.&和&&的区别. [概述] &&只能用作逻辑与(and)运算符(具有短路功能):但是&可以作为逻辑与运算符(是“无条件与”,即没有短路的功 ...
- LogStash-2.4.0自定义区域信息插件-ISP
由于直接复制粘贴有问题,所以给出链接: http://note.youdao.com/share/?id=6dfb1f03240e156c1db4a56c85e3b6db&type=note# ...
- Visual Studio 2015 CTP6 发布
微软发布ASP.NET 5 支持在Windows.Mac和Linux上构建程序,Visual Studio 2015 CTP6(社区预览版)现已发布了.感兴趣的朋友们可以登录官网下载[http://w ...
- 如何使用Microsoft技术栈
Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术.Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种 ...