【Java基础】——HTML隐藏域

       在最近的项目中,经常需要表单之间的传值。有时,我们不想用GET方法传,也不想显示这个唯一标识的时候,隐藏域就派上用场了。


       比如,我的表单是用户资料,需要对用户资料进行修改。但是同时又不想显示用户的登录ID;或者,登录ID已经在上一个页面显示过,这个页面只是上一个页面的下一页,我们就可以把值放到表单隐藏域中,再传到另一个页面。这样我们就可以在任何一个页面都能够标识正在编辑的这个用户资料是谁的(哪个ID)。


基本语法:


<input type="hidden" name="field_name" value="value">


用法说明:


       1、其实它跟其他表单类型是一样的,同样具有value属性,唯一的区别是:表单隐藏域不会把这个元素显示出来,但是在提交过程中依然有效。

       2、HTML采用<input>是为了显示文本数据

       3、类型为hidden,是为了在显示数据的同时,不想让浏览用户看到,该数据只提供给程序员使用

       4、由于在页面中可能采用多个程序眼控制使用的<input>,因此需要给一个标识,以备程序员读取其中的数据,name就是<input>的标识(有时采用id)。就像我们每个人一样,都有一个唯一的标识(身份证号)一样,name在理论上也是唯一的.

        5、放到<form></form>中进行提交后,可以在接受处理页面进行request,获取该元素的值。


作用:


       1、隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或者发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单时,隐藏域的信息也被一同发送到服务器。

       2、有些时候,我们需要给确定用户的信息,让他在提交表单的时候来确定用户的身份,如sessionkey等,当让这些东西也能使用cookie实现,但是使用隐藏域的话就会相对简单一些,而且不会有浏览器不支持,用户禁用cookie的烦恼。

       3、有时候,一个form中还有多个提交按钮,怎样使程序能够分清楚到底用户是按的哪一个按钮提交上来的呢?我们就可以使用隐藏域,然后每处按钮处都加上onclick="document.form.command.value="**" 然后我们就可以在接到数据后,检查command的值就会知道用户是按的哪个按钮提交上来的。

       4、有时候一个网页中有多个form,我们知道多个form是不能同时提交的,但有时候这些form确实会相互作用,我们就可以在form中添加隐藏域,使他们联系起来。

       5、JavaScript不支持全局变量。但有时我们必须使用全局变量,这时我们就可以把值先存在隐藏域中,它的值就不会丢失了。


缺点


       任何一个东西都有它的两面性,在我们看到它好的一面的同时,也必须意识到它的不足。

     

       1、具有较高的安全隐患。

       2、存储结构简单。

       3、如果存储了较多的较大的值,则会导致性能问题。

       4、如果隐藏域过多,则在某些客户端中被禁止。

       5、隐藏域将数据存储在服务器上,而不存储在客户端

注意,如果开发中,页面的隐藏域过多,这些隐藏域被存储在服务器。当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。

相关文章
相关标签/搜索