Servlet 第六课: Session的使用


课程目标:

通过这节课,我们可以学会添加session,学会调用session,以及大概懂得session存在的情况。


课程详细:

1.Session只是存在于浏览器。比如我们打开浏览器获得我们所需要的session,我们在同一个浏览器再打开,我们所需要的这个session是还存在的。

  但是如果我们换用其他的浏览器或者直接关闭浏览器,那么这个session就会过期。

2.Session
–Session 是用来跟踪用户当前状态的一种机制,是针对浏览器和服务器的一对一关系。
–Session 的一般用法是,在用户登录时将用户的登录信息保存到session中,以便以后使用。

3.Session 接口HttpSession


通常我们只使用HttpSession接口,接口的实现由web容器来完成
–可以从HttpServletRequest中获得HttpSession
request.getSession();
–将信息保存在HttpSession中
session.setAttribute(“UserSession”,obj);【特别注意:这里是可以直接存放obj对象的,打个比方我们这里可以直接存放一个user对象】


–从HttpSession中获得信息
session.getAttribute(“UserSession”);
–使HttpSession失效
session.invalidate();

4.实例讲解:

其实这个session的使用我觉得和cookie的使用基本差不多。


设置Session Servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	  HttpSession session = request.getSession();    
          session.setAttribute("session_name", "session_value");  
}

 获得Session Servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	HttpSession session = request.getSession();  
	String value = (String)session.getAttribute("session_name");
	System.out.println(value);
}

5. Session 实例,登录Session

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//为了获取前台传过来的数据:username and password
        String username = request.getParameter("username");
		String password = request.getParameter("password");
		//调用dao的实现逻辑:比如要验证用户账号和密码是否正确
		//如果正确,再通过username和password查询出所有需要的信息,然后再封装成一个user对象
		UserDao dao = new UserDaoImpl();
		User u = dao.login(username, password);

		
		if(u!=null){
			//判断,如果用户存在,就封装一个user对象,发给jsp
			HttpSession session = request.getSession();
			session.setAttribute("user", u);
			request.getRequestDispatcher("welcome.jsp").forward(request, response);
		}else{
			//判断,如果用户不存在,那么直接跳转到错误页面
			request.getRequestDispatcher("error.html").forward(request, response);
		}

	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值