浅谈JSP的发展历史


一、jsp是什么?

JSP全名为Java Server Pages,java服务器页面。JSP是一种基于文本的程序,其特点就是HTML和Java代码共同存在!JSP是为了简化Servlet的工作出现的替代品,Servlet输出HTMIL非常困难,JSP就是替代Servlet输出HTML的。

本质是servlet

Tomcat访问任何的资源都是在访问Servlet! ,JSP也不例外。JSP本身就是一种Servlet。JSP在第一次被访问的时候会被编译为HttpJspPage类(该类是HttpServlet的一个子类)。
浏览器第一次请求1.jsp时,Tomcat会将1.jsp转化成1_jsp.java这么一个类,并将该文件编译成class文件。编译完毕后再运行class文件来响应浏览器的请求。以后访问1.jsp就不再重新编译jsp文件了,直接调用class文件来响应浏览器。如果Tomcat检测到JSP页面改动了的话,会重新编译的。
既然JSP是一个Servlet,那JSP页面中的HTMIL排版标签原用write()输出。说到底,JSP就是封装了Servlet的java程序。

二、历史发展

1.JSP的诞生

1997 年,Sun 公司推出了 Servlet。
由于当时的 Java Web 层体系结构中只有 Servlet,所以接收用户请求、处理业务逻辑、生成 HTML 代码等都在 Servlet 中完成。Servlet 不能像 PHP、ASP 等语言镶嵌 HTML 代码,因此输出 HTML 比较困难,且部署过程复杂。
为了克服 Servlet 的这些弱点,1999 年初,Sun 公司推出了 JSP。在生成 HTML 代码方面 JSP 比 Servlet 方便许多,而且不需要特殊部署,只需要复制到服务器下面即可运行。简而言之,JSP 就是为了简化 Servlet 工作而出现的替代品。在没有jsp之前,如果需要返回一个页面,程序猿需要一行行print,需要插入变量的地方还需要自己拼凑字符串。而jsp出现后,写一个Jsp就像编写html一样简单,不同的是它可以在html标签‘<%%>’中嵌入java代码!这就允许你在html中使用变量,使用java语言插入动态的内容。而最后通过把jsp编译成servlet,最后jsp就和servlet殊途同归了,但是却给程序员开发提供了极大的便利。

2.JSP的发展

JSP诞生之后,程序员写页面写得爽,所有业务逻辑、页面展示逻辑都往JSP塞,最后JSP扛不住了,程序员也扛不住了:页面非常凌乱,Html标签和java代码随处混合在一起,一个jsp页面非常长,甚至达到上千行代码。
因此自从JSP技术诞生以后,它的发展的总目标就是使JSP代码变得更加简洁和精炼。要通过各种技术手段把JSP文件中的Java程序代码分离出去,最终使得在JSP文件中只有 html标记和 JSP标签。后来人们又充分地利用了servlet和jsp这对兄弟,使用Jsp做页面展示,使用servlet处理后台的业务逻辑,利用起MVC来拆分原本臃肿的JSP。这样处理后,JSP就不处理业务逻辑了,代码量减少了很多。但是还有一些小问题,JSP想要获取servlet的变量,还是需要在’<%%>’这东西中通过java代码去获取。有些比较复杂的展示逻辑如循环for、条件if,还是需要在’<%%>’中编写java代码。我们希望是尽量不要在视图中写java代码。于是有人就封装了一层,出现了EL表达式和JSTL标签库:使用EL表达式取值,使用JSTL来处理页面展示逻辑。
总结下来有如下过程:

  1. 把JSP文件中的java程序代码放到JavaBean中,JSP文件通过专门的标签来访问JavaBean。
  2. 用EL表达式语言来替换<%=%>形式的java表达式。
  3. 在JSP文件中使用自定义标签。
  4. 在JSP文件中使用JSP的标准标签库JSTL。
  5. Web应用采用基于MVC设计模式的框架,使得JSP位于视图层,用于展示数据,不用负责流程控制和业务逻辑。

SUN公司在2004年发布的JSP2.0版是对JSP1.2的升级。JSP2.0的目标是使动态网页的设计、开发和维护更加容易,网页编写者不必懂得Java编程语言,也可以编写JSP网页。
JSP2.0引入的新特性包括:

  1. 引入EL表达式语言
  2. 引入创建自定义标签的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写。

JSP2.1版本:在该版本以前,EL是作为JSTL标签库的一部分存在。 JSP2.1把EL变成了独立于JSTL标签库的表达式语言,是开发人员使用起来更加方便。

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值