EL表达式 与 servlvet3.0的新规范
EL表达式
EL表达式 是一种简化的数据访问方式,是对jsp脚本的简化 。
如我们在一个页面中需要输出session的保存的一个值:
<% out.println(session.getAttribute("name")) %> 我们可以使用jsp中内置的out对象 和session对象 输出
<%=session.getgetAttribute("name") %> 作为上面的替代品 我们可以使用输出表达式输出
但是上面二者的都是jsp脚本 为了不用jsp脚本 EL表达式应用而生
EL表达式不仅支持算术运算符 还支持逻辑运算符 并且其中内置的几个对象,和jsp页面中内置的对象相互对应 ,方便输出
支持算术表达符 ${ 1+2 } 显示 3
支持逻辑运算符 ${ 2 > 1 } 显示 true
内置对象
pageContext 对应于 jsp的内置对象pageContext
pageScope 对应于 jsp的内置对象page
requestScope 对应于 jsp的内置对象request
sessionScope 对应于 jsp的内置对象session
applicationScope 对应于 jsp的内置对象application
cookie jsp中并无对应内置对象
param paramValues header initParam 这四大对象 感觉用到会很少
回到该文章开始 我们可以使用EL表达式代替jsp脚本
${sessionScope.name } 或 ${ sessionScope["name"]}
${requestScope.apple.color} 或 ${apple.color} 如果输出的是requestScope中值 可以省略requestScope ,应该是默认会取request对象中的值
EL表达式 最多还是用来进行值的输出 ,所以不要在里面写太多的逻辑判断,虽然它支持算术运算符和逻辑运算符等 ,这些还是交给jsp脚本比较好 。
还可以通过自定义函数 来扩展EL表达式的功能。
Servlet3.0的新规范
Servlet3.0是Servlet规范历史上的比较重要的更新 ,主要有:
1.Servlet3.0的注解Annotation
开发人员在配置servlet,filter,listener的时候,除了可以在web.xml中配置 ,有了一种新的选择
涉及的javax.servlet.annotation包下提供了如下annotation
@WebServlet ------------用于修饰servlet类 ,来配置servlet
@WebFilter ------------用于修饰Filter类 ,来配置Filter
@WebListener ----------用来修饰Listener类 ,来配置Listener
@WebInitParam ---------搭配@WebServlet与@WebFilter使用 来为servlet和Filter配置参数
@MultipartConfig ------用来修饰servlet类 ,指定该servlet会处理multipart/form-data类型的请求(主要用于文件上传)
@ServletSecurity @HttpConstraint @HttpMethodConstraint 这三个主要与安全与授权相关
2.Servlet3.0的Web模块配置支持
想来看一下未引入模块配置,所有的servlet,Filter,Listener都配置在一个web.xml文件中(假设我们没有使用框架) ,项目规模不大还好 ,项目规模大了的话,web.xml文件必定很庞大。
java目录一般是把相关联的servlet,Filter.Listener放在同一个包(目录)下,我们在不同的包下新建WEB-INF目录,其中新建web-fragement.xml文件,来把项目分成不同的模块。
引入模块化配置,把相关联的servlet,Filter,Listener放在一个web—fragment.xml文件中配置 ,这样可以产生若干个web—fragment.xml ,为每个模块的web-fragment.xml文件在其中配置名称,
和该web-fragment.xml相对于其他web—fragment.xml的加载顺序。
当然我们可以在web.xml指定每个web-fragment.xml的加载顺序 ,它的优先级大于web-fragment.xml中指定的加载顺序。
这是我们发现web.xml不是这个项目自己必须写的文件,可以没有(但是其实还有有的,因为tomcat的config目录下为每个web应用指定了公用的web.xml文件)。
3.Servlet3.0提供的异步处理
4.Servlet3.0改进了Servlet API
主要修改的有两个类
HttpServletRequest类 增加了对文件上传的支持
新加的两个方法:
Part getPart(String name) ----根据名称来获取文件的上传域
Collection<Part> getParts() -----获取所有的文件上传域
关于文件上传的详细细节:
还修改了ServletContext类 提供动态注册servlet,Filter的功能,还允许动态设置web应用的初始化参数
addServlet()
addFilter()
addListener()
setInitParameter(String name ,String value)
EL表达式 与 servlvet3.0的新规范的更多相关文章
- javaweb开发之EL表达式
一.EL简介 EL全名为Expression Language,它主要用于替换JSP页面中的脚本表达式<%= %>,从各种类型的Web域中检索Java对象.获取数据.它可以很方便地访问Ja ...
- EL表达式(3)
本篇讲解使用EL表达式来调用Java方法(自定义EL函数)和Sun公司开发的EL函数库. 简单来说,我们在一个类中的某个方法,可以使用EL进行调用,这个能被EL表达式调用的方法称之为EL函数,但是这种 ...
- Javaweb学习笔记6—EL表达式与JSTL及自定义标签
今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...
- Java Web程序设计笔记 • 【第9章 EL表达式】
全部章节 >>>> 本章目录 9.1 EL 表达式基础 9.1.1 EL 表达式简介 9.1.2 EL 表达式的定义 9.1.3 使用 EL 访问变量 9.1.4 使用 E ...
- EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统
EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...
- Jsp2.0自定义标签(第三天)——EL表达式的使用
1.提出问题: 我们经常会看到这样的jsp页面代码: 浏览器显示: 为什么会在页面输出:Hello World ,${per}究竟是如何找到“Hello World”的呢? 2.分析问题: 要想解决 ...
- 11 JSP/EL表达式/EL函数
JSP * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行 * JSP的运行原 ...
- EL表达式与JSTL
内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...
- JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总
一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出. 1,JSTL标签总结: a).JSTL标签有什么用? JSTL是由JCP(Java Commu ...
随机推荐
- 关于margin-top的一些特别问题
当给子元素添加了margin-top的数值,浏览器解析的时候默认添加到父元素上解决的方法: 1 给父元素添加一个上边框border-top. 2 或者给子元素加个浮动. 3 给父元素添加overfl ...
- 【BZOJ2754】喵星球上的点名(AC自动机)
[BZOJ2754]喵星球上的点名(AC自动机) 题面 BZOJ 题解 友情提示:此题请不要在cogs上提交,它的数据有毒 对于点名串构建\(AC\)自动机 然后把名字丢进去进行匹配, 大力统计一下答 ...
- flask项目部署到阿里云 ubuntu16.04
title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始 ...
- NancyFX 第十二章 通道截拦
所有的好的Web框架都有一套好的通道截拦的机制,Nancy在我看来是处理最好的.那什么是请求通道那?下面的图可能说的比较清楚些: 正如名称中描述的,一个典型的Web请求在到达最终响应前会穿过一定数量的 ...
- NYOJ街区最短路径问题
描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相等. 用(x,y)来表示住户坐在的街区. 例如(4,20),表示用户在东西方向第4个街道, ...
- 九度OJ题目1003:A+B
while(cin>>str1>>str2)就行了,多简单,不得不吐槽,九度的OJ真奇葩 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号", ...
- 世界上最好的语言搭建短链接及统计功能(附API代码)
前言 在这个营销的时代,短链接和二维码是企业进行营销中非常重要的工具,不仅仅是缩短了链接,而且还可以通过扩展获得更多的数据,诸如点击数.下载量.来源以及时间等等. 网上搜寻了一下比较有名有U.NU和0 ...
- linux PMBus总线及设备驱动分析
PMBus协议规范介绍 PMBus是一套对电源进行配置.控制和监控的通讯协议标准.其最新版本为1.3,该规范还在不断演进中,比如新标准中新增的zone PMBus.AVSBus等特性.在其官网上有详细 ...
- 用C#开发的一个通用的地铁换乘查询工具
日常生活中,上班下班坐地铁已经是常事,每当我想去某一个远一点的地方,如果有地铁首选就是地铁,因为方便嘛!每次坐地铁,我们都是凭肉眼去得出我们心中最佳的换乘方案,但是,如果对于线路较少的城市来说,这个方 ...
- 源码实现 --> itoa函数实现
itoa函数实现 itoa()函数的功能是将一个整数转换为一个字符串 例如12345,转换之后的字符串为"12345",-123转换之后为"-123",欢迎大家 ...