background image

2.1

 

服务器端的地址

  

 服务器端的相对地址指的是相对于你的 web 应用的地址,这个地址是在服务器端解析

(不同于

html 和 javascript 中的相对地址,他们是由客户端浏览器解析的)也就是说这时候

jsp 和 servlet 中的相对地址应该是相对于你的 web 应用,即相对于

http://192.168.0.1/webapp/

 

的。

 

  其用到的地方有:

 forward:servlet 中的 request.getRequestDispatcher(address);这个 address 是

在服务器端解析的,所以,你要

forward 到 a.jsp 应该这么写:

request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的 web 应用 webapp,

其绝对地址就是:

http://192.168.0.1/webapp/user/a.jsp

 

sendRedirect:在 jsp 中<%response.sendRedirect("/rtccp/user/a.jsp");%> 

2.22

 

、客户端的地址

 

       所有的 html 页面中的相对地址都是相对于服务器根目录(

http://192.168.0.1/

)的,

而不是

(跟目录下的该 Web 应用的目录)http://192.168.0.1/webapp/

 

的。

 Html 中的 form 表单的 action 属性的地址应该是相对于服务器根目录(

http://192.168.0.1/

)

的,

所以,如果提交到

a.jsp 为:action="/webapp/user/a.jsp"或 action="<

%=request.getContextPath()%>"/user/a.jsp;

  提交到

servlet 为 actiom="/webapp/handleservlet"  

   Javascript 也是在客户端解析的,所以其相对路径和 form

 

表单一样。

 

  因此,一般情况下,在

JSP/HTML 页面等引用的 CSS,Javascript.Action 等属性前面

最好都加上

<%=request.getContextPath()%>,以确保所引用的文件都属于 Web 应用中的目录。

另外,应该尽量避免使用类似

".","./","../../"等类似的相对该文件位置的相对路径,这样

当文件移动时,很容易出问题。