SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进。只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出。所以,编写和修改HTML非常不方便。后来SUN推出了类似于ASP的JSP,把JAVA代码嵌套到HTML语句中,这样,就大大简化和方便了网页的设计和修改。在J2EE体系结构中,SERVLET用来写业务逻辑层是很强大的。但是对于写表示层就很不方便。JSP则主要是为了方便写表示层而设计的。按我理解jsp是先要编译为Servlet的。
------------------------------------------
jsp比servlet好写多了,用起来多方便啊!
jsp运行的时候会被编译成servlet,但是你有没有看过编译过后的文件啊?除了业务逻辑之外html语句全要用打印语句一句一句打印出来,费事死了!要是没有jsp,一点代码就要你写个几天的。
------------------------------------------
本质没有区别:
servlet擅于流程控制,
JSP擅于页面表示,
仅此而已。
------------------------------------------
首先JSP是Servlet技术的扩展,是基于java servlet技术,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。

其次,一般jsp用来做视图,而servlet用来做控制器,javabean用来做模型。做过mvc框架后,就能更明白了。

jsp技术为创建显示动态生成内容的web页面提供了一个简捷而快速的方法。目的就是使得构造基于web的应用程序更加容易和快捷,而这些用用程序能够与各种web服务器,应用服务器,浏览器和开发工具共同工作。

其实说白了的意思就是:为了网页设计人员着想,使得在做web开发的时候,网页设计人员和java程序员工作关系不再很紧密。想想如果一个页面中插入一个一大顿servlet代码,网页设计人员怎么可能看得懂,看得懂就不做网页设计了,而改去去java程序员了。但用jsp写就不一样了,特别是使用jsp代码用上EL语言后,更简洁易懂,网页设计人员一看就知道是什么意思了,这样可以给他们更大空间去修改和设计完善这个网页。