jsp和servlet区别

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页面可以存在html代码与java代码并存的情,而Servlet需要承担客户请求与与业务处理的中间角色,只有调用固定的方法才能将动态内容输出为静态的html,所有jsp更具有显示层的角色。

编程方法的不同
       Servlet与jsp在编程方法上存在很大的区别,使用Servlet开发web应用程序需要遵循java的标准,而jsp需要遵循一定的脚本语言规范。Servlet代码之中,需要调用Servlet提供的相关Api接口方法,才可以对http请求的业务进行处理,对于业务逻辑方面的处理功能更加强大。然而在jsp页面中,通过html代码与jsp内置对象实现http器请求及页面的处理,其显示界面的更能更加强大。

Servlet需要编译后运行
       Servlet需要编译后才可以运行,如果Servlet在编写完成或修改后没有被重新编译,则不能运行在web容器中。而jsp则相反,jsp由jsp容器对其进行管理,它的编译过程也由jsp容器对jap进行自动编辑,无论jsp文件被修改还是创建,都不需要对其进行编译就可以执行。

速度不同
       由于jsp页面有jsp Container对其进行管理,在每次执行不同内容的动态jsp页面时,jsp Container都要对其自动编译,所以它的效率低于Servlet的执行效率。而Servlet在编译完成后,则不需要再次进行编译,可以直接获取以及输出动态内容。如果jsp的内容没有变化,jsp页面的编译完成后,Jsp Container就不会再次对jsp编译了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值