servlet 会话
Hidden form field can also be used to store session information for a particular client. In case of hidden form field a hidden field is used to store client state. In this case user information is stored in hidden field value and retrieved from another servlet.
隐藏表单字段也可以用于存储特定客户端的会话信息。 在隐藏表单字段的情况下,隐藏字段用于存储客户端状态。 在这种情况下,用户信息存储在隐藏字段值中,并从另一个servlet检索。
使用隐藏表单字段进行会话管理的优点 (Advantages of Using Hidden Form Field for Session Management)
Does not have to depend on browser whether the cookie is disabled or not.
不必取决于浏览器是否禁用了cookie。
Inserting a simple HTML Input field of type hidden is required. Hence, its easier to implement.
需要插入一个隐藏类型的简单HTML输入字段。 因此,它更容易实现。
使用隐藏表单字段进行会话管理的缺点 (Disadvantage of Using Hidden Form Field for Session Management)
Extra form submission is required on every page. This is a big overhead.
每页都需要提交额外的表单。 这是很大的开销。
演示在会话中使用隐藏表单字段的示例 (Example demonstrating usage of Hidden Form Field for Session)
Below mentioned files are required for the example:
该示例需要以下文件:
index.html
index.html
<form method="post" action="validate">
Name:<input type="text" name="user" /><br/>
Password:<input type="text" name="pass" ><br/>
<input type="submit" value="submit">
</form>
web.xml
web.xml
<web-app...>
<servlet>
<servlet-name>First</servlet-name>
<servlet-class>First</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>First</servlet-name>
<url-pattern>/First</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Second</servlet-name>
<servlet-class>Second</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Second</servlet-name>
<url-pattern>/Second</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
First.java
第一.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class First extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//getting value submitted in form from HTML file
String user = request.getParameter("user");
//creating a new hidden form field
out.println("<form action='Second'>");
out.println("<input type='hidden' name='user' value='"+user+"'>");
out.println("<input type='submit' value='submit' >");
out.println("</form>");
}
}
Second.java
第二.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Second extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//getting parameter from the hidden field
String user = request.getParameter("user");
out.println("Welcome "+user);
}
}
Like we created a hidden field in First Servlet, populated the value of user, and sent it to the Second Servlet, now Second servlet also has the user information. Similarly we will have to keep sending this information, wherever we need this, using hidden fields.
就像我们在First Servlet中创建一个隐藏字段,填充user的值,并将其发送给Second Servlet一样,现在Second servlet也具有用户信息。 同样,无论何时需要,我们都必须使用隐藏字段继续发送此信息。
翻译自: https://www.studytonight.com/servlet/hidden-form-field.php
servlet 会话