Jsp解析过程

什么是JSP?
JSP---Java Server Pages
拥有servlet的特性与优点(本身就是一个servlet)
直接在HTML中内嵌JSP代码
JSP程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行
只有当客户端第一次请求JSP时,才需要将其转换、编译
优点:
优良的性能
优于CGI,PHP,ASP
平台无关性
操作系统无关,Web服务器无关
可扩展性
tag的扩展机制,简化页面开发

JSP解析过程:
1 :JSP先把文件解析成java文件
2 :然后再通过javac把java文件编译成类文件
3 :在通过JVM虚拟机把类文件转换成html格式;
4 :把html效果显示在客户端上.

加载过程分为动态加载和静态加载:
jsp:include 是动态加载,在jsp编译的时候,加载页面和被加载页面会被解析两个java,servlet文件
javac编译器会编译两次,生成两个class文件,
然后在jvm运行的过程中,这个时候包含文件才去调用被包含的class文件
这就是动态包含
<%@ include file="_02_date.jsp"%> 是静态加载:


<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jsp:include</title>
</head>
<body bgcolor="white">
<font color="red">
<%@ include file="_02_date.jsp"%>
<%= request + "--1--" + "<br>"%>
<%/*注意jsp标签需要自己关闭,不要忘了关闭的横线*/%>
<jsp:include page="_02_date.jsp" flush="true" />
<%= request + "--1--"+ "<br />"%>
<%/*

*/%>
<%/*
* 不同的页面,不同的request之间可以传值
* 传值别忘了写flush,这里传值也是IO流,需要flush
* 然后把值传递到第二个页面输出
*/%>
<jsp:include page="_02_date.jsp?username='123'" flush="true" />

</font>
</body>
</html>
上面例子可以看出,因为生成是两个不同的Servlet文件-->不同的class--->所以每个Servlet都有自己的request对象,不是同一个.但是第一个是生成一个Servlet所以是同一个request

 

posted on 2015-07-30 22:31  秦云伟  阅读(1388)  评论(0编辑  收藏  举报