前言
提高Java Web 开发,不得不说http协议,接下来就说Servlet 和 Jsp 这两个java类。
正文
1、什么是JSP?
JSP(Java Server Pages)是Sun 公司指定的一种服务器端动态页面技术的组件规范,Jsp是以“.jsp”为后缀的文件,在该文件中主要是html 和少量的java 代码。jsp 文件在容器中会转换成Servlet中执行。
2、什么是Servlet?
Servlet (Server Applet)是Sun公司指定的一种用来扩展Web服务器功能的组件规范,属于服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
借用知乎上java老师的一句话:jsp就是在html里面写java代码,servlet就是在java里面写html代码。
3、JSP与Servlet的区别和联系
运行过程
客户在第一次请求JSP时,请求较慢,因为JSP Engine先把JSP程序转换成servlet代码,接着将它编译成类文件,以后贮存在内存中再次调用速度就快了;
访问servlet时,可以直接对其编译好的类文件执行。
使用方式
要想使用servlet必须把它放在特定位置而且必须对其映射配置;
jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。
程序组成
Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容;
JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容
职能分工
jsp更侧重于前端页面显示,servlet更侧重于业务逻辑。
本是一家人
Jsp 本质上是servlet,用jsp实现的页面用servlet也能实现。
4、扬长弊端提出MVC
JSP 在Html 中加入了大量的、复杂的业务逻辑,如果后期业务逻辑发生改变,修改jsp 就会捉襟见肘;
Servlet 虽然解决了业务逻辑的问题,但是通过字符串拼接的方式生成动态的Html 页面,也会导致代码臃肿,难以维护;
MVC(Model-View-Controller)模式就扬长避短,将两者完美结合在一起,它把把软件系统分为三个层次:模型(Model)、视图(View)和控制器(Controller);