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 ...
随机推荐
- JavaScript保留关键字2。
一些不做解释的关键字是在js中预留的东西. abstract 抽象 . arguments 参数 标识符arguments是指向实参对象的引用,实参对象是一个类数组对象. boolean 布尔值. ...
- 【Luogu2444】病毒(AC自动机)
[Luogu2444]病毒(AC自动机) 题面 洛谷 题解 如果存在一个无限长的串 证明可以在\(AC\)自动机上找到一个环 然后在上面可以无限跳 所以构建\(AC\)自动机 在上面跑\(dfs\)就 ...
- 【Spring源码分析】.properties文件读取及占位符${...}替换源码解析
前言 我们在开发中常遇到一种场景,Bean里面有一些参数是比较固定的,这种时候通常会采用配置的方式,将这些参数配置在.properties文件中,然后在Bean实例化的时候通过Spring将这些.pr ...
- Java集合中的LinkedHashMap类
jdk1.8.0_144 本文阅读最好先了解HashMap底层,可前往<Java集合中的HashMap类>. LinkedHashMap由于它的插入有序特性,也是一种比较常用的Map集合. ...
- 利用TPC-H为MYSQL生成数据
## 利用TPC-H为MYSQL生成数据 导言 这篇文章是看了joyee写的TPC-H数据导入MySQL教程以及另一篇网上的MySQL TPCH测试工具简要手册 后写的,有些内容是完全转载自以上两篇文 ...
- 如何提高windows的性能
默认windows启用了很多的效果,我们可能平时没有注意到,比如什么淡入淡出效果之类的,其实在我看来,这些效果不仅难看,而且影响了windows的性能,下面我就来说说怎么通过关闭这些效果来提高wind ...
- 设计模式——备忘录模式(C++实现)
#include <iostream> #include <string> #include <vector> using namespace std; class ...
- MySQL常用的查询命令
MySQL常用的查询命令 author: headsen chen 2017-10-19 10:15:25 个人原创.转载请注明作者,出处,否则依法追究法律责任 1,查询现在的时间:mysql& ...
- C语言第十次博客作业--结构体
一.PTA实验作业 题目1: 结构体数组按总分排序 1. 本题PTA提交列表 2. 设计思路 求出每名学生的总分 定义i,j循环变量 for i=0 to n for j=0 to 3 p[i].su ...
- equals和hashCode详解
equals和hashCode详解 http://www.cnblogs.com/Qian123/p/5703507.html