1> JSP也是Servlet,它其实就是为了能够更方便的输出数据到客户端,JSP能做的事,只要不怕费事,Servlet一样可以完成。
2> Servlet是被Context的类加载器加载的,所以重写Servlet需要重新部署Context,JSP有自己的加载器,所以在你修改了JSP文件之后,没感觉服务器有什么动作,修改内容就显示出来了。
3> JSP封装了大量Servlet中的对象,例如Request,ServletContext,Session等,使用起来极其方便。
4> JSP是 可视化文件,Servlet会被编译成class文件,前者可以拿任何一个编辑器修改,后者不行
理解以下三点即可:
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)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller):
Controller——负责转发请求,对请求进行处理
View——负责界面显示
Model——业务功能编写(例如算法实现)、数据库设计以及数据存取操作实现