1. JSP规范介绍
什么是JSP规范有什么用
- 来自于JAVAEE规范中一种
- JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体的开发流程(没有JSP时,我们需要再Servlet中通过out.print()将处理结果写入响应体中)(若将servlet比作厨师,则jsp可看做是传菜员,厨师可以自己传菜但是太麻烦)因此可以通过JSP文件对Servlet的处理结果写入响应体中,解耦合。
- JSP规范制定了Http服务器应该如何调用管理JSP文件
响应对象存在弊端:
- 适合将数据量较少的处理结果写入到响应体
- 如果处理结果数量过多,使用响应对象增加开发难度
JSP文件的优势:
- JSP文件在互联网通信过程,是响应对象替代品.
- 降低将处理结果写入到响应体的开发工作量降低处理结果维护难度
- 在JSP文件开发时,可以直接将处理结果写入到JSP文件不需要手写out.print命令,在Http服务器调用JSP文件时,根据JSP规范要求自动的将JSP文件书写的所有内容通过输出流写入到响应体。
HTML文件与JSP文件区别
- 作为资源文件类型不同
HTML文件属于静态资源文件,其相关命令需要在浏览器编译并执行的.
JSP文件属于动态资源文件,其相关命令需要在服务端编译并执行的 - 调用形式不同
如果浏览器访问HTML文件,此时Http服务器直接通过一个输出流
将HTML文件中所有的内容写入到响应体
如果浏览器访问JSP文件。此时Http服务器根据JSP规范来操作JSP文件编辑---->编译----->调用
2. JSP文件运算原理
Tomcat根据JSP规范,将被访问的JSP文件[编辑]为一个java文件。这个Java文件是Servlet接口实现类
Tomcat根据JSP规范,调用JVM(javac one_jsp.java)将这个java文件[编译]为class类型
Tomcat根据JSP规范负责生成这个class文件的实例对象。这个实例对象是一个Servelt接口实例对象
Tomcat根据JSP规范通过实例对象调用class文件中_jspService方法
_jspService方法在运行时负责将JSP文件中书写内容写入到响应体中
HttpJspBase
- Tomcat将JSP文件编辑后生成的Java文件,继承与HttpJspBase。通过Apache官方文档查看其身份是HttpServlet的子类。所以Tomcat将JSP编辑为的文件为一个Servlet接口实现类
3. 在JSP文件中如何书写Java命令
书写命名语法格式:
<%java 命令%>
如:
<%
if(判断条件){
}else{
}
while(){
}
%> 书写控制语句
输出命令语法格式:
<%=java的变量名%>
<%=java的表达式%>
4. 如何将Servlet中doGet/doPost方法执行结果交给JSP文件输出
- JSP文件被访问时,并不是JSP文件在执行。而是对应的Servlet在执行
- 自定义Serlvet接口实现类与JSP文件之间调用关系,等同于两个Servlet之间调用关系
- 自定义Servelt接口实现类与JSP文件之间可以通过重定向方案或则请求转发方案进行调用考虑到运行效率问题,一般采用【请求转发】
- 自定义Servlet接口实现类可以通过请求作用域对象将共享数据交给JSP来输出到响应体