预览:
<%@ page language="java"
contentType="text/html; charset=UTF-8"
import="java.util.*,java.text.*"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>输出当前的时间</center>
<%
SimpleDateFormat df = new SimpleDateFormat();
String curTime = df.format(new Date());
out.write("当前时间为:"+curTime);
%>
</body>
</html>
生成的class去这里看(各人路径不同哦,反正就是tomcat目录下):
D:\softInstall\tomcat\apache-tomcat-7.0.70\work\Catalina\localhost\jspStudy\org\apache\jsp
Jsp页面如何被tomcat服务器运行:
第一次访问jsp:
- tomcat服务器把jsp页面翻译成java源文件。(first.jsp -> first_jsp.java)
- tomcat服务器把java源文件编译成class文件。first_jsp.java -> first_jsp.class
- 读取class文件,创建类对象。
- 执行类中的方法。
第n次访问jsp:
- 执行类中的方法。_01_hello_jsp类的方法
注意:
修改了jsp页面时,重新走翻译和编译的过程。
问题:运行的class类是什么类?
我们打开翻译后的first.java可以发现
再打开(把文件拖到eclipse某项目中再打开):
D:\softInstall\tomcat\apache-tomcat-7.0.70\lib\jasper.jar\org\apache\jasper\runtime\HttpJspBase.class
又可以发现
***至此可以得出结论: ***jsp就是一个servlet!!!!
jsp代码是被翻译成了怎样的java代码呢?
可以看出,执行的过程也是从一个service方法开始,然后html代码是通过向浏览器输出实体来实现的