一、什么是servlet
servlet本质就是一个Java接口,Servlet运行在web容器当中(如docker镜像运行在docker容器当中)
二、什么是web容器
在JSP技术 推出后,管理和运行Servlet/JSP的容器也称为Web容器。
web容器中包含servlet容器。
web容器有很多(tomcat,Jboss,weblogic)等
三、什么是jsp
JSP是动态网页技术,出现在Servlet技术之后的,以“.jsp”为后缀的文件,在该文件中主要是html 和少量的java 代码。
JSP技术是为了解决Servlet的开发效率低下,不方便开发人员开发,jsp其本质还是Servlet
web容器根据JSP页面生成对应Servlet的Java文件及class文件
四、jsp和servlet怎样转换
JSP和Servlet会有如下转换:JSP页面的静态内容、JSP脚本都会转换成Servlet的xxxService()方法,类似于自行创建Servlet时service()方法。
JSP声明部分,转换成Servlet的成员部分。所有JSP声明部分可以使用private,protected,public,static等修饰符,其他地方则不行。
JSP的输出表达式(部分),输出表达式会转换成Servlet的xxxService()方法里的输出语句。
九个内置对象要么是xxxService()方法的形参,要么是该方法的局部变量,所以九个内置对象只能在JSP脚本和输出表达式中使用。// 不能在jsp Declaration中使用
五、JSP与Servlet的区别和联系
运行过程
客户在第一次请求JSP时,请求较慢,因为JSP 引擎先把JSP程序转换成servlet代码,接着将它编译成类文件,以后贮存在内存中再次调用速度就快了;
访问servlet时,可以直接对其编译好的类文件执行。
使用方式
要想使用servlet必须把它放在特定位置而且必须对其映射配置;
jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。
职能分工
jsp更侧重于前端页面显示
servlet更侧重于业务逻辑
部署方式
jsp是先部署后编译(先部署JSP文件到服务器,然后在用户访问时,服务器将JSP文件翻译为java类,再编译为class文件),
而servlet是先编译后部署(将由java类编译后的class文件部署到服务器上)。
修改方式
JSP修改后可以立即看到结果,不需要手工编译,JSP引擎会来做这些工作;
而Servelt缺需要编译,重新启动Servlet引擎等一系列动作。
本是一家人
Jsp 本质上是servlet,用jsp实现的页面用servlet也能实现。
六、jsp与js的差别
JSP在服务器上执行,并将执行结果输出到客户端浏览器,我们可以说基本上与浏览器无关。
它是与JavaScript不同的,JavaScript是在客户端的脚本语言,在客户端执行,与服务器有关。
七、扬长弊端提出MVC
JSP 在Html 中加入了大量的、复杂的业务逻辑,如果后期业务逻辑发生改变,修改jsp 就会捉襟见肘;
Servlet 虽然解决了业务逻辑的问题,但是通过字符串拼接的方式生成动态的Html 页面,也会导致代码臃肿,难以维护;
MVC(Model-View-Controller)模式就扬长避短,将两者完美结合在一起,它把把软件系统分为三个层次:模型(Model)、视图(View)和控制器(Controller);