Tomcat学习总结(9)——Apache Tomcat 8新特性
一、Apache Tomcat 8介绍
Apache Tomcat 8RC1版于2013年8月份发布。它 经过了2年的开发,引入了很多新特征,由于目前还只是Alpha版,故不推荐在产品中使用。但是我们应该了解它有哪些新特性,以便在稳定版出来后,用到我们的开发项目中去。
Apache Tomcat 8支持Java EE 7规范,包括Java Servlet 3.1、JSP 2.3、Java统一表达式语言EL 3.0等。
我们可以来看看Tomcat最近几个版本分别支持的JavaEE规范。
------------------------
Tomcat 6:Servlet 2.5、JSP 2.1、EL 2.1
Tomcat7:Servlet 3.0、JSP 2.2、EL 2.2
Tomcat8:Servlet 3.1、JSP 2.3、EL 3.0
------------------------
除此以外,Tomcat 8还支持像Java WebSocket 1.0这样的新规范。
二、Servlet 3.1介绍
Servlet 3.1最大的改进是实现了非阻塞式的I/O通信。这使得性能得到巨大的改进,数据可以通过ReadListener和WriteListener接口以异步的方式进行管理。
Servlet 3.1的第二大改进是HTTP协议的升级。它允许客户端指定双方通信所使用的协议。比如说,服务器和客户端原本使用HTTP通信协议,能够升级成WebSockets通信。
三、JSP 2.3介绍
JSP 2.3相比2.2版本,并没有增加什么新功能或新特性,主要是维护和清理。
四、EL 3.0介绍
EL 3.0较之前的版本有很大的改进和增强。主要有:
1)EL可以以"独立模式"的方式运行,即运行于Servlets和JSP页面之外。
简而言之,此增强可以使用ELProcessor类在Servlet容器内或容器外进行直接调用。
2)EL表达式还支持Lambda表达式,这一点与Java 8相似,这些表达式可以简化代码。
表达式包括:参数集、Lambda操作符、函数体。
3)集合操作符允许构造Set、List和Map等集合类型。
4)Java EL流式API包含了forEach、reduce、filter、map等过滤器。
这里可以获得集合或列表List,调用字符串夫妇,或者在列表List运行外部的过滤器或聚合函数。比如,你可以对字符串求和。
5)通过EL上下文的导入,开发者能够直接访问任何类的静态字段和方法。
五、WebSocket 1.0介绍
Tomcat 8正式支持WebSocket 1.0这个标准的API。尽管Tomcat 7也提供了支持,但是它只是部分支持,因为在Tomcat 7的时代,标准还未正式制定。目前,大多数网站还以半双工模式运行HTTP通信,这意味着通信在两端都可能发生,但是在同一时间点,只能有1个方向的通信。这有点像对讲机。
WebSockets协议是一个全双工协议,它意味着在同一时间点,通信是双向传输数据的。WebSockets也是HTML5的规范之一。
六、Tomcat 8内部的改进
Tomcat 8最大的变化是资源Resource。Tomcat 8的资源进行了重构,可以更好地支持外部资源。原先的别名Aliases、VirtualLoader、VirtualDirContext、JAR资源和外部仓库等,现在都以单个的、一致的方法进行配置。这个新的资源的实现也可以用于主WAR包,并作为其它多个Web应用程序的基础。
此外,还有对SPDY协议的支持,这里还有些争议,因为SPDY还不够完善。
最后,Tomcat 8还有些安全方面的增强,主要是SSL加密提供了额外的诊断信息。
Tomcat学习总结(9)——Apache Tomcat 8新特性的更多相关文章
- Tomcat 学习进阶历程之Tomcat架构与核心类分析
前面的http及socket两部分内容,主要是为了后面看Tomcat源代码而学习的一些网络基础.从这章開始.就開始实际深入到Tomcat的'内在'去看一看. 在分析Tomcat的源代码之前,准备先看一 ...
- tomcat web漏洞整改--Apache Tomcat examples directory vulnerabilities
在利用AWVS等弱扫工具对网站进行漏洞扫描时,经常会出现一些Tomcat漏洞问题,一般在弱扫报告中,都会给出简单的处理办法,但有时这些办法可能不太适合我们,或者在一些正式使用的环境中,不好操作,那么我 ...
- Tomcat开启本地库(Apache Tomcat Native Library)支持
操作系统环境:Ubuntu 17 amd64位 软件环境:Tomcat 9 tomcat安装位置:/opt/tomcat JDK:1.8.144 64位 安装步骤: 1:编译安装 cd /opt/t ...
- Tomcat学习之二:tomcat安装、配置及目录文件说明
我们看到tomcat目录/bin文件夹里有个tomcat6w.exe,顾名思义就是tomcat以window方式显示控制台.第1次点击打开它时候,可能会提示:tomcat指定的服务未安装,此时我们可以 ...
- Apache Tomcat examples directory vulnerabilities(Apache Tomcat样例目录session操纵漏洞)复现
目录 Session操控漏洞 示例: Session操控漏洞 在Apache tomcat中,有一个默认的example示例目录,该example目录中存着众多的样例,其中/examples/serv ...
- Java基础学习总结(55)——java8新特性:stream
java作为开发语言中的元老已经度过了很多年,最新的java8为我们带来了一些新特性,这些特性可以在以后的工作中为我们的开发提供更多的便捷,现在就让我们看看最新的函数式编程风格怎么在实际的开发中使用. ...
- 零基础学习java------21---------动态代理,java8新特性(lambda, stream,DateApi)
1. 动态代理 在一个方法前后加内容,最简单直观的方法就是直接在代码上加内容(如数据库中的事务),但这样写不够灵活,并且代码可维护性差,所以就需要引入动态代理 1.1 静态代理实现 在讲动态代理之前, ...
- ElasticSearch7.3学习(三十)----ES7.X SQL新特性解析及使用Java api实现sql功能
一.ES7 sql新特性 1.1 数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期 四个字段 PUT /tvs PUT /tvs/_mapping { "properties&quo ...
- Tomcat学习笔记 - 错误日志 - Tomcat部署项目或修改xml配置出现无法保存的情况(拒绝访问)
原因分析:(windows下) 可能有人会发现在编辑好 tomcat-users.xml 文件后无法保存,原因是使用的用户没有权限修改文件,可能是把 Tomcat 发行包放到了一个需要管理员权限才能修 ...
- Tomcat学习笔记 - 错误日志 - Tomcat访问Manager apps出现401 Unauthorized错误
原因是配置文件中未指定管理员身份. 打开tomcat>conf>tomcat-user.xml文件,添加如下代码: <role rolename="admin-gui&qu ...
随机推荐
- hadoop和spark相关参数的配置
背景 MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序.本文梳理了最常用的一些MapReduce和Spark配置参数. MapReduce ...
- hdu 5060 五种情况求圆柱体与球体交
http://acm.hdu.edu.cn/showproblem.php?pid=5060 官方题解http://bestcoder.hdu.edu.cn/给复杂了 实际上用圆柱体与球体体积差的积分 ...
- Opencv打开摄像头,读不到图像,一般来说先读取第一帧,舍弃,然后就正常了
舍弃第一帧的程序: cap >> img; cv::waitKey(100); if (cvWaitKey(5) == 27) break; cap >> img;
- [javascript-snippet]使用javascript+html5实现图片的灰度处理
// 源码出自:潇湘夜雨<!DOCTYPE> <html> <head> <meta charset="utf-8"/> </ ...
- Windows 7/Vista下安装Oracle Developer Suit遇到的几个问题
http://blog.csdn.net/pan_tian/article/details/8016318 Oracle Developer Suite (ODS) 10g是在Windows 7/Vi ...
- [NewCode 5] 从尾到头打印链表
题目描述 输入一个链表,从尾到头打印链表每个节点的值. 题目比较水,一遍就 AC 了,来看代码: /** * struct ListNode { * int val; * struct ListNod ...
- 统计--VARCHAR与NVARCHAR在统计预估上的区别
最近遇到一个问题,当查询使用到模糊查询时,由于预估返回行数过高,执行计划认为索引查找+Key Lookup的成本过高,因此采用Clustered Index Scan的方式,消耗大量逻辑IO,执行计划 ...
- 一步步改造wcf,数据加密传输-匿名客户端加密传输(2)
1 引言 前面的例子中, encodedValue这一串代码是自动生成的,所以在生产环境中,你需要安装一个VS201X,把代码放上去,然后刷新引用!!!就可以了,这么做的话,你可能是只 ...
- 【文文殿下】[APIO2010]特别行动队 题解
基本上是一个斜率优化裸题了 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int max ...
- react中组件的渲染
1.封装props对象 2.调用组件函数,得到返回的react元素 3.ReactDom把React元素转成真实的DOM元素并且插入到目标容器内部