EL表达式的11大隐式对象

问题?EL的11大隐式对象有哪些?和jsp的9大隐式对象有区别吗?

首先,EL的11大隐式对象与jsp的9大隐式对象是不同的。前者的对象只在<%%>中使用。而后者在${}表达式中使用

一、获取JSP的内置对象(11大EL内置对象):难点,不要与JSP的内置对象和范围名称搞混

11大EL隐式对象中,其中一个是表示自身对象外,其余都是表示的Map结构

EL隐式对象名称 Java类型 备注
pageContext javax.servlet.jsp.PageContext 与JSP中的内置对象完全相同
pageScope java.util.Map 代表着PageContext页面范围域那个Map
requestScope   代表着ServletRequest请求范围域那个Map
sessionScope   代表着HttpSession会话范围域那个Map
applicationScope   代表着ServletContext应用范围域那个Map
param   请求参数。key:请求参数的名称。value:请求参数的值,它是字符串。
paramValues   请求参数。key:请求参数的名称。value:请求参数的值,它是字符串数组。
header   代表着请求消息头。key:头名称。value:头值,它是一个字符串。
headerValues   代表着请求消息头。key:头名称。value:头值,它是一个字符串数组。
cookie   代表客户端提交的Cookie的Map。key:cookie的name。value:cookie对象本身
initParam   代表着全局初始化参数(web.xml中context-param).key:参数名称。value:参数值

例子:

Bean类

package com.dp.javaweb.domain;

import java.io.Serializable;
import java.util.Date;

public class bean implements Serializable{
	//80%的类都实现这个接口,虽然并不是都用,但是养成良好的习惯是好的
	private String username="sssss";
	private String password;
	private boolean marry;
	
	public bean(String username, String password, boolean marry) {
		super();
		this.username = username;
		this.password = password;
		this.marry = marry;
	}
	public bean() {
		// TODO Auto-generated constructor stub
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public boolean isMarry() {//is和get是一样的
		return marry;
	}
	public void setMarry(boolean marry) {
		this.marry = marry;
	}

}

jsp

<%@page import="com.dp.javaweb.domain.bean"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP '3.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    

EL表达式的11大隐式对象(跟jsp的9大隐式对象是不同的)

pageContext内置对象

${pageContext.request }
${pageContext.request.contextPath }
${pageContext.response.characterEncoding }

pageScope内置对象

<% pageContext.setAttribute("p1", "p1的值"); pageContext.setAttribute("p2", new bean("Mr_Li13","男",true)); pageContext.setAttribute("p3", new bean("Mr_Li131","男",true),PageContext.REQUEST_SCOPE); session.setAttribute("user", new bean("Mr_Li13","男",true)); %> ${pageScope.p1 }
${pageScope.p2.username }
${requestScope.p3.username }

${empty sessionScope.user?"请登录":"欢迎您:" }${sessionScope.user.username}

param请求参数的使用

${param }
${paramValues.username[0]}——${paramValues.username[1] }——${paramValues.password[0] }

header对象的使用

${header["accept-encoding"] }
${headerValues["accept-encoding"][0] }

Cookie对象的用法

${cookie }
${cookie["JSESSIONID"].name }
${cookie.JSESSIONID.value }

initParam对象

${initParam.Encodingvalue }
结果:

                   EL表达式的11大隐式对象_第1张图片

你可能感兴趣的:(--------《JSP》,JSP理解和学习)