隐藏表单字段

在“隐藏表单字段”的情况下,使用一个隐藏(不可见)文本字段来维护用户的状态。

在这种情况下,我们将信息存储在隐藏字段中,并从另一个servlet获取信息。 如果必须在页面中提交表单,并且不想依赖浏览器,那么这种方法会更好。

让我们看一下将值存储在隐藏字段中的代码。

<input type="hidden" name="username" value="sayasu"> 

在这里,username是隐藏字段的名称,sayasu是隐藏字段的值。

1. 表单隐藏字段的应用

表单隐藏字段广泛用于网站的评论表单。在这种情况下,我们会将页面ID或页面名称存储在隐藏字段中,以便可以唯一地标识每个页面。

2. 隐藏表单字段的优点

  • 无论是否禁用cookie,它都将始终有效。

3. 隐藏表单字段的缺点

  • 它在服务器端维护。
  • 每页都需要提交额外的表单信息。
  • 只能使用文字信息。

4. 使用隐藏表单字段示例

在此示例中,我们将用户名存储在一个隐藏的文本字段中,并从另一个servlet获取该值。

隐藏表单字段

启动Eclipse,创建一个动态Web应用项目:HiddenFormField,完整的目录结构如下:

在此应用程序中,需要创建以下几个文件:

文件:index.html

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>隐藏表单字段示例 - By xntutor.com</title> </head> <body>     <form action="servlet1">         用户名:<input type="text" name="username" /><br /> <input type="submit"             value="提交" />     </form> </body> </html> 

文件:FirstServlet.java

package com.xntutor.servlet;  import java.io.*; import javax.servlet.*; import javax.servlet.http.*;  public class FirstServlet extends HttpServlet {     public void doGet(HttpServletRequest request, HttpServletResponse response) {         try {             response.setContentType("text/html;charset=utf-8");             response.setCharacterEncoding("utf-8");             PrintWriter out = response.getWriter();              String n = request.getParameter("username");             out.print("您好," + n);              // creating form that have invisible textfield             out.print("<form action='servlet2'>");             out.print("<input type='hidden' name='username' value='" + n + "'>");             out.print("<input type='submit' value='提交'>");             out.print("</form>");             out.close();          } catch (Exception e) {             System.out.println(e);         }     }  } 

文件:SecondServlet.java

package com.xntutor.servlet;  import java.io.*; import javax.servlet.*; import javax.servlet.http.*;  public class SecondServlet extends HttpServlet {     public void doGet(HttpServletRequest request, HttpServletResponse response) {         try {             response.setContentType("text/html;charset=utf-8");             response.setCharacterEncoding("utf-8");             PrintWriter out = response.getWriter();              // Getting the value from the hidden field             String n = request.getParameter("username");             out.print("您好, " + n);              out.close();         } catch (Exception e) {             System.out.println(e);         }     } } 

文件:web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://java.sun.com/xml/ns/javaee"     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"     id="WebApp_ID" version="3.0">     <display-name>HiddenFormField</display-name>     <servlet>         <servlet-name>s1</servlet-name>         <servlet-class>com.xntutor.servlet.FirstServlet</servlet-class>     </servlet>      <servlet-mapping>         <servlet-name>s1</servlet-name>         <url-pattern>/servlet1</url-pattern>     </servlet-mapping>      <servlet>         <servlet-name>s2</servlet-name>         <servlet-class>com.xntutor.servlet.SecondServlet</servlet-class>     </servlet>      <servlet-mapping>         <servlet-name>s2</servlet-name>         <url-pattern>/servlet2</url-pattern>     </servlet-mapping>     <welcome-file-list>         <welcome-file>index.html</welcome-file>         <welcome-file>index.html</welcome-file>         <welcome-file>index.jsp</welcome-file>         <welcome-file>default.html</welcome-file>         <welcome-file>default.html</welcome-file>         <welcome-file>default.jsp</welcome-file>     </welcome-file-list> </web-app> 

启动Tomcat服务器,打开浏览器访问下面URL:

隐藏表单字段

运行结果2

运行结果3

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264036.html

(0)
上一篇 2022年6月6日
下一篇 2022年6月6日

相关推荐

发表回复

登录后才能评论