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

时间: 2024-12-11 14:42:44

Jsp解析过程的相关文章

jsp执行过程图解

转自:https://blog.csdn.net/y277an/article/details/76561451 一.jsp执行过程图解 用户访问jsp页面时,jsp的处理过程如下图所示: 二.预处理阶段 客户第一次请求jsp页面时,jsp引擎会将jsp文件中的脚本代码(HTML)和代码片段(Java代码)全部转换为java代码,转换过程非常直观:对于HTML文本只需要用简单的out.println方法包裹,对于java脚本只做保留或简单的处理. 三.编译阶段 预处理阶段把jsp文件解析为jav

DNS的原理和解析过程

DNS的解析原理和过程: 在Internet上域名和IP是对应的,DNS解析有两种:一种是正向解析,另外一种是反向解析. 正向解析:正向解析就是将域名转换成对应的 IP地址的过程,它应用于在浏览器地址栏中输入网站域名时的情形. 反向解析:根据IP地址查找对应的注册域名,经常被一些后台程序使用,用户看不到. 另外需要知道的是DNS查询的工作方式: 客户端和浏览器,本地DNS之间的查询方式是递归查询: 本地DNS服务器与根域及其子域之间的查询方式是迭代查询: DNS解析过程: 场景:用户在浏览器输入

关于 jsp 解析特殊字符的问题

在项目中了 使用了一个UI封装好 的插件 经测试了可以返回一些特殊字符,但是因为是特殊字符,导致了jsp解析出错,使用了Jquery来添加了dom结构,添加完之后,Ui控件进行初始化的时候报错了,原因就是因为我添加的dom结构中有特殊字符,至今还没有找到好的方法解决这个问题,希望有大神相助. 现在我就想 在数据保存的时候进行特殊字符的转义,但是不转成html认识的特殊字符,转换成我认识的特殊字符,然后拿出来的时候再通过我的方法实现转回去, 但是我也想过,会出现一个问题,就是用户输入的字符万一跟我

PHP编程语言解析过程讲解

PHP执行过程 任何一种语言的源代码计算机都没有办法直接执行,需要转换成计算机能够识别的机器指令. PHP编程语言也是一门高级语言,也需编译(解释) PHP的解析过程: 1.请求源代码,进行词法解析,语法解析. 词法解析,主要对源代码中的单词进行一个个的读入,判断,词法解析时,如果有错误,会报错.编译错误. 语法解析,主要判断语法结构是否正确.比如:流程控制结构是否完成. 结果:是可执行的机器代码 2.执行,执行时主要是对内存的操作,执行时也可能会出现错误,此时错误属性执行错误. 结果:纯的ht

DNS原理及其解析过程 精彩剖析

DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的 IP地址,而不能认识域名.我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是 因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页. 什么是DNS?     DNS( Domain Name  S

DNS原理总结及其解析过程详解

一.域名系统 1.域名系统概述 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址.域名系统其实就是名字系统.为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词.“域名系统”明确地指明这种系统是应用在因特网中. 我们都知道,IP地址是由32位的二进制数字组成的.用户与因特网上某台主机通信时,显然不愿意使用很难记忆的长达32位的二进制主机地址.即使

php嵌入html的解析过程

php嵌入html的解析过程 示例: 执行过程: ????首先明确:PHP是分段读取一次执行(编译),JS是分段读取分段执行 ? 程序就是对内存的操作 ????函数可以先调用后定义,原因,程序的执行时需要先编译,对程序的编译的结果在内存有影响(编译之后,函数在内存中就产生了可执行的代).开始执行函数时,就可以找到函数的代码进行执行. ????变量不可以先访问后定义,原因,程序在执行时需要行编译,但对变量的编译对内存不会有任何的影响.

jsp执行过程

JSP执行过程图解 第一次请求: 当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个.java文件,也就是servlet,并编译这个java文件生成.class的字节码文件,然后执行字节码文件响应客户端的请求. 再次请求: JSP引擎将直接执行字节码文件来响应客户.

ARP的解析过程

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址:收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源. 解析过程: ARP用于把一个已知的IP地址解析成MAC地址,以便在MAC层通信.为了确定目标的 MAC地址,首先查找ARP缓存表.如果要查找的MA