JavaWeb基础(5)—— 浅析 Servlet 与 JSP 两者之间的区别

维基百科中 JSP 的定义


JavaWeb基础(5)—— 浅析 Servlet 与 JSP 两者之间的区别_第1张图片

JSP(全称JavaServer Pages)是一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。

JSP使Java代码和特定的预定义动作可以嵌入到静态页面中。JSP被JSP编译器编译成Java Servlets。一个JSP编译器可以把JSP编译成JAVA代码写的servlet然后再由JAVA编译器来编译成机器码,也可以直接编译成二进制码。

从架构上说,JSP可以被看作是从Servlets高级提炼而作为JAVA Servlet 2.1 API的扩展而应用。

Java服务器页面(JSP)是HttpServlet的扩展。由于HttpServlet大多是用来响应HTTP请求,并返回Web页面(例如HTML、XML),所以不可避免地,在编写servlet时会涉及大量的HTML内容,这给servlet的书写效率和可读性带来很大障碍,JSP便是在这个基础上产生的。其功能是使用HTML的书写格式,在适当的地方加入Java代码片段,将程序员从复杂的HTML中解放出来,更专注于servlet本身的内容。

JSP在首次被访问的时候被应用服务器转换为servlet,在以后的运行中,容器直接调用这个servlet,而不再访问JSP页面。JSP的实质仍然是servlet。

JavaWeb基础(5)—— 浅析 Servlet 与 JSP 两者之间的区别_第2张图片

JavaWeb基础(5)—— 浅析 Servlet 与 JSP 两者之间的区别_第3张图片


两者之间的异同


不同之处

  • Servlet 在 Java 代码中通过 HttpServletResponse 对象动态输出 HTML 内容。
  • JSP 在静态 HTML 内容中嵌入 Java 代码,Java代码被动态执行后生成 HTML 内容。

各自的特点

  • Servlet能够很好地组织业务逻辑代码,但是在Java源文件中通过字符串拼接的方式生成动态HTML内容会导致代码维护困难、可读性差
  • JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑同样也是不可取的

通过 MVC 双剑合璧

JavaWeb基础(5)—— 浅析 Servlet 与 JSP 两者之间的区别_第4张图片

JavaWeb基础(5)—— 浅析 Servlet 与 JSP 两者之间的区别_第5张图片


Reference


1、Java Servlet
https://zh.wikipedia.org/wiki/Java_Servlet

2、JSP
https://zh.wikipedia.org/wiki/JSP

3、Jsp和Servlet有什么区别?
https://www.zhihu.com/question/37962386

你可能感兴趣的:(JavaWeb基础,SSM学习笔记)