5
Session小结
1 2 3
session是存放在服务器的内存中 一个用户的浏览器独享一个session
Session中的属性的默认的生命周期是30分钟
我们也可以在我们的web.xml文件中进行配置
4 5 6
Session实际应用
防止非法用户登录到某个页面 Login
package com.xueyx.testSession.zuzhi;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class Login extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ request.setCharacterEncoding(\ PrintWriter out = response.getWriter(); out.println(\用户登录\ out.println(\ out.println(\用户名:
\ out.println(\密 码:
\ out.println(\登录'>\ out.println(\ String info=(String) request.getAttribute(\ if(info!=null){ out.println(info); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
this.doGet(request, response);
LoginCl
package com.xueyx.testSession.zuzhi;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
public class LoginCl extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ PrintWriter out = response.getWriter(); request.setCharacterEncoding(\ String id=request.getParameter(\ String pwd=request.getParameter(\ System.out.println(id+pwd); if(\ HttpSession hs=request.getSession(); hs.setAttribute(\ hs.setAttribute(\ System.out.println(\ request.getRequestDispatcher(\ }else{ request.getRequestDispatcher(\ } }
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
this.doGet(request, response);
Ok
package com.xueyx.testSession.zuzhi;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
public class Ok extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ request.setCharacterEncoding(\ PrintWriter out = response.getWriter(); HttpSession hs=request.getSession(); String id=(String) hs.getAttribute(\ String pwd=(String) hs.getAttribute(\ out.println(\ if(\ out.println(\欢迎你登陆了\ }else{ request.setAttribute(\请输入信息后登陆\ request.getRequestDispatcher(\ } }
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
this.doGet(request, response);
对session销毁时间的讨论
要求:关掉浏览器后,再开浏览器,上次购买的商品还在,这就涉及到session的销毁时间 我们session的生命周期是30分钟的话,那么我们关闭浏览器的时候,session不会自动销毁,而会到30分钟过后被服务器销毁
Servlet1
package com.xueye.testsession2;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
public class Servlet1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ request.setCharacterEncoding(\ PrintWriter out = response.getWriter(); HttpSession h1=request.getSession(); h1.setAttribute(\小张\ System.out.println(\ //在我们成功创建了Session后会自动创建一个session id,这是我们将这个id放入