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 ...
随机推荐
- (luogu P1594)护卫队[TPLY]
(luogu P1594) 护卫队 题目链接 https://www.luogu.org/problemnew/show/P1594 很好的一个模型 题目大意 有一个有序的车队,要求将其分成若干段,每 ...
- [BZOJ1012] [JSOI2008] 最大数maxnumber (ST表)
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插 ...
- 【linux之进程管理,系统监控】
一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R ...
- 论文笔记(8):BING: Binarized Normed Gradients for Objectness Estimation at 300fps
译文: <基于二值化赋范梯度特征的一般对象估计> 摘要: 通过训练通用的对象估计方法来产生一组候选对象窗口,能够加速传统的滑动窗口对象检测方法.我们观察到一般对象都会有定义完好的封闭轮廓, ...
- kali linux安装搜狗输入法的方法
kali linux安装搜狗输入法比较麻烦,因为有很多依赖项,不过安装好就很好用,觉得麻烦的一般安装ibus,经典,也常更新. 下面就说说怎么安装搜狗输入法: 先去http://http.kali.o ...
- 【Unity3D与23种设计模式】建造者模式(Builder)
GoF中定义: "将一个复杂的构建流程与它的对象表现分离出来,让相同的构建流程可以产生不同的对象行为表现." 建造者模式可以分为两个步骤来实施: 1.将复杂的构建流程独立出来,并将 ...
- C++调用C方法
//1,编译静态库 libtest.a gcc -c test.c -o test.o ar rc libtest.a test.o //2,编译main函数 g++ -o main main.cpp ...
- NGINX压力测试
目录 1 硬件配置 3 1.1 型号 3 1.2 CPU 3 1.3 内存 3 2 软件环境 3 2.1 操作系统 3 2.2 ...
- Java设计模式-合成模式
合成模式有时也叫组合模式,对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性.掌握组合模式的重点是要理解清楚 "部分/ ...
- 吐槽net下没有靠谱的FastDFS的sdk之使用thrift实现JAVA和C#互通
事情是这样的,在一个新项目中引入了fastdfs,用这玩意做一些小数据的存储还是很方便的,然后在nuget上就找一个对接FastDFS的sdk,如下图: 一眼就看到了这个top1的sdk,应该会比较靠 ...