使用隐藏表单字段的Servlet登录和登出示例

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

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

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

`<input type="hidden" name="uname" value="Vimal Jaiswal">`

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

隐藏表单字段的实际应用

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

隐藏表单字段的优点

  1. 无论Cookie是否禁用,它都会工作。

隐藏表单字段的缺点:

  1. 它在服务器端维护。
  2. 每个页面都需要额外的表单提交。
  3. 只能使用文本信息。

使用隐藏表单字段的示例

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

hidden1.png

index.html

<form action="servlet1">  
Name:<input type="text" name="userName"/><br/>  
<input type="submit" value="go"/>  
</form>  

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("<form action='servlet2'>");  
        out.print("<input type='hidden' name='uname' value='"+n+"'>");  
        out.print("<input type='submit' value='go'>");  
        out.print("</form>");  
        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

<web-app>  
  
<servlet>  
<servlet-name>s1</servlet-name>  
<servlet-class>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>SecondServlet</servlet-class>  
</servlet>  
  
<servlet-mapping>  
<servlet-name>s2</servlet-name>  
<url-pattern>/servlet2</url-pattern>  
</servlet-mapping>  
  
</web-app>  

标签: java, Java Servlet, Java Servlet语言, Java Servlet开发, Java Servlet语法, Java Servlet脚本, Java Servlet教程, Java Servlet入门, Java Servlet入门教程, Java Servlet进阶, Java Servlet宝典, Java Servlet学习, Java Servlet指南, Java Servlet大全