1、當你的form要提交到你自己的站點之外的URL的時候,就采取絕對路徑:
<form action="http://www.xxx.yyy:zzzz/mmm/nn/kkk.jsp">
2、如果是提交到自己站點內的頁面,務必使用相對路徑(為什么?見http://www.cnblogs.com/qrlozte/p/3515836.html),以tomcat為例:
比如說你的站點文件夾是D:\MySite\WebContent,也就是說,WEB-INF文件夾的路徑是D:\MySite\WebContent\WEB-INF
你在server.xml中配置了
<Context path="/mysite" docBase="D:\MySite\WebContent"/>
那么Listing1.1的含義就是提交到D:\MySite\WebContent\somepage.jsp,這里/mysite就等價於D:\MySite\WebContent,實際上,Listing1.1這種形式可以引用你的站點內的任何頁面,因此,我個人更喜歡稱之為“站內絕對路徑”
Listing1.1
<form action="/mysite/somepage.jsp">
下面來看,比如說你當前瀏覽器的地址欄是http://localhost:8080/mysite/xxx/login.jsp
而你知道在/mysite/xxx/yyy/checker.jsp中有用戶驗證的代碼,那么你在login.jsp中的form應該如何提交呢?見Listing1.2,其含義就是,以我當前的目錄為基准,進入子目錄yyy,找到yyy里面的頁面checker.jsp並提交form。這里使用的就是(站內)相對路徑了。
Listing1.2
<form action="yyy/checker.jsp">
假如說,checker.jsp也在xxx目錄中呢?顯然也是很簡單了,見Listing1.3
Listing1.3
<form action="checker.jsp">
又假如,checker.jsp在/mysite/zzz這個目錄中呢?我們需要返回上一級目錄,再進入zzz目錄,見Listing1.4
Listing1.4
<form action="../zzz/checker.jsp">
其實,由於我們已經了解了如何使用站內絕對路徑,顯然,Listing1.4這種情況也可以通過站內絕對路徑來解決,見Listing1.5
Listing1.5
<form action="/mysite/zzz/checker.jsp">