Java Web应用开发:关于路径.docx
13关于路径1路径分类1.1 客户端路径和服务端路径客户端路径是由客户端浏览器发起请求的路径,例如图片路径、超链接路径、表单提交地址、背景图路径、链 接js文件的路径,链接CSS文件的路径。简单点理解就是html文件里可以使用的各种路径。重定向路径也是客户 端路径。服务端路径是由服务端发起请求的路径,目前学过的有include (静态、动态1 forward路径。是服务端转发 请求给服务端另一组件,或者包含另一服务端组件的路径。1.2 绝对路径和相对路径绝对路径绝对路径以7开头,(如果是 :*这种完整的地址也算绝对路径,这种路径容易理解,我们不讨论X如果是客户端绝对路径(超链接、图片地址等):'7代表web服务器地址,例如:127.0.0.1:8080因此如果想要超链接到showProducts.jsp ,绝对路径的写法是:<a href= /estore/pages/product/showProducts.jspn >如果是服务端绝对路径(forward jnclude等):7代表当前web应用,例如127.0.0.1:8080/estore因此转发请求到showProducts.jsp,绝对路径的写法是:request.getRequestDispatcher(,7pages/product/showProducts.jsp").forward(.)想包含showProducts.jsp,绝对路径的写法是:<jsp:include page=7pages/product/showProducts.jsp 7>相对路径相对路径,不以7开头,相对于当前文件所在的目录/文件夹路径。当前路径是什么可以看工程结构,最好是看网页地址栏。国商品展示Xf 1、当前页面是showProducts.jsp,当前页面所在目录/<-> c d :8080/estoestep/pdqes/poduct/|howPoductcjsp路径是(红框中):127./estore-step/pages/product表示父路径(上级路径),所以这个路径表示product文件夹的上<tbody>相对于<tr><!-第一件商品-><td align="center" width="40%"><!-每行第一列展示商品图片-厂<iag width- 110" height 10a src=</td><td></td></tr> <tr>.</tr></tbody>html body table tbody tr td table tbody tr td i: Console What's New Request blocking x$。 II :/127.0.0.1:8080/estore-step/productlmages/pig.jpg JX. height: 100px;) Inherited from tabletabLe 110 x 100 pixels (intrinsic: 220 x 220 pixels)级的文件夹的上级文件夹下的productimages文件夹中的pig.jpguser agent styLesheet 2页面里写绝对路径还是相对路径页面里写绝对路径比拟准确,不容易错,但是直接写绝对路径时最好不要写死工程名字。例如:< img src = n/estore/systemlmages/top.jpg7>< img src = 7estore/productlmages/pig.jpg7>< form action = /estore/pages/product/showProducts.jsp/ >< a href = 7estore /pages/product/showProducts.jsp/, >这种写法,这些写死的(直接使用了应用名称)绝对路径,如果换一个工程,路径里的应用名字都要换掉。好一些的方法是,写成下面的样子,< img src = "<%=request.getContextPath() %>/productImages/pig.jpg7>其中<%=request.getContextPath()%>就代表当前应用根目录,本例即Vestore,但是这种方式,<%=.%> 也要写在每一处。3 vbase,标签<head>标签里的<base>标签,href属性值是一个路径,用于指明本页面中相对路径的起点。<head><base href = "本页面中相对路径的起点“</head>用了 base标签后,页面中的所有客户端相对路径(img , href , action , background ,链接css ,链接js 等),会相对于base标签href指明的路径。注意:base标签对服务端路径不生效(对include , forward不生效为 showProducts.jsp 和 head.jsp 页面修改路径(1)为页面加上<base>标签,相对路径的起点设置为应用的根目录,注意:base必须要放在head标签下:El head.jsp 囹 showProducts.jsp 笈 21 ProductServlet.java1 <% page language-java" contentType=,ftext/ht/nl; charset=UTF-8" pageEncoding="UTF-8"%>2-<html>3 <head>4title)商品展示/title)5 basnr=<%e2ueetContextPath£>/ < !-此例相当于base hre-f="/estore/"> ->6</head>79 <body>由 8-<table width=H1024/r border/" align=*,center,>9<!第一行顶部 head.jsp ->10><tr>(2)页面中所有的客户端路径都改成相对路径,都基于web应用根目录向下写就行了,例如:<!一第一行的中部,商品展小区一<td width="724" align=wcenter,f valign="top" bgcolor = n#FFFFFF19><!-0品展.藜整g?、二> 写相对路径,不要以7开头,相对于base>指明的</div> -一""起点(web应用根目录)开始写路径。这里只截了部<table border=,r width="724”>分,其余路径请自行修改。<tr><!-第一件商品_<td align = "centerir width=M40w><I-每行第一列展示商品图片-><img width=,110r, height=r,10011 src = "product工mages/pig.jpg”/></td>(3)将head.jsp页面中的绝对路径也改成相对路径(相对于base>指明的起点注意:head.jsp无需添加base标签,因为它包含在showProducts.jsp中,最终成为showProducts.jsp的 一局部,showProducts.jsp的开头的base对它也是生效的。5测试showProducts.jsp页面效果页面效果和文档1.2商品展示静态页面的效果相同。