EL表达式学习(二)
1.从特定域中获取值;
2.从请求页面的input标签中,获取值;(同servlet中的getParameter和getParameterValues);
3.获取请求头(同servlet中的getHeader和getHeaders);
4.获取cookie和session;
5.获取全局参数;
前驱页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/JSP_Study/el_expression/04el.jsp">
name:<input name="name" type="text" value="aaa"/><br>
name:<input name="name" type="text" value="bbb"/><br>
<input type="submit" value="跳入04el.jsp"/>
</form>
</body>
</html>
测试El的JSP:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false" import="java.util.*, java.lang.*"%>
<%
// 为什么我这儿加一个逻辑判断仍然不对?
boolean t = (request.getParameter("name") == null);
System.out.println(t);
if(request.getParameter("name") == null) {
/* request.getRequestDispatcher("04pre_04el.jsp").forward(request, response); */
/* response.sendRedirect("/el_expression/04pre_04el.jsp"); */
response.sendRedirect("/JSP_Study/el_expression/04pre_04el.jsp"); // 重定向是浏览器行为!!!
} else { // 此处必须写else :并发执行不然会出现空指针异常!!!
// 去理解jsp的生成过程,转化成.class文件的过程,是否是因为存在并发的执行操作。
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EL的11个内置对象</title>
</head>
<body>
<%--
1) 1.pageContext 等价于 jsp中的pageContext内置对象
--%>
<%-- 获取上下文路径:此处的两种方式都可以,我熟悉的是通过servletContext来获取上下文路径;这里提供的request获得不太明白 --%>
${pageContext.servletContext.contextPath }<br>
${pageContext.request.contextPath }<br>
<hr>
<%--
2.pageScope
3.requestScope
4.sessionScope
5.applicationScope
从指定的域中获取数据
--%>
<%--
2) 6.param:获取参数
7.paramValues:获取所有参数值
--%>
用JSP内置的request的getParameter获取的:<%=request.getParameter("name") %><br>
用EL的param获取的: ${param['name'] }<br>
用JSP内置的request的getParameterValues获取的:<%=request.getParameterValues("name")[1] %><br>
用EL的paramValues获取的:${paramValues['name'][0] } -- ${paramValues['name'][1] }
<hr>
<%--
3) 8.header:获取请求头
9.headerValues
类似上面的param和paramValues
--%>
JSP内置对象header获取:<%=request.getHeader("host") %><br>
JSP内置对象headers获取:<%=request.getHeaders("host").nextElement() %><br>
EL内置对象header获取:${header['host'] }<br>
EL内置对象headerValues获取:${headerValues['host'][0] }
<hr>
<%--
4)10.cookie: 获取cookie
--%>
<hr/>
<%=request.getCookies()[0].getValue() %><br/>
${cookie['JSESSIONID'].name } - ${cookie['JSESSIONID'].value }
<hr/>
<%--
5)11.initParam: 获取全局参数
--%>
<%=application.getInitParameter("AAA") %><br/>
${initParam['AAA'] }
</body>
</html>
<%} %>
EL表达式学习(二)的更多相关文章
- EL表达式学习笔记
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684424.html 一:EL表达式的用途 1.获取数据:(某个web域 中的对象,访问javabean的 ...
- EL表达式学习(一)
一.初次接触EL表达式: <%@ page language="java" import="java.util.*" pageEncoding=" ...
- EL表达式学习
EL表达式取值 1.EL表达式的语法格式很简单: 以前编写jsp代码时,如果要获取表单中的用户名,一般使用 <%=request.getParameter("name")%& ...
- EL表达式(二)运算符
运算符"."和"[]": "."能做的"[]"也能做,"[]"能做的"."不一定 ...
- jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...
- EL表达式详解(常用表达式以及取值)
EL表达式 学习总结 一. El表达式概念 二. El中的表达式 1. 算术表达式 2. 比较表达式 3. 逻辑表达式 4. 三元表达式 5. 判空表达式 三.EL 从四个作用域中取值 1. 概念 2 ...
- EL表达式-例子
<%@page import="java.util.*"%> <%@page import="java.util.ArrayList"%> ...
- javaweb开发之EL表达式
一.EL简介 EL全名为Expression Language,它主要用于替换JSP页面中的脚本表达式<%= %>,从各种类型的Web域中检索Java对象.获取数据.它可以很方便地访问Ja ...
- El 表达式和 Jstl 标签库
El 表达式学习 1. 什么是 EL 表达式 全称:Expression Language,一种写法非常简介的表达式.语法简单易懂,便于使用.表达式语言的灵感来自于 ECMAScript 和XPath ...
随机推荐
- 在SublimeText3中搭建Verilog开发环境记录(二)
接上文 SublimeText3中搭建Verilog开发环境记录(一) 在实现了基础功能后,继续添加插件,让功能更为完善: 快速创建代码模块(snippet) Ctrl+鼠标左键实现模块跳转 通过iV ...
- Java安全之XStream 漏洞分析
Java安全之XStream 漏洞分析 0x00 前言 好久没写漏洞分析文章了,最近感觉在审代码的时候,XStream 组件出现的频率比较高,借此来学习一波XStream的漏洞分析. 0x01 XSt ...
- mybatis-3-核心配置文件
全局配置文件:mybatis-config.xml 1.引入外部配置文件(properties) date.properties外部配置文件 driver = com.mysql.cj.jdbc.Dr ...
- 网络损伤仪WANsim的队列深度功能
什么是队列深度 在网络损伤仪WANsim中,队列是指一个用于缓存报文的缓冲池.深度是指缓冲池可以存储的最大数据量.当WANsim接受的报文超出了带宽限制的量时,溢出的报文会进入队列中. 我们可以在WA ...
- 从redis数据库取数据存放到本地mysql数据库
redis数据库属于非关系型数据库,数据存放在内存堆栈中,效率比较高. 其存储数据是以json格式字符串存储字典的,而类似的关系型数据库无法实现这种数据的存储. 在爬取数据时,将数据暂存到redis中 ...
- odoo14学习----x2many操作与图片设置继承image.mixin
三种方式实现数据更新 一,如上所述 二,通过对数据集调用update({'key':value,'key1':value1..})更新数据集 三,调用write函数,与update类似,传递字典. ...
- 搭建MySQL主从实现Django读写分离
一.MySQL主从搭建 主从配置原理: 主库写日志到 BinLog 从库开个 IO 线程读取主库的 BinLog 日志,并写入 RelayLog 再开一个 SQL 线程,读 RelayLog 日志,回 ...
- Django报错:'Specifying a namespace in include() without providing an app_name '
环境:win10(64)+pycharm2018.3+python3.7 在网页项目中使用include()方法 项目目录中同时存在app/urls.py和proj/urls.py 在proj/url ...
- 5G时代,视频会议的未来
过去,2G打开了了移动互联网天下,3G促成了即时通信,诞生了QQ.微信等巨头,4G 带来了短视频兴起,字节跳动等公司崛起.2.3.4G的出现促成了移动互联网10年繁荣.而5G的出现,也会促成至少10年 ...
- 从net到java:java快速入门
学习java那是不可能的,到为什么不学习一下呢.仅为总结.希望自己在不久的将来能书写优美的java程序.加油!奥利给 1.注释 注释的重要性不言而喻,我们不管写什么代码注释必不可少,那么java的注释 ...