jsp作为servlet技术的扩展,经常会有人将jsp和servlet搞混。本文,将为大家带来servlet和jsp的区别。希望对大家有所帮助。
servlet和jsp的区别
1.servlet在java代码中可以通过HttpRervletResponse对象动态输出HTML内容。
2.JSP是在静态HTML内容中嵌入java代码,然后Java代码在被动态执行后生成HTML内容。
注:jsp本质上就是个servlet。
servlet和jsp的各自特点
1.servlet虽然能够很好的组织业务逻辑代码,但是在java源程序中,因为是通过字符串拼接的方式生成动态HTML内容,这样容易导致代码维护困难可读性差。
2.jsp虽然规避了servlet在生成HTML内容方面的劣势,但是在HTML中混入了大量的复杂业务逻辑。
通过MVC 双剑合璧
jsp和servlet都有自身的使用环境,那么有没有什么办法使他们发挥出各自的优势呢?有是有的,MVC模式就是解决这一问题的完美方式。MVC模式是Model-View-Controller的简称,是软件工程中一种软件架构模式,分为三个基本部分,分别是模型, 视图和控制器;
controller------负责转发请求对请求进行处理
view------负责界面显示
model------负责业务功能的编写(例如算法的实现),数据库实际及数据存取操作的实现.
在jsp/servlet开发的软件系统中这三个部分的描述如下所示;
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX2RGSkZGbuNmdSNTWwp1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jMxcTO0UTMwIDNyATM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
1.web浏览器发送HTTP请求到服务器,然后被controller(servlet)获取并进行处理(例如参数解析,请求转发)
2.controller(servlet)调用核心业务逻辑--model部分,获取结果
3.controller(servlet)将逻辑处理结果交给view(jsp)动态输出HTML内容。
4.动态生成的HTML内容返回到浏览器显示
MVC模式在web开发中有很大的优势,它完美的规避了jsp和servlet各自的缺点,让servlet只负责业务逻辑部分,而不会产生HTML代码;同时jsp中也不会充斥着大量的业务代码,这样大大提高了代码的可读性和可维护性。