Jsp解析过程
2015-07-30 22:31
465 查看
什么是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
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
相关文章推荐
- 鼠标拖动事件_js效果(深入分析)
- js如何判断一个对象是不是Array?
- JS 之 前台调用后台变量和方法
- js constructor问题!
- JSBinding + SharpKit / Memory Management (GC)
- JSP学习笔记(一)---JSP基础
- javascript实现ajax
- js 构造函数
- js对cookie基本使用
- Javascript高级程序设计第六七章
- pjsip在vs2013中编译和使用
- Html JS实现表单验证
- WCF Ajax Json的应用
- WCF Ajax Json的应用
- JS图片自动和可控的轮播切换特效
- 01_js中常用的设计模式
- ASP.NET MV 4000 C - html.beginForm在javascript中获取form信息
- JavaScript跨域总结与解决办法
- [BZOJ1015][JSOI2008]星球大战starwar
- Jsp的基本原理