为什么说Jsp就是Servlet(底层原理解析)
首先我们来了解下什么是jsp:
jsp:Java Server Pages —java服务器端的页面
组成:html代码+jsp代码+java代码 后缀名:.jsp 存放位置和html一致
总结:既能写java代码也可以写html、css、js代码 用来展示服务端的数据
Jsp底层就是servlet,servlet是一个java类,所以jsp也是一个java类
JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。
Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。
由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,这的确让人不胜其烦。JSP的出现弥补了这种不足,JSP通过在标准的HTML页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用Java脚本控制。
从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。