1、角色不同
jsp页面可以存在html代码与java代码并存的情,而Servlet需要承担客户请求与与业务处理的中间角色,只有调用固定的方法才能将动态内容输出为静态的html,所有jsp更具有显示层的角色
2、编程方法的不同
Servlet与jsp在编程方法上存在很大的区别,使用Servlet开发web应用程序需要遵循java的标准,而jsp需要遵循一定的脚本语言规范。Servlet代码之中,需要调用Servlet提供的相关Api接口方法,才可以对http请求的业务进行处理,对于业务逻辑方面的处理功能更加强大。然而在jsp页面中,通过html代码与jsp内置对象实现http器请求及页面的处理,其显示界面的更能更加强大
3、Servlet需要编译后运行
Servlet需要编译后才可以运行,如果Servlet在编写完成或修改后没有被重新编译,则不能运行在web容器中。而jsp则相反,jsp由jsp容器对其进行管理,它的编译过程也由jsp容器对jap进行自动编辑,无论jsp文件被修改还是创建,都不需要对其进行编译就可以执行。
4、速度不同
由于jsp页面有jsp Container对其进行管理,在每次执行不同内容的动态jsp页面时,jsp Container都要对其自动编译,所以它的效率低于Servlet的执行效率。而Servlet在编译完成后,则不需要再次进行编译,可以直接获取以及输出动态内容。如果jsp的内容没有变化,jsp页面的编译完成后,Jsp Container就不会再次对jsp编译了
jsp与Servlet最主要的区别就是,jsp更趋向于页面的设计,而Servlet对象更趋向于对业务逻辑的代理,它们各有优势。