Jsp 和 Servlet 有什么不一样?

面试中被问到了 Jsp 和 Servlet 有什么不一样?在这里总结分享下。java

回答思路先分别进行基本介绍,而后分析说明二者相同点和不一样点。web

基本介绍

Servlet:面试

Servlet 是一种服务器端的Java应用程序,具备独立于平台和协议的特性,能够生成动态的Web页面。它担当客户请求(Web浏览器或其余HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不一样,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。数据库

Jsp:编程

JSP 全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能经过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。浏览器

相同点

jsp经编译后就变成了servlet,jsp本质就是servlet,jvm只能识别java的类,不能识别jsp代码,web容器将jsp的代码编译成jvm可以识别的java类。服务器

分析jvm

其实就是当你经过 http 请求一个 JSP 页面是,首先 Tomcat 会调用 service()方法将JSP编译成为 Servlet,而后执行 Servlet。jsp

详细理解:当服务器启动后,当Web浏览器端发送过来一个页面请求时,Web服务器先判断是不是JSP页面请求。若是该页面只是通常的HTML/XML页面请求,则直接将HTML/XML页面代码传给Web浏览器端。若是请求的页面是JSP页面,则由JSP引擎检查该JSP页面,若是该页面是第一次被请求、或不是第一次被请求但已被修改,则JSP引擎将此JSP页面代码转换成Servlet代码,而后JSP引擎调用服务器端的Java编译器javac.exe对Servlet代码进行编译,把它变成字节码(.class)文件,而后再调用JAVA虚拟机执行该字节码文件,而后将执行结果传给Web浏览器端。若是该JSP页面不是第一次被请求,且没有被修改过,则直接由JSP引擎调用JAVA虚拟机执行已编译过的字节码.class文件,而后将结果传送Web浏览器端。编程语言

不一样点

JSP侧重视图,Sevlet主要用于控制逻辑。

Servlet中没有内置对象 。

JSP中的内置对象都是必须经过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象获得。

关于 JSP 中的内置对象看这篇博客:JSP 九大内置对象及其做用域

 

水平有限,如有问题请留言交流!

互相学习,共同进步 :) 转载请注明出处谢谢!

相关文章
相关标签/搜索