01_hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
<%--
JSP:
Servlet 的作用:用 java 语言开发动态资源的技术;
Jsp 的作用:用 java语言 + html语言 开发动态资源的技术;
Jsp 的本质就是 Servlet;
JSP 的特点:
1、jsp 的运行由 tomcat 服务器来管理;
2、jsp 页面既可以写 html 代码,也可以写 java 代码;
JSP 的执行过程:
地址:http://localhost:8080/04_JSP/01_hello.jsp
1)、浏览器访问 01_hello.jsp 资源页面,tomcat 识别到是 jsp 文件,就会把 jsp 文件翻译成 java 源文件;(翻译)
2)、然后 tomcat 服务器又把 java 源文件编译成 class 字节码文件;(编译)
3)、最后 tomcat 就会执行 class 文件,从而在浏览器上输出 当前时间;(执行)
IntelliJ JDEA 默认情况下生成的 java 文件和 class 文件的位置为:
C:\Users\Administrator\.IntelliJIdea 2018.3\system\tomcat\Tomcat_9_0_14_04_JSP\work\Catalina\localhost\04_JSP\org\apache\jsp
注意:
第 1 次访问 jsp 的时候,执行 1)、2)、3)步骤;
第 n 次访问 jsp 的时候,只执行 3)步骤;
如果 jsp 修改了,则 1)、2)、3)步骤都会重新执行;
为什么说 JSP 就是 Servlet??
打开 jsp 翻译生成的 java 文件,可以发现生成的 jsp 类继承于 HttpJspBase 类;
public final class _01_005fhello_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent,
org.apache.jasper.runtime.JspSourceImports {}
在 tomcat\lib 目录下找到 jasper.jar 文件,导入到 idea 后可以看到源码为:
public abstract class HttpJspBase extends HttpServlet implements HttpJspPage {}
结论:从 HttpJspBase 类继承于 HttpServlet 类可以得出,jsp 就是一个 Servlet。
servlet 的技术可以用在 jsp 程序中;
但是 jsp 的技术并不能全部用于 servlet 程序中;
Servlet 生命周期:
1)、构造方法(第一次访问时执行)
2)、init 方法(第一次访问时执行)
3)、service 方法
4)、destroy 方法
JSP 生命周期:
1)、jsp 文件翻译成 java 文件
2)、java 文件编译成 class 文件
3)、构造方法(第一次访问时执行)
4)、init 方法(第一次访问时执行):_jspInit
5)、service 方法:_jspService
6)、destroy 方法:_jspDestroy
--%>
<html>
<head>
<title>第一个jsp页面</title>
</head>
<body>
<%
// 写 java 代码,获取当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currDate = sdf.format(new Date());
// 输出内容到浏览器
out.write("当前时间:" + currDate);
%>
</body>
</html>