狂神说 javaweb 20集:JSP内置对象及作用域
2022/5/23 1:02:46
本文主要是介绍狂神说 javaweb 20集:JSP内置对象及作用域,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
20.JSP内置对象及作用域
8.5 9大内置对象
-
PageContext 存东西
-
Request 存东西
-
Respone
-
Session 存东西
-
Aplicatian 存东西
-
config(ServletConfig)
-
out
-
page 几乎不用,不用了解
-
Exception
作用域
pageContext.setAttribute( "name1","test1" );//保存的数据只在一个页面中有效 request.setAttribute("name2","test2" );//保存的数据只在一个请求中有效,请求转发会携带这个参数 session.setAttribute( "name3","test3" );//保存的数据只在一个会话中有效,从打开浏览器到关闭浏览器 application.setAttribute( "name4","test4" );//保存的数据只在一个服务器中有效,从打开服务器中到关闭服务器中ServletContext
应用场景:
request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的!
session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车;
application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据;
代码
pageContext.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--内置对象--%> <% pageContext.setAttribute( "name1","test1" );//保存的数据只在一个页面中有效 request.setAttribute("name2","test2" );//保存的数据只在一个请求中有效,请求转发会携带这个参数 session.setAttribute( "name3","test3" );//保存的数据只在一个会话中有效,从打开浏览器到关闭浏览器 application.setAttribute( "name4","test4" );//保存的数据只在一个服务器中有效,从打开服务器中到关闭服务器中ServletContext %> <%--脚本片段中的代码,会被原封不动生成到JSP。java 要求: 这里面的代码,必须保证java语法的正确性 --%> <% //通过pageContext取出我们保存的值 //从pageContext取出,我们同寻找的方式 //从底层到高层(作用域): page→request→session→application //JVM : 双亲委派机制; String name1 = (String) pageContext.findAttribute( "name1" ); String name2 = (String) pageContext.findAttribute( "name2" ); String name3 = (String) pageContext.findAttribute( "name3" ); String name4 = (String) pageContext.findAttribute( "name4" ); String name5 = (String) pageContext.findAttribute( "name5" );//不存在 %> <%--使用EL表达式输出 $()--%> <h1>取出的值为</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> <h3><%=name5%></h3> </body> </html>
pageContext2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% //通过pageContext取出我们保存的值 //从pageContext取出,我们同寻找的方式 //从底层到高层 String name1 = (String) pageContext.findAttribute( "name1" ); String name2 = (String) pageContext.findAttribute( "name2" ); String name3 = (String) pageContext.findAttribute( "name3" ); String name4 = (String) pageContext.findAttribute( "name4" ); String name5 = (String) pageContext.findAttribute( "name5" );//不存在 %> <%--使用EL表达式输出 $()--%> <h1>取出的值为</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> <h3><%=name5%></h3> </body> </html>
pageContext3.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%-- public static final int PAGE_SCOPE = 1; public static final int REQUEST_SCOPE = 2; public static final int SESSION_SCOPE = 3; public static final int APPLICATION_SCOPE = 4; //scope : 作用域 public void setAttribute(String name, Object attribute, int scope) { switch(scope) { case 1: this.mPage.put(name, attribute); break; case 2: this.mRequest.put(name, attribute); break; case 3: this.mSession.put(name, attribute); break; case 4: this.mApp.put(name, attribute); break; default: throw new IllegalArgumentException("Bad scope " + scope); } } --%> <% pageContext.setAttribute("hello1","hello1",PageContext.SESSION_SCOPE); //session.setAttribute("hello1","hello1") %> </body> </html>
pageContextDemo01.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% pageContext.forward( "/index.jsp" ); //request.getRequestDispatcher("/index.jsp").forward( request,response ); %> </body> </html>
这篇关于狂神说 javaweb 20集:JSP内置对象及作用域的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南