1.描述
当多个用户发起请求并创建多个session会话之后,可通过session.getId()方法,利用当前Id和浏览器的cookie进行绑定用来区分会话。
范例:
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;
public class Regist01 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
// 获得Session对象(它的值是存储在服务器端的)
HttpSession session = request.getSession();
// 设置session的属性,在session中的属性在整次会话(浏览器不关闭)都有作用
session.setAttribute("username", username);
session.setAttribute("password", password);
request.getRequestDispatcher("/regist1.html").forward(request, response);
}
}
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;
import java.io.IOException;
public class Regist02 extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
request.setCharacterEncoding("UTF-8");
// 根据request中获取session
HttpSession session = request.getSession();
// 从session获取用户名和密码
String username = (String) session.getAttribute("username");
String password = (String) session.getAttribute("password");
// 获得session的ID,session利用id和浏览器的cookie进行绑定用来区分会话(如好多浏览器请求servlet创建n个session会话)
String sessionId = session.getId();
System.out.println(sessionId);
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("用户名:" + username);
response.getWriter().println("密码:" + password);
}
}