本章目标
掌握表达式语言中的各主要内置对象的使用;
可以使用表达式输出指定范围的属性或者是参数。
表达式语言的内置对象定义
属性范围
设置同名属性
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
<title>设置同名属性</title>
</head>
<body>
<%
pageContext.setAttribute("info", "page 属性范围");//设置一个 page 属性
request.setAttribute("info", "request 属性范围");//设置一个 request 属性
session.setAttribute("info", "session 属性范围");//设置一个 session 属性
application.setAttribute("info", "application 属性范围");//设置一个 application 属性
%>
<h3>${info}</h3><!-- 表达式输出 -->
</body>
</html>
效果图:
指定取出范围的属性
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
<title>指定取出范围的属性</title>
</head>
<body>
<%
pageContext.setAttribute("info", "page 属性范围");//设置一个 page 属性
request.setAttribute("info", "request 属性范围");//设置一个 request 属性
session.setAttribute("info", "session 属性范围");//设置一个 session 属性
application.setAttribute("info", "application 属性范围");//设置一个 application 属性
%>
<h3>page 属性内容:${pageScope.info}</h3><!-- 表达式输出 -->
<h3>request 属性内容:${requestScope.info}</h3><!-- 表达式输出 -->
<h3>session 属性内容:${sessionScope.info}</h3><!-- 表达式输出 -->
<h3>application 属性内容:${applicationScope.info}</h3><!-- 表达式输出 -->
</body>
</html>
效果图:
调用JSP内置对象的方法
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
<title>调用JSP内置对象的方法</title>
</head>
<body>
<h3>IP地址:${pageContext.request.remoteAddr}</h3>
<h3>SESSION ID:${pageContext.session.id}</h3>
<h3>是否是新的ID:${pageContext.session.new}</h3>
</body>
</html>
效果图:
接收请求参数
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
<title>接收参数</title>
</head>
<body>
<h3>通过内置对象接收输入参数:<%=request.getParameter("ref") %></h3>
<h3>通过表达式语言接收输入参数:${param.ref}</h3>
</body>
</html>
效果图:
使用表达式接收一组参数
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
<title>定义表单,传递复选框</title>
</head>
<body>
<form action="demo5Post.jsp" method="post">
兴趣:
<input type="checkbox" name="inst" value="唱歌">唱歌
<input type="checkbox" name="inst" value="游泳">游泳
<input type="checkbox" name="inst" value="看书">看书
<input type="submit" value="显示">
</form>
</body>
</html>
效果图:
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
<title>使用表达式接收参数</title>
</head>
<%request.setCharacterEncoding("utf-8"); %>
<body>
<form>
<h3>第一个参数:${paramValues.inst[0]}</h3>
<h3>第二个参数:${paramValues.inst[1]}</h3>
<h3>第三个参数:${paramValues.inst[2]}</h3>
</form>
</body>
</html>
效果图:
小结
默认情况下表达式是采用顺序的方式输出属性的顺序:page —> request —> session —> application
通过param可以进行参数的接收;