JSP基础学习(二)

本文详细介绍了JSP中常用的内置对象PageContext、Request、Session和Application的使用,展示了如何设置和获取属性,并讨论了它们在不同作用域下的行为。同时,讲解了EL表达式的使用和解决方法,以及数据的作用域区别。
摘要由CSDN通过智能技术生成

JSP内置对象
1、PageContext
2、Request
3、Response
4、Session
5、Application(ServletContext)
6、out
7、config
8、exception
9、page
但常用的只包括1、2、4、5

<%
    application.setAttribute("name1","11"); 
    pageContext.setAttribute("name2","22"); 
    request.setAttribute("name3","33");  
    session.setAttribute("name4","44");  

%>
<%
    String name1 = (String) pageContext.findAttribute("name1");  
    String name2 = (String) pageContext.findAttribute("name2");   //在IDEA中显示灰色不代表未使用
    String name3 = (String) pageContext.findAttribute("name3");
    String name4 = (String) pageContext.findAttribute("name4");
    String name5 = (String) pageContext.findAttribute("name5");  //不存在


%>

<h1><%= name5 %></h1>
<h2>${name1}</h2>
<h3>${name2}</h3>
<h4>${name3}</h4>
<h5>${name4}</h5>

在页面中的结果为:
1
需要注意的是,由于我这边的Servlet版本为4.0.0,所有一开始未能识别EL表达式,解决办法只需要在jsp中添加一行语句,就能识别EL表达式了。

<%@ page isELIgnored="false" %>

JSP中数据的作用域

    pageContext.setAttribute(); // 保存的数据只在一个页面中有效
    request.setAttribute();  // 保存的数据在一次请求中有效,请求转发会携带这个信息
    session.setAttribute();  // 保存的数据在一次会话中有效,从打开浏览器到关闭浏览器
    application.setAttribute();  //保存的数据只在服务器中有效,从打开浏览器到关闭浏览器

request:客户端给服务器发送请求时产生的数据,用户使用完后就没用了,但可以通过pageContext.forward()对页面进行转发,此时request中保存的数据仍能在新页面中获取。
session:客户端给服务器发送请求时产生的数据,用户使用完了还可能有用,在另一个页面中仍能获取到它的值,注意是同一用户,如果你使用两个浏览器进行访问就获取不到该值了。
application:客户端给服务器发送请求时产生的数据,一个用户使用完毕了,另一个用户还可能使用,同样能在另一个页面获取到它的值。使用多个浏览器仍能获取到该值。
pageContext:客户端给服务器发送请求时产生的数据,该数据默认只在当前页面有效,但可以通过其重载方法来设置其作用域,例如pageContext.setAttribute(“name2”,“22”, …),在省略号的位置可以输入1~4,分别对应:

APPLICATION_SCOPE  application对象
PAGE_SCOPE     page对象
REQUEST_SCOPE   request对象
SESSION_SCOPE   session对象

从而实现到其他常用内置对象的作用域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值