📜  Servlet中的隐藏表单字段

📅  最后修改于: 2021-01-09 12:43:07             🧑  作者: Mango

2)隐藏表格栏位

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

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

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


在这里,uname是隐藏字段的名称,Vimal Jaiswal是隐藏字段的值。

隐藏表单域的实际应用

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

隐藏表单域的优势

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

隐藏表单域的缺点:

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

使用隐藏表单字段的示例

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

index.html



Name:

FirstServlet.java

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");
        PrintWriter out = response.getWriter();
        
        String n=request.getParameter("userName");
        out.print("Welcome "+n);
        
        //creating form that have invisible textfield
        out.print("
"); out.print(""); out.print(""); out.print("
"); out.close(); }catch(Exception e){System.out.println(e);} } }

SecondServlet.java

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");
        PrintWriter out = response.getWriter();
        
        //Getting the value from the hidden field
        String n=request.getParameter("uname");
        out.print("Hello "+n);

        out.close();
                }catch(Exception e){System.out.println(e);}
    }
}

web.xml





s1
FirstServlet



s1
/servlet1



s2
SecondServlet



s2
/servlet2