狂神说 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-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?