jsp作用域

jsp四大域对象

page

只在当前页面有效,跳转后无效

request

服务器跳转有效,客户端发生跳转无效,(因为客户端跳转,相当于发生两次跳转)

session

保存在浏览器会话中,服务器或客户端跳转均有效,改变浏览器访问则无效

application

保存在服务器端

先介绍以下方法

<% 
	pageContext.setAttribute("被设置属性","属性值") //设置page属性 
	request.setAttribute("被设置属性","属性值") //设置request属性,依次类推
	session.setAttribute("被设置属性","属性值")
	application.setAttribute("被设置属性","属性值")   
%>

<% out.print(pageContext.getAttribute("name-1")+"
");%> //获取page属性依次类推 <% out.print(request.getAttribute("name-2")+"
");%> <% out.println(session.getAttribute("name-3")+"
");%> <% out.print(application.getAttribute("name-4")+"
");%>

一般设置jsp页面跳转有两种方法

jsp 的forward指令


相当于对服务端进行一次跳转

a标签的超链接

<a href="url">a>

相当于对客户端进行一次跳转,服务器端两次跳转

for example

range.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>


    Title


    <%
        pageContext.setAttribute("name-1","lihua");
        request.setAttribute("name-2","zhangsang");
        session.setAttribute("name-3","wemz");
        application.setAttribute("name-4","niuma");
    %>

<%--    jsp跳转--%>
    


getName.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>


    Title


    <% out.print(pageContext.getAttribute("name-1")+"
"); out.print(request.getAttribute("name-2")+"
"); out.println(session.getAttribute("name-3")+"
"); out.print(application.getAttribute("name-4")+"
");%>

访问range.jsp时浏览器显示

jsp作用域_第1张图片

page设置的属性无法获取,因为经过了一次跳转

修改range.jsp代码改为超链接跳转

range.jsp

<%--
  Created by IntelliJ IDEA.
  User: longersking
  Date: 2023/12/31
  Time: 21:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>


    Title


    <%
        pageContext.setAttribute("name-1","lihua");
        request.setAttribute("name-2","zhangsang");
        session.setAttribute("name-3","wemz");
        application.setAttribute("name-4","niuma");
    %>

<%--    jsp跳转--%>
<%--    --%>
    获取属性


jsp作用域_第2张图片

jsp作用域_第3张图片

request获取不到属性,因为超链接两次跳转,超出request范围

现在关闭浏览器,再次访问

jsp作用域_第4张图片

可以发现只有application属性可以访问

重启服务器(idea重启按钮)

0)]

request获取不到属性,因为超链接两次跳转,超出request范围

现在关闭浏览器,再次访问

[外链图片转存中…(img-I0zq4S73-1704093093561)]

可以发现只有application属性可以访问

重启服务器(idea重启按钮)

jsp作用域_第5张图片

你可能感兴趣的:(javaweb,安装配置,java,servlet,开发语言)