从Jetty 8升级到Jetty 9

时间:2017-08-08 02:28:46

标签: jsp jetty

我们已经从jetty 8迁移到了jetty 9,我们在jap页面上遇到了多个错误,这些错误在jetty 8中工作,如JSP错误:包含无效表达式,无法解析异常。由于url路径上的斜杠加倍,我们还找不到其他一些页面。他们完美地在Jetty 8上工作,但在Jetty 9上没有。是否有任何列表可以提供从Jetty 8迁移到Jetty 9版本时要检查的指南?感谢。

1 个答案:

答案 0 :(得分:0)

从Jetty 8升级到Jetty 9是升级的许多主要版本。

  

提醒:Jetty版本控制(自1995年以来)已经......

     

<servlet_support>.<major_version>.<minor_version>

这意味着,从Jetty 8.1.x到9.4.x你有5个主要版本的Jetty(版本中是 big 跳转)

有些注意事项:

  • JSP Engine从错误的Glassfish JSP Engine迁移到Apache Jasper JSP。
  • Servlet规范更改了路径规范化规则/行为(允许内部规范化,但仅用于确定要分派的特定Web应用程序,不允许在所有其他范围内进行规范化)
  • HTTP规范支持从RFC2616(过时)移至RFC7230(和其他)
  • Cookie规范支持已更新,支持RFC6265以满足当前浏览器的最低要求(不再支持版本1 Cookie)
  • 删除了HTTP / 0.9支持(以及解析器/生成器中的所有相关行为)
  • 添加了HTTP / 2支持
  • Lenient UrlEncoded表单的解析行为被删除。错误的表单编码现在会触发错误400。 (这是与安全和数据损坏相关的更改)

JSP中的警告/错误可能来自错误的(非规范兼容的)JSP使用,或者您的JSP依赖于Glassfish JSP Engine中存在的错误行为。

URI / URL中的双斜杠对servlet规范和许多库都有意义。在调度(请求/包含/转发/错误/异步)到Servlet / Filter Chain期间,不会将其过滤掉。规范化确实在内部发生,但仅用于标识要将请求分派到的适当的上下文路径(特定的Web应用程序)。

只要您正确使用Servlet和JSP规范,就不会出现从Jetty 8.x.x升级到Jetty 9.x.x的问题(数百万个码头网站没有问题)