为什么80%的码农都做不了架构师?>>>   

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

回答思路先分别进行基本介绍,然后分析说明两者相同点和不同点。

基本介绍

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类。

分析

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

详细理解:当服务器启动后,当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 九大内置对象及其作用域

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

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

转载于:https://my.oschina.net/hp2017/blog/1932021

Jsp 和 Servlet 有什么不同?相关推荐

  1. jsp与java的关系_jsp教程中:jsp与servlet的区别和关系

    jsp教程上:我们一定学了servlet,也学习了jsp,那么jsp与servlet的区别是什么呢,jsp与servlet又有什么关系呢?下面我们先创建一个demo.jsp的页面,然后tomcat运行 ...

  2. JSP和Servlet学习笔记1 - 访问配置

    1. 访问 WebContent 目录下的 JSP 文件 在 WebContent 目录下的文件可以直接在浏览器中访问.新建一个 test.jsp 文件 <%@ page language=&q ...

  3. java与servlet JSP_java面试精品全集[jsp与servlet部分]

    一.Jsp方面 1.forward 和redirect的区别 答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本 ...

  4. 详谈jsp和servlet的区别

    其实说白了JSP和SERVLET到底什么区别呢,JSP就象宾馆前台的服务员,要长的不错,让顾客一看就觉得比较舒服,他主要就是负责显示这个宾馆的形象的.而SERVLET就象部门经理,要处理各种各样的业务 ...

  5. java servlet 获取路径问题_Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析...

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是webroot 在class文件中,根目录是webroot/web-inf/classes 当然你也可以用system.getpro ...

  6. JSP和Servlet面试题精选

    1,JSP的内置对象有哪些? 答:JSP共有9个内置对象分别是: request:用户端请求,此请求会包含来自GET/POST请求的参数 response:网页传回用户端的回应 pageContext ...

  7. JSP与servlet之间的传值方式

        总结JSP与servlet之间的传值 JSP与 servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP. 通过对象 request和 se ...

  8. JSP 和 Servlet 区别

    首先 SUN 公司最先推出 Servlet,Servlet 既可以完成业务逻辑处理,又可以进行 HTML 页面显示.因为业务逻辑处理和页面显示结合在一起,随之而来的问题就是对于显示层页面的修改非常麻烦 ...

  9. JSP+JavaBean+Servlet工作原理实例…

    JSP+JavaBean+Servlet工作原理实例讲解 首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念.引用mz3226960提出的MVC的概念,即M-model ...

  10. JSP+JavaBean+Servlet技术(MVC模型)

    一,Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这 ...

最新文章

  1. Science-2018-微生物群落的构建过程具有趋简性
  2. 循序渐进Python3(七) -- 2-- 面向对象进阶
  3. Android -- Fragment动画异常Unknown animation name: objectAnimator
  4. mysql表一对多关系,mysql表与表之间的关系(多对多,一对多)
  5. 客户端命令(docker)
  6. 容器化的 DevOps 工作流
  7. android 7 audio架构,7.2.1 Audio系统的各个层次
  8. XMLHttpRequest接收JSON请求
  9. 一个简易的C++性能分析工具
  10. 关系数据库——关系代数
  11. win7万能声卡驱动_我把一台PC的操作系统从win7换成了win10,它真的很棒!
  12. 第九讲 Linux I2C子系统及mma8653重力传感器驱动编写
  13. 基于高精度单片机开发红外测温仪方案
  14. 标称型和数值型的区别
  15. WIN10 - WLAN网络适配器红叉-重新启动后依然红叉
  16. java 剪切音乐_怎么剪切一段音乐其中的片段
  17. PHP获取某一年的每个星期六星期天
  18. 陈天奇团队发布TVM:把深度学习部署到手机、树莓派等更多硬件
  19. iOS流量精灵完结版
  20. Python《wallhaven壁纸爬取》

热门文章

  1. cocos2dx打飞机项目笔记五:CCSpriteBatchNode 的使用
  2. sql分区-纵向分表与横向分区表(转)
  3. 【原】Unity3D 窗口裁剪
  4. 【转】关于arcgis server ADF的几种超时
  5. 机器人学习--各种学习资源(初稿)
  6. 计算机视觉与深度学习 | 双目视觉SLAM之ORB-SLAM2的Matlab实现(完整代码)
  7. 人工智能 | 自然语言处理(NLP)(国内外研究组)
  8. vs2017搭建Linux的开发调试环境(VisualGDB)
  9. MySQL内核调试_MySQL内核技术之“Opt_trace_系列”
  10. 计算机程序无法运行,win7电脑程序打不开解决方法