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的新规范的更多相关文章

  1. javaweb开发之EL表达式

    一.EL简介 EL全名为Expression Language,它主要用于替换JSP页面中的脚本表达式<%= %>,从各种类型的Web域中检索Java对象.获取数据.它可以很方便地访问Ja ...

  2. EL表达式(3)

    本篇讲解使用EL表达式来调用Java方法(自定义EL函数)和Sun公司开发的EL函数库. 简单来说,我们在一个类中的某个方法,可以使用EL进行调用,这个能被EL表达式调用的方法称之为EL函数,但是这种 ...

  3. Javaweb学习笔记6—EL表达式与JSTL及自定义标签

    今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...

  4. Java Web程序设计笔记 • 【第9章 EL表达式】

    全部章节   >>>> 本章目录 9.1 EL 表达式基础 9.1.1 EL 表达式简介 9.1.2 EL 表达式的定义 9.1.3 使用 EL 访问变量 9.1.4 使用 E ...

  5. EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统

    EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...

  6. Jsp2.0自定义标签(第三天)——EL表达式的使用

    1.提出问题: 我们经常会看到这样的jsp页面代码: 浏览器显示: 为什么会在页面输出:Hello World  ,${per}究竟是如何找到“Hello World”的呢? 2.分析问题: 要想解决 ...

  7. 11 JSP/EL表达式/EL函数

    JSP      * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行      * JSP的运行原 ...

  8. EL表达式与JSTL

    内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...

  9. JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总

    一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出.       1,JSTL标签总结: a).JSTL标签有什么用?          JSTL是由JCP(Java Commu ...

随机推荐

  1. 举例MyBatis的常用的API及方法

    在使用MyBatis框架是,主要涉及以下几个API: 1.SqlSessionFactoryBuilder该对象根据MyBatis配置文件SqlMapConfig.xml构建SQLSessionFac ...

  2. POJ 2195 Going Home (费用流)

    题面 On a grid map there are n little men and n houses. In each unit time, every little man can move o ...

  3. MyBatis的三层级联和二层缓存

           我们这里说的三层级联和二级缓存其实也是MyBatis映射器的知识点,只是因为比较难理解,所以单独拿出来讲解,下面是三层级联的内容:        我们知道,在数据库中包含着一对一,一对多 ...

  4. EF+Redis(StackExchange.Redis)实现分布式锁,自测可行

    电商平台 都会有抢购的情况,比如 1元抢购. 而抢购 最重要的 就是库存,很多情况下  库存处理不好,就会出现超卖现象. 本文将用redis为缓存,StackExchange 框架,消息队列方式 实现 ...

  5. Problem : 1012 ( u Calculate e )

    /*tips:本题只有输入,没有输出,在线测试只检测结果,所以将前面几个结果罗列出来就OK了.为了格式输出问题纠结了半天,最后答案竟然还是错的....所以啊,做题还是得灵活变通.*/ #include ...

  6. WordPress修改标签云大小及颜色

    修改WordPress标签字体大小: 在cpanel面板中依次打开「wp-includes」→「category-template.php」,找到wp_tag_cloud, 1 2 3 4 5 6 7 ...

  7. 2018世界气象日,API为气象助力

    "世界气象日"(World Meteorological Day)又称"国际气象日",是[世界气象组织]成立的纪念日. 国际气象组织的前身原为非官方性国际气象合 ...

  8. Mysql设置字段自动获取时间

    问题:现在在用户表中有一个字段表示用户创建的时间 第一个想法是写一段程序获得系统当前时间,想想就太麻烦了,果断放弃,之后想到了存储过程和函数,再想想还要编写存储过程或者函数的代码,有点放弃的想法,但是 ...

  9. Iview的开发之路

    采用了Vue-cli的方式. 1.反向代理 devServer: { host: '127.0.0.1', port: 9000, proxy: { '/gonghui/': { target: 'h ...

  10. 吐槽net下没有靠谱的FastDFS的sdk之使用thrift实现JAVA和C#互通

    事情是这样的,在一个新项目中引入了fastdfs,用这玩意做一些小数据的存储还是很方便的,然后在nuget上就找一个对接FastDFS的sdk,如下图: 一眼就看到了这个top1的sdk,应该会比较靠 ...