表单form action的url写法
博客专区 > sunru 的博客 > 博客详情
表单form action的url写法
sunru 发表于7个月前
表单form action的url写法
  • 发表于 7个月前
  • 阅读 8
  • 收藏 0
  • 点赞 1
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

在写web页面时,标签 是很常见的元素,它的一个属性是action,用来标识将表单交给谁去处理。很显然,这里有一个地址的问题,而且是在服务器这边的地址。比如服务器内的一个servlet。

 

那么这个地址怎么写?

 

1.以"/"开头的表示绝对地址,即web根目录,比如你用tomcat服务器,那么就是指webapp目录了。

 

2.不以"/"开头的表示的是相对地址,即相对于当前这个页面的地址。

 

举个例子,我们这里有一个项目Shop,结构图如下:

表单form <wbr>action的url写法
 

    在WebContent目录下面,新建了一个view文件夹存放网站页面,我们写了一个login.html的登陆页面,form要交给一个servlet来处理,给servlet的url-pattern是"/validate",其中的表单form里的action该如何写呢?

 

   用绝对地址:action="/Shop/validate",这里"/"指向web根目录,Shop是项目上下文。

   用相对地址 : action="./view/validate",这里"./"跳出了view目录,进入到了Shop项目目录内。

   

   在Servlet与JSP核心编程一书中,作者说对于"/"这个目录,凡是要让服务器解析的都指的是web应用的根目录,凡是让浏览器解析的都指的是服务器的根目录。

 

   下面是论坛内其他人的回答,意思一样:

需要注意的是,你现在讨论的是HTML的相关路径与绝对路径的问题。
先看一下下面的URL:
http://192.168.1.1:8080/hello/index.html
一个URL由
服务器地址: http://192.168.1.1:8080
WEB应用上下文:  /hello
网页或请求:  /index.html
三个部分组成。
WEB应用发布时,WEB应用上下文可以自行指定,如放在ROOT/下的话,WEB应用上下文就是空,如:
http://192.168.1.1:8080/index.html
它的WEB应用上下文就是空。

HTML协议中要求,form的action属性,以“/”开头是绝对路径,不以“/”开头的是相对路径。
绝对路径是相对于服务器地址而言的,相对路径是相对于当前网页或请求而言的。
举一个例子,你的当前网页位置是:
http://192.168.1.1:8080/hello/page/index.html
其中/hello是WEB应用上下文;/page/index.html是网页。
在这个网页上有一个请求需要指向
http://192.168.1.1:8080/hello/servlet/checkUser.cgi
index.html中的form应该怎么写呢?
可以写成绝对路径(相对于http:/192.168.1.1:8080)
也可以写成相对路径(相对于http://192.168.1.1:8080/hello/page

当前如果你的WEB应用是基于JSP的话,有许多第三方的标签库如JSTL或基于Struts的标签库都可以在form中自动为你加上WEB应用上下文,如二楼东走西顾的例子。
如果你准备在JSP使用基本语句生成网页的话,六楼honglei915提供了一个很好的例子,只不过“/”更规范一些

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 3
博文 70
码字总数 21332
×
sunru
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: