form之action的绝对路径与相对路径

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">

 

 

 

 

你可能感兴趣的:(action)