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. 如何将生产环境的字段类型从INT修改为BIGINT

    介绍 改变数据类型是一个看起来很简单的事情,但是如果表非常大或者有最小停机时间的要求,又该如何处理那?这里我提供一个思路来解决这个问题. 背景 在一个常规SQL Server heath检查中,使用s ...

  2. angular中label包含input点击事件的问题

    问题:当点击input时,input不能勾选,单label内的其他区域点击均可控制input勾选. 分析:点击input时,$event.target.tagName   //INPUT, 点击img ...

  3. URL中“#”

    2010年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http://twitter.com/username改版后,就变成了h ...

  4. Pycharm头部注释添加

    1.第一步 2.第二步 搜索框输入:File and Code Templates 然后右边找到 Python Script 3.第三步 将下面内容复制到图中红框内,然后点击OK #!/usr/bin ...

  5. 使用CMD命令编译和运行Java程序

    对于初学者来说,使用CMD命令(Unix以及类Unix系统采用Termial)来编译和运行Java的好处是让初学者直观地体会到编译(Compile)这一步骤,加深记忆.所谓编译就是将文本文件xxx.j ...

  6. Unity3D相机震动效果

    在一些格斗.射击以及动作类游戏中 相机震动效果是十分重要的 一个平凡的镜头 在关键时刻加入相机震动后 便可以展现出碰撞.危险.打斗以及激动人心的效果 相机震动的实现方式有很多 但都会涉及摄像机位置的变 ...

  7. 常见的if语句shell脚本

    常见的if语句shell脚本 author :headsen  chen  2017-10-17  15:00:07 1,cat if.sh 2, cat  if2.sh

  8. 听说你买了 EOS ,连代码什么样都不知道?

    最近发现很多人投资了 EOS,却并不关心 EOS 目前的开发进度和技术细节,如果你投资了 EOS, 还有一定的技术基础,那就更应该关心 EOS 的开发情况了,下面我们就从 EOS 的源代码说起:   ...

  9. AngularJs踩过的坑

    1. 使用checkbox和radio时, 不能使用ng-model直接绑定原始对象, 需要绑定一个对象的某个子属性, 才能把值绑定到scope <label><input type ...

  10. Spring Boot 定时任务的使用

    @Configuration @EnableScheduling public class ScheduleConfig { private final Logger logger = LoggerF ...