文档章节

表单form action的url写法

sunru
 sunru
发布于 2017/07/20 21:43
字数 740
阅读 9
收藏 0

在写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提供了一个很好的例子,只不过“/”更规范一些

本文转载自:http://blog.sina.com.cn/s/blog_9f33f9170102v7h4.html

共有 人打赏支持
sunru
粉丝 4
博文 71
码字总数 21332
作品 0
南京
使用jquery提交form表单

需求是:新增页面,有一个表单要提交,正常直接在action中写url,点击submit按钮就可以提交了,但我希望能够在表单提交之前验证一下文本框内容。于是,使用jquery来验证表单,验证通过后提交...

hhj187
2016/08/22
7
0
CodeIgniter在nginx下rewrite配置问题

昨天在服务器上安装了Codeigniter,同时修改了nginx相关配置,ci可以正常运行了。 但今天在做表单提交时又出现了问题,问题如下: 在我之前的rewrite配置下,ci的正常url为http://localhost/...

墨梅
2016/03/11
103
0
django 自定义form表单数据在前台界面显示方式

1、在后台,自定义form class PolicyForm(forms.Form): #==label 用来控制 form 字段的 中文显示,widget 可以控制其他属性,比如样式等 name = forms.CharField(label="名称*:", error_mess...

狼行-狼行
2014/06/16
0
0
深入分析JavaWeb Item8 -- HttpServletResponse常见应用

一、HttpServletResponse常见应用——生成验证码 1.1、生成随机图片用作验证码   生成图片主要用到了一个BufferedImage类,    生成随机图片范例: 运行结果如下:    二、HttpServlet...

小平果
2017/11/29
0
0
ASP.NET MVC HtmlHelper

,ASP.NET MVC提供了一个HtmlHelper用于生成有数据绑定的Html标签。 1.ActionLink 其中最常用的就是Html.ActionLink (1).ActionLink(string linkText, string actionName) //页面显示linkTex...

随智阔
2013/02/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之声明合并(二)

转发 TypeScript基础入门之声明合并(二) 声明合并 合并命名空间 与接口类似,同名的命名空间也将合并其成员。 由于名称空间同时创建了名称空间和值,因此我们需要了解它们是如何合并的。 要合...

durban
3分钟前
0
0
centos7系统安装sersync+rsync实现服务器同步功能

centos7系统安装sersync+rsync实现服务器同步功能 MQ_douer0人评论21708人阅读2017-04-08 15:49:03 一、为什么要用sersync+rsync架构? 1、sersync是基于inotify开发的,类似于inotify-tools...

linjin200
4分钟前
0
0
Windows下安装phpRedis扩展

Windows下安装phpRedis扩展 通常在做PHP程序测试时,会用到Redis。而一般测试都是在Windows下进行的,所以需要在Windows环境下安装phpRedis扩展,用以支持php对Redis的访问。 工具/原料 php调...

梦梦阁
8分钟前
0
0
HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法

HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法 在做双十一压测时,高并发调用requests时报错.问题解决方法 问题原因 是因为在每次数据传输前客户端要和服务器建立TCP...

_Change_
13分钟前
0
0
iosdfgh

复制 IO流 (***** 了解 *****) 1.1 概述 之前我们学习了 File 类,这个类中有很多操作文件本身的方法, File类它只能操作文件或文件夹,并不能去访问文件中的数据。真正保存数据的是文件,数据...

码农屌丝
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部