4.最高级服务器关闭:数据才会消失.
pageContext.setAttribute("name1","吉士先生1"); //保存的数据只在一个页面中有效 request.setAttribute("name2","吉士先生2"); //保存的数据只在一次请求中有效,请求转发会携带这个数据 session.setAttribute("name3","吉士先生3"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器 application.setAttribute("name4","吉士先生4"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器
验证页面和转发的局限
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--内置对象--%> <% pageContext.setAttribute("name1","吉士先生1"); //保存的数据只在一个页面中有效 request.setAttribute("name2","吉士先生2"); //保存的数据只在一次请求中有效,请求转发会携带这个数据 session.setAttribute("name3","吉士先生3"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器 application.setAttribute("name4","吉士先生4"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器 %> <% //通过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"); %> <%--使用el表达式进行输出--%> <h1>输出的值为</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> </body> </html>
<%-- Created by IntelliJ IDEA. User: 22612 Date: 2022/11/12 Time: 8:47 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% //通过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"); %> <%--使用el表达式进行输出--%> <h1>输出的值为</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> </body> </html>
1.第一个页面
第二个页面打开,
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--内置对象--%> <% pageContext.setAttribute("name1","吉士先生1"); //保存的数据只在一个页面中有效 request.setAttribute("name2","吉士先生2"); //保存的数据只在一次请求中有效,请求转发会携带这个数据 session.setAttribute("name3","吉士先生3"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器 application.setAttribute("name4","吉士先生4"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器 %> <% //通过pageContext进行获取存的信息 //从底层到高层(作用域) page-->request-->session-->application String name1 = (String) pageContext.findAttribute("name1"); String name2 = (String) pageContext.findAttribute("name2"); String name3 = (String) pageContext.findAttribute("name3"); String name4 = (String) pageContext.findAttribute("name4"); pageContext.forward("/pageDemo2.jsp"); %> <%--使用el表达式进行输出--%> <h1>输出的值为</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> </body> </html>
<%-- Created by IntelliJ IDEA. User: 22612 Date: 2022/11/12 Time: 8:47 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% //通过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"); %> <%--使用el表达式进行输出--%> <h1>输出的值为</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> </body> </html>
转发:
44.JSP标签,JSTL标签,EL表达式
1.EL表达式:
1.定义:
语言是一种简单的语言,提供了在 JSP 中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理 程序 编写起来更加简洁,便于开发和维护。 [2] 在JSP中访问模型对象是通过EL表达式的语法来表达。 所有EL表达式的格式都是以“$ {}”表示。
2.作用:
(1).获取数据
1. 默认从小到大的范围中找,找到第一个就返回。 ${name} 2.获取指定的位置: 切记没有pageScope 获取request作用域中的username: ${requestScope.username} 获取session作用域中的username: ${sessionScope.username} 获取application作用域中的username: ${applicationScope.username}
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>EL表达式</title> </head> <body> <% pageContext.setAttribute("username","zhangsan"); request.setAttribute("username","lisi"); session.setAttribute("username","wangwu"); application.setAttribute("username","zhaoliu"); %> ${username} ${username} </body> </html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>EL表达式</title> </head> <body> <% pageContext.setAttribute("username","zhangsan"); request.setAttribute("username","lisi"); session.setAttribute("username","wangwu"); application.setAttribute("username","zhaoliu"); %> ${requestScope.username} ${sessionScope.username} ${applicationScope.username} </body> </html>
3.获得集合中的值和集合的长度 array是集合的变量名. ${arry[1]}--${arry[2]} ${arry.size()}
<%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>EL表达式</title> </head> <body> <% ArrayList<String> list=new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); request.setAttribute("arry",list); %> ${arry[1]}--${arry[2]}<br> ${arry.size()} </body> </html>