Servlet会话追踪(隐藏表格栏位)

  1. 隐藏表格栏位
  2. 隐藏表格栏位范例
在” 隐藏表单字段” 的情况下, 将使用一个隐藏(不可见)文本字段来维护用户的状态。
在这种情况下, 我们将信息存储在隐藏字段中, 并从另一个servlet获取信息。如果我们必须在所有页面中提交表单并且我们不想依赖浏览器, 那么这种方法会更好。
让我们看一下将值存储在隐藏字段中的代码。
< input type="hidden" name="uname" value="http://www.srcmini.com/Vimal Jaiswal">

在这里, uname是隐藏字段的名称, 而Vimal Jaiswal是隐藏字段的值。
隐藏表单域的实际应用
它以网站的评论形式广泛使用。在这种情况下, 我们会将页面ID或页面名称存储在隐藏字段中, 以便可以唯一地标识每个页面。
隐藏表单域的优势
  1. 无论是否禁用cookie, 它都将始终有效。
隐藏表单域的缺点:
  1. 它在服务器端维护。
  2. 每页都需要提交额外的表单。
  3. 只能使用文字信息。
使用隐藏表单字段的示例
在此示例中, 我们将用户名存储在一个隐藏的文本字段中, 并从另一个servlet获取该值。
Servlet会话追踪(隐藏表格栏位)

文章图片
index.html
< form action="servlet1"> Name:< input type="text" name="userName"/> < br/> < input type="submit" value="http://www.srcmini.com/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='http://www.srcmini.com/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>

下载此示例(使用Myeclipse IDE开发)
下载此示例(使用Eclipse IDE开发)
【Servlet会话追踪(隐藏表格栏位)】下载此示例(使用Netbeans IDE开发)

    推荐阅读