JSP是java程序。(JSP本质还是一个Servlet)
JSP是:JavaServer Pages的缩写。(基于Java语言实现的服务器端的页面。)
JSP是来自于JAVAEE13个子规范之一;
JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体的开发流程;
JSP规范制定了Http服务器应该如何调用管理JSP文件;
JSP文件在互联网通信过程,是响应对象替代品;
JSP降低将处理结果写入到响应体的开发工作量降低处理结果维护难度;
在JSP文件开发时,可以直接将处理结果写入到JSP文件不需要手写out.print命令,在Http
服务器调用JSP文件时,根据JSP规范要求自动的将JSP文件书写的所有内容通过输出流写
入到响应体。
HTML文件与JSP文件区别
HTML文件属于静态资源文件,其相关命令需要在浏览器编译并执行的.
JSP文件属于动态资源文件,其相关命令需要在服务端编译并执行的
JSP文件被调用时的执行流程
1. Tomcat根据JSP规范,将被访问的JSP文件[翻译]生成为一个java文件。这个Java文件
是Servlet接口实现类
2. Tomcat根据JSP规范,调用JVM将这个java文件[编译]生成为.class字节码文件
3. Tomcat根据JSP规范负责创建实例对象。这个实例对象是一个Servelt接口实例对象
4. Tomcat根据JSP规范通过实例对象调用.class字节码文件中_jspService方法
5. _jspService方法在运行时负责将JSP文件中书写内容写入到响应体中
jsp文件第一次访问的时候是比较慢的,原因如下:
第一次调用执行过程比较麻烦,需要完成以下步骤:
1.要把jsp文件翻译生成java源文件
2.java源文件要编译生成.class字节码文件
3.然后通过class去创建servlet对象
4.然后调用servlet对象的init方法
5.最后调用servlet对象的service方法。
第二次、第三次、第四次...的调用执行速度就比较快了,原因如下:
servlet对象的service方法,而不需要执行第1、2、3、
4步骤了。
为此,大部分的运维人员在给客户演示项目的时候,都提前先把所有的jsp文件先访问一遍,这样做的目的是提高程序的执行效率,避免卡顿。
JSP既然本质上是一个Servlet,那么JSP和Servlet到底有什么区别呢?
Servlet的职责是什么:收集数据。(Servlet的强项是逻辑处理,业务处理,然后链接数
据库,获取/收集数据。)
JSP的职责是什么:展示数据。(JSP的强项是做数据的展示)
在JSP中如何编写JSP的专业注释
·<%-- 两端红色字体就是JSP的专业注释,不会被翻译到java源代码当中。--%>
<!--这种注释属于HTML的注释,这个注释信息仍然会被翻译到java源代码当中,不建议使用。-->
JSP基础语法总结:
JSP中直接编写的普通字符串 -->被翻译到service方法中的out.write("JSP中直接编写的普通字符串")
<%%> -->这个符号中两个%之间的内容翻译到service方法体内部,里面是一条一条的java语句。
<%! %>--> 这个符号中!后面的内容被翻译到service方法之外。这个符号很少被使用
<%= %>--> 这个符号被翻译到service方法体内部,翻译为:out.print(); =后面的内容被写入()中间
<%@page contentType="text/html;charset=UTF-8"%>page指令,通过contentType属性用来设置响应的内容类型以及字符集。
将.html文件改为.jsp文件的步骤:
1.将文件名*.html修改为*.jsp
2.在修改文件名之后的*.jsp文件的第一行写上如下代码:
<%@page contentType="text/html;charset=UTF-8"%>,用来设置jsp文件的响应内容类型以及字符集编码
3.在超链接href的设置中应该加入项目名,动态获取项目的根路径使用如下代码:
<%=request.getContextPath()%>
使用Servlet + JSP完成项目时(以查询为例)需要注意:
使用Servlet处理业务,收集数据。
使用JSP展示数据。
在Servlet中需要完成以下操作:
1.接收前端请求及请求参数信息,
2.连接数据库,
3.查询信息,
4.遍历查询结果集,
5.封装Java对象,
6.将Java对象添加到list集合中,
7.将list集合添加到request请求作用域当中。
在JSP中完成下列操作:
1.从request请求作用域当中取出由Servlet添加进去的list集合
2.遍历list集合,通过表格将数据展示出来。