JSP简介_jsp引擎有什么作用-程序员宅基地

技术标签: Java  java  jsp  

JSP简介

一,JSP引擎
1,JSP引擎是指支持JSP的Web服务器或Web容器。
2,JSP引擎作用是把JSP标签、JSP页中的Java代码甚至连同静态HTML内容先转换成为大块的Java代码,然后Servlet被JSP引擎自动地编译成Java字节码,最后生成的整个页面信息返回给客户端。
在这里插入图片描述
二,JSP执行过程
1,Web容器处理JSP文件请求需要经过以下阶段:
① 请求:客户端向服务器发送请求
② 翻译阶段:JSP文件会被Web容器中的JSP引擎转换成Java源码。
③ 编译阶段:Java源码会被编译成可执行的字节码
④ 执行阶段:容器接受了客户端的请求后,执行编译成字节码的JSP文件;处理完请求后,容器把生成的页面反馈给客户端进行显示
⑤ 响应:响应客户端的请求
在这里插入图片描述
2,第一次请求之后,Web容器可以重用已经编译好的字节码文件
在这里插入图片描述
注意:如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译
三,JSP页面组成
JSP页面的元素包括:
在这里插入图片描述
1,JSP静态内容和注释
JSP页面里的静态内容包括HTML的标签和文本,这些文本与Java代码和JSP无关
JSP注释分为HTML注释和JSP注释
HTML注释可以包含在JSP文件中,这些注释将作为响应的一部分发回浏览器。由于它们是注释,所以不生成任何可见输出,但是最终用户通过浏览器的“查看”菜单的“源文件”选项看到这些注释。
JSP隐藏注释只能通过原始的JSP文件来查看,当JSP作为响应返回到客户端时,客户端是看不到该注释的,JSP容器会忽略注释的内容。
< !-- 注释的内容 – > --HTML注释 用户可以通关源码查看
<%-- 注释的内容 --%> --JSP注释 用户无法通过源码查看
2,脚本元素
JSP脚本元素是插入到JSP页面中的Java代码
JSP中提供了三种脚本元素:声明、表达式和代码段(Scriptlet)
在这里插入图片描述
3,变量和方法的声明
变量的声明:
JSP页面里声明的变量将被转换和编译为对应Servlet类的属性
<%! int x = 5,y = 10; String str= "hello ";%>
<%! public static int count = 0; %>
方法声明:
将被转换和编译为对应的Servlet类的方法
4,指令
指令用于将有关页面的特殊处理信息传送到JSP容器
常用的JSP指令分为三种类型:
第一个是include指令,用来在JSP文件转换成Servlet时引入其他文件。
第二是taglib指令,其目的是让JSP开发者能够自己定义标签
第三是page指令,用来完成下面这类任务,导入指定的类,自定义Servlet的超类等等;
page指令属性
在这里插入图片描述
page指令属性举例:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tan1024/article/details/111047328

智能推荐

python字符串处理之数字求和_python处理字符串:将字符串中的数字相加求和-程序员宅基地

文章浏览阅读916次。计算字符串中所有数字的和,字符串中有数字和字母组合而成如果出现连续数字,按照一个数操作具体解释在代码行里:def sum_str(str1):len1=len(str1) #首先将字符串str1的长度赋值给len1sum = n = 0 #建立一个值为0的空变量sun #建立一个值为0的空变量nfor i in range(len1): ..._输入一个只包含数学宇符的字符品输出字符串对应的数字总和

阿里云服务器上搭建Discuz论坛_如何用阿里云搭建dz-程序员宅基地

文章浏览阅读8.7k次。前沿: 搭建discuz论坛,需要搭建软件环境(也就是其运行的环境)本实例采用的是XAMMP软件站集成环境目的:搭建Discuz3论坛搭建步骤: 第一步:下载XAMPP(Apache+Mysql+PHP+RERL)百度云下载地址:XAMPP点击下载 windows到服务器之间的文件传输采用xftp; 终端shell软件采用xshell,然后将下载的x_如何用阿里云搭建dz

百度地图api离线开发(示例源代码)_百度地图离线api-程序员宅基地

