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了~




































posted @ 2015-09-17 22:01  冬至饮雪  阅读(1516)  评论(3编辑  收藏  举报