jsp中的四个域对象和jstl中的scope和对应的表达式

    xiaoxiao2021-04-16  29

    在java bean的4种scope,其中三种在JSP和servlet中都有其对应的对象: scope="request" 对应于JSP的request,以及servlet的request scope="session" 对应于JSP的session,以及servlet的request.getSession() scope="application" 对应于JSP的application,以及servlet的this.getServletContext()

    唯独一个scope="page",在JSP在对应为page(?),可是在servlet中,却找不到对应的对象。。。

    scope="page"貌似对英语jsp的pageContext这个内置对象。。。

     EL 变量

    EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

    因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,

    再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,

    但是假如全部的范围都没有找到时,就回传null,当然EL表达式还会做出优化,页面上显示空白,而不是打印输出NULL。

    属性范围(jstl名称)

    EL中的名称

    Page

    PageScope

    Request

    RequestScope

    Session

    SessionScope

    Application

    ApplicationScope

    我们也可以指定要取出哪一个范围的变量:

    范例

    说明

    ${pageScope.username}

    取出Page范围的username变量

    ${requestScope.username}

    取出Request范围的username变量

    ${sessionScope.username}

    取出Session范围的username变量

    ${applicationScope.username}

    取出Application范围的username变量

    其中,pageScope、requestScope、sessionScope和applicationScope都是EL 的隐含对象,

    由它们的名称可以很容易猜出它们所代表的意思,

    例如:${sessionScope.username}是取出Session范围的username 变量。这种写法是不是比之前JSP 的写法:

    String username =(String) session.getAttribute("username");容易、简洁许多.

    转载请注明原文地址: https://ju.6miu.com/read-672171.html

    最新回复(0)