1.JSP是什么?JSP和HTML区别是什么
JSP全程 java server page,java服务端页面(JSP运行在服务端,JSP运行后生成的HTML页面,以及页面中链接的CSS和JS代码是输送到客户端浏览器运行的)
JSP运行时依赖Tomcat环境,会由Tomcat将JSP翻译为java文件,再编译为class文件
JSP中可以写Java代码,可以使用JSTL动态标签库和EL表达式,JSTL和EL表达式都会被翻译为java代码
当JSP被请求的时候,Tomcat会执行JSP对应的字节码文件,向客户端输出HTML代码
正因为JSP具有这种特性,我们可以实现在servlet中请求数据库,拿到数据,转发到JSP,在JSP中取出servlet转发过来的数据,生成带有数据的完整HTML代码,转发给浏览器
纯HTML文件中不支持写java代码,因此也就无法获取servlet中转发过来的数据
2.JSP和Servlet区别是什么
JSP和Servlet本质上没有区别,都是一个java类,servlet本身就是java类。JSP会被翻译为java类
JSP和Servlet都可以被HTTP客户端请求,JSP的文件名就是JSP的URL地址,servlet可以通过注解设置URL地址
在MVC三层架构中 JSP属于视图层,Servlet属于控制层
3.说说你对MVC三层架构的理解
MVC优点:每一层分工明确 职责单一 代码结构清晰 代码可维护性和可扩展性更好
V-View 视图层 --JSP页面
数据展示层,直接与用户交互
C-Controller 控制器层--Servlet
中间层,承上启下,负责处理用户请求,调用Model层与数据库交互,并转发到V层
M-Model 数据模型层--Service+Dao
数据模型层,业务逻辑层+数据持久层组合
4.request和response的区别是什么?
request代表请求报文对象,response代表响应报文对象
request对象可以通过setAttribute()方法携带数据进行请求转发,response对象不可携带数据
转发是通过request对象实现,重定向是通过response对象实现的
5.转发与重定向的区别?
转发是服务端跳转,客户端地址栏不变