文章浏览阅读5.8k次。相关教程: 1、如何搭建WEB离线地图开发环境 2、下载离线地图数据(金字塔瓦片数据) 3、离线地图二次开发接口(离线地图API) 4、离线地图API接口实例DEMO 5、离线地图完整演示实例说明:1.当前版本支持 谷歌电子/卫星地图瓦片、高德地图、阿里云地图、超图、腾讯地图等(只需下载该地图源的瓦片拷贝到指定目录即可);2.效果预览演示地址:..._百度地图离线api

ubuntu20.04.3安装Qt6.22操作步骤_ubuntu安装qt6-程序员宅基地

文章浏览阅读1.1w次,点赞5次,收藏37次。ubuntu20.04.3安装Qt6.22 LTS的操作步骤_ubuntu安装qt6

python单例模式代码-设计模式(Python)-单例模式-程序员宅基地

文章浏览阅读108次。本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题:为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题?是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。怎么用?理解了为什么我们也就基本了解了什么情况下使用这个模式,不过在这里还是会细化使用场景,阐述模式的局限和优缺点。这...___main__.redissingleton object at 0x7fe1b95e40a0

hdu1213-程序员宅基地

文章浏览阅读53次。hdu1213 #include <stdio.h>#include <string.h>#define MAXN 1100int parent[MAXN];int n,m;void UFset(){ for(int i=1;i<=n;++i) parent[i...

随便推点

java.lang.IncompatibleClassChangeError异常(在将包含LocalDateTime字段类型的Java对象JSON.toJSONString转换时出现的错误)_json转换handler dispatch failed; nested exception is-程序员宅基地

文章浏览阅读1.6k次。问题:在处理包含LocalDateTime字段类型的Java对象JSON.toJSONString转换时出现的错误在网上找了一大堆方案都不靠谱,大概猜到了是fastjson对LocalDateTime处理出现的错误,以下是错误信息org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.IncompatibleClassChangeError: F_json转换handler dispatch failed; nested exception is java.lang.incompatiblec

Unity中的资源管理-使用Profile分析内存使用情况_unity profile-程序员宅基地

文章浏览阅读6.8k次,点赞11次,收藏31次。本文分享Unity中的资源管理-使用Profile分析内存使用情况在上一篇文章中, 我们介绍了Ab的加载和使用, 并简单列举了其内存分布情况. 今天我们继续探索Ab的内存, 观察和实验其在各种阶段的分布情况.Profile性能分析工具在一切开始之前, 我们先简单介绍下Unity提供的性能分析工具: Profile.Profile是Unity提供的一款性能分析工具, 与Editor一同发布, 我们可以在Window菜单下找到它, 不同版本的位置不同, 比如在Unity2017(Window->P_unity profile

Kalendae:JavaScript日期选择和日历控件使用_kalendae js-程序员宅基地

文章浏览阅读9.6k次。源码:http://github.com/ChiperSoft/Kalendae demo:http://www.html5tricks.com/demo/Kalendae/index.htmlKalendae是一款完全基于JavaScript的日期选择控件和日历组件,值得一提的是,Kalendae并没有依赖任何第三方的JS脚本库,而是用原生的JavaScript实现了如此功能强大_kalendae js

JSP连接数据库参考 -程序员宅基地

文章浏览阅读92次。[code]一、jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: < %@ page contentType="text/html;charset=gb2312"% > < %@ page import="java.sql.*"% > < html > < body > < %Class.forName("orac...

grep.c:(.text+0x2bb):对‘sem_post’未定义的引用,对‘sem_wait’未定义的引用的解决办法-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏8次。最近在做操作系统实验三,编译的的时候,出现下面情况:加上:-pthreadgcc grep.c -o a.out -pthread_对‘sem_wait’未定义的引用

Excel控件-程序员宅基地

文章浏览阅读71次。&lt;OBJECT id=excel4 style="LEFT: 0px; WIDTH: 80%; POSITION: static; TOP: 0px; HEIGHT: 200px" classid=clsid:0002E510-0000-0000-C000-000000000046 controltype="excel"&gt;&lt;PARAM NAME="HTMLURL" VALUE="..._mso-height-source