土鳖的jsp改造


声明:本文转载自https://my.oschina.net/qixiaobo025/blog/1593620,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

背景

前端世界变化太快,各种模板各种新的技术框架出现。

虽然如此,我们java后端也有模板三宝

  1. jsp
  2. freemarker
  3. velocity

当然还有一些groovy的模板等等

我司目前仍然有老项目在使用jsp

 

问题

jsp存在一个比较麻烦的问题在于 无法写通用模板

通常我们会在一个jsp页面include各种header layout

如果当更改整体结构的时候会比较困难

比如现在

大量的js存放在公共reference中 导致js位置在上 而可能阻塞页面render【部分jsp中也有相关script可能对公共js依赖】

现状

用户抱怨前台页面出现太慢 白屏太久

原因

  1. 由于上古继承下来的jsp中有两个公共jsp 分别为reference和head 两个jsp都在每一个jsp都被引入
  2. 当有公共js时或者css开发都是直接加到reference或者jsp中【项目太久】
  3. 当js加载越来越多 由于没有使用现代化的前端开发方式 js的依赖关系太重
  4. js同步加载阻塞html的渲染那么导致出现白屏太久!

方案

  1. 使用其他模板引擎 比如velocity或者freemarker===》不太现实 更换代价比较高
  2. 每一个页面增加foot.jsp的引用 把大部分的js引入挪到最后 尽量不导致渲染被阻塞  ===》cost比较高,以后更改新的前端layout代价也很高 万一某天产品经理抽风想要所有的页面中增加右边栏 增加footer等等
  3. 在现有的页面上获取对应响应进行二次加工===》比如相关装饰 比如sitemesh

从上面几种描述来看目前方案3可能实现起来最简单也最保险!

方案2可以解燃眉之渴,但是后期的维护成本可能也会随着页面变化而随之增大

当然方案3也会存在自己的问题 毕竟多一次性能开销

实施

sitemesh是多年前笔者在大学时代用过的jsp装饰器。目前已经升级到了sitemesh3版本 

  • SiteMesh is a web-page layout and decoration framework and web- application integration framework to aid in creating sites consisting of pages for which a consistent look/feel, navigation and layout scheme is required.
  • SiteMesh intercepts requests to any static or dynamically generated HTML page requested through the web-server, processes the content and then merges it with one or more decorators to build the final result.
  • SiteMesh can also be used compose large pages of smaller pages and layouts.
  • SiteMesh is fast. Really fast.
  • SiteMesh can be used in Java based web-applications, or applied to content as an offline job.
  • SiteMesh is extensible.
  • Get started...

sitemesh2 只能支持head body title等几个有限的数据 但是sitemesh3已经支持自定义tag

本次考虑使用sitemesh3进行开发 将script数据提到body结束符之前~

本文发表于2017年12月22日 16:33
(c)注:本文转载自https://my.oschina.net/qixiaobo025/blog/1593620,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1983 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1