猿教程 Logo

2) Servlet使用隐藏表单

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

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

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

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

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


应用隐藏表单字段的案例

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


隐藏表单字段的优点

  1. 它将始终工作,无论是否禁用cookie。


隐藏表单字段的缺点:

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

使用隐藏表单字段的示例

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



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>


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Servlet/hidden-form-field-in-session-tracking.html