1.不同之处
Servlet在JAVA代码中通过HttpServletResponse对象动态输出HTML内容
JSP在静态HTML内容中嵌入JAVA代码,JAVA代码被动态执行后生成HTML内容
2.各自的特点
Servlet能够很好的组织业务逻辑代码,但是在JAVA源文件中通过字符串拼接的方式生成动态HTML内容,会导致代码维护困难,可读性差
JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTMl中混入大量,复杂的业务逻辑野是不可取的
3.通过MVC扬两者之长
由于JSP和Servlet都有自身的适用环境,可以使用MVC(Model-View-Controller)模式来解决这一问题
MVC模式是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model),视图《View》和控制器(Controller):
Controller——负责转发请求,对请求进行处理
View——负责界面显示
Model——业务功能编写(例如算法实现),数据库设计以及数据存取操作的实现
在JSP/Servlet开发的软件系统中,这三个部分的描述如下图所示