JSP中的 四大作用域

作用域:顾名思义就是其作用的范围  在程序中就是一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。(百度的)

那么在jsp中就有四大作用域

1.application作用域(serveltContext)

  其作用范围就是在整个Web程序中使用 属于大家共享的(现在还没怎么接触过 暂时放着)

2.session域

   session是一次会话 这说明在一次会话中共享其数据(当我们向服务器发送第一个请求开始,只要页面不关闭,或者会话未过期(默认30分钟),或者未调用HttpSession的invalidate()方法,接下来的操作都属于同一次会话的范畴。)

应用举例:在用户登录一个系统后  获取用户的用户名

       1.我们需要获取一个session会话对象(session和cookie的最明显的区别是session是存放在服务器上的 cookie是存放在客户端的 )

HttpSession session = request.getSession();

2.假设用户登录了此系统并且成功登录了 那么用户的一些信息例如他的用户名 身份 等一些信息我们可能还需要在其他页面使用 那么就将他的数据存放在session作用域中(session.setAttribute("user", user);) 我们当在其他页面时再去获取相应的数据内容。

// 获得用户的姓名 密码
		String ID = request.getParameter("ID");
		String password = request.getParameter("password");

		// 将用户名和密码传到service层
		UserService service = new UserService();
		User user = service.login(ID, password);

		// 判断用户是否成功的登陆
		if (user != null) {
			// 用户登录成功  重点看这里!!!!
			session.setAttribute("user", user);
			// 获得登录者的身份
			int status = user.getStatus();
			if (status == 0) {
				// 定书者身份
				// 重定向到登录成功页面 
				try {
					response.sendRedirect(request.getContextPath() + "/admin/Buyer.jsp");
				} catch (IOException e) {

					e.printStackTrace();
				}

3.当我们将数据存放在session域中的时候就可以在这个会话范畴内使用相应的数据了。例如:我们在用户登录了系统进入首页后需要获取用户的用户名就可以直接使用(页面为top.jsp):

用户名:<font color="blue">${user.name }</font>

(这是个人对session域的理解。)

3.request域(一次客户端请求:从客户端发起到服务器接收并响应该请求,或者将该请求forward到另一个页面或者Servlet进行处理而结束。这里可以看这个一起辅助理解https://blog.csdn.net/fulishafulisha/article/details/84949677

其实用法和上面session的用法差不多  差别就是作用域的范围

4.page域

就是在这一个页面使用 这个就比较简单!

我个人觉得使用比较多的是session域和request域   在什么使用什么域最主要的是看实际情况来决定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值