|
@@ -0,0 +1,54 @@
|
|
|
+package com.lovecoding.request;
|
|
|
+
|
|
|
+import com.sun.deploy.util.StringUtils;
|
|
|
+
|
|
|
+import javax.servlet.ServletException;
|
|
|
+import javax.servlet.annotation.WebServlet;
|
|
|
+import javax.servlet.http.HttpServlet;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import javax.servlet.http.HttpSession;
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
+@WebServlet("/session")
|
|
|
+public class SessionServlet extends HttpServlet{
|
|
|
+
|
|
|
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
+
|
|
|
+ req.setCharacterEncoding("UTF-8");
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 最初 WAP 年代, 用户身份ID 是URL 里保存携带的
|
|
|
+ * 后来 就开始使用 Session , 主要是用浏览器 cookie 存储用户身份ID
|
|
|
+ * 再后来 就开始使用 浏览器 session 存储用户身份ID
|
|
|
+ * 现在呢 我们使用 JWT 技术, 把用户的数据信息 加密存储到 浏览器端, 通过Header 传递到服务器
|
|
|
+ */
|
|
|
+
|
|
|
+ //获取用户Session, 参数的意思是 如果没有给用户开启Session 则开启session
|
|
|
+ HttpSession session = req.getSession(true);
|
|
|
+ System.out.println( session.getId() );
|
|
|
+
|
|
|
+ String username = req.getParameter("username");
|
|
|
+ if ( username == null ) {
|
|
|
+ username = "";
|
|
|
+ }
|
|
|
+ session.setAttribute("name", username );
|
|
|
+
|
|
|
+ Brand brand = new Brand();
|
|
|
+ brand.setBrandName("新华书社");
|
|
|
+ brand.setCompanyName("新华");
|
|
|
+ brand.setDescription("新华出版社");
|
|
|
+ brand.setId(1);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 也即是说 Session 是持久化的, session没过期之前都可以读取数据
|
|
|
+ * Request 是临时的, 数据是在内存里传递的
|
|
|
+ */
|
|
|
+
|
|
|
+ session.setAttribute( "brand", brand );
|
|
|
+ req.setAttribute( "brand", brand );
|
|
|
+ req.getRequestDispatcher("./session.jsp").forward(req, resp);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|