JSP运行原理 九大内置对象 四大作用域
Jsp的简介
jsp的全称是java server pages 意思为java的服务页面
jsp必须运行在服务器,不能脱离服务器单独运行
jsp是可以写java代码的html
jsp的本质就是一个servlet
JSP的运行原理
1) 第一次访问JSP的时候,JSP引擎会将JSP翻译成java文件
2) Java虚拟机会将java文件编译为.class文件
3) Jsp容器会实例化对应JSP生成的类的对象,调用类对象中的_jspService处理请求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfbdvJth-1600591243782)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsA4DC.tmp.jpg)]
l 以index,jsp为例:
1) 第一次访问index.jsp的时候,JSP引擎会将index.jsp翻译成index_jsp.java文件
2) Java虚拟机将index_jsp.java文件编译为index_jsp.class文件
3) JSP容器会根据index_jsp.class创建该类的对象,最后调用类对象中的_jspService处理请求
l 如果再次请求index.jsp(前提是文件内容不发生改变的情况下),直接调用生成的类对象中的_jspService处理请求
Jsp基本语法
JSP中使用模板元素 html标签
Jsp中的脚本片段 l 语法:<% java代码 %>
Jsp表达式 l 语法:<%=要输出的信息 %> ;要输出的信息可以是对象、字符串、数值
Jsp中的注释
Java注释:// Jsp脚本片段中
Html注释:html中
Jsp注释:<%-- --%> Jsp注释中将java代码进行注释
Jsp常用指令
page指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ghOCeonz-1600591243786)(C:\Users\Administrator\Desktop\11.png)]
Language :开发中所需要的语言,可选值为java
contentType: 告诉浏览器以什么样的字符集进行解码,服务器以什么样的字符集进行编码
pageEncoding:当前页面的编码格式
errorPage=“页面地址”:如果当前JSP页面中出现异常,所跳转的页面
例如:
errorPage="/error.jsp",当前页面发生异常会进入error.jsp页面,errorPage值中 的第一个“/”由服务器解析
isErrorPage:指定当前页面是否是一个异常页面,默认为false;如果想指定当前页面为异常页面,那么把isErrorPage的值设为true
import :用来导包,每导一个包通常情况下会创建一个新的page指令
include指令
Include指令的作用是在当前页面中引入其他页面
语法:<%@include file=“被包含的文件地址” %>
注意:被包含的jsp不会被翻译为.java文件,这种包含称之为静态包含
常用的动作标签
语法:<jsp:动作 >
Jsp:forward
使用forward动作标签可以进行请求的转发,和servlet中的转发一个作用
JSP:include
用来包含其他页面
<jsp:include page=“被包含的页面地址”></jsp:include>
被包含的页面会翻译为.java文件,这种称之为动态包含,
什么时候使用动态包含,什么时候使用静态包含:
如果被包含的页面是静态页面,就是用静态包含;如果被包含的页面是动态 页面使用动态包含;
Jsp九大隐含对象☆
l 就是在JSP中不用声明就可以使用的对象,称为隐含对象
l 之所以可以直接使用,是因为jsp对应的java文件中的_jspservice方法中已经提前声明
l 在JSP的脚本片段中写的java代码,相当于写到jsp对应的java文件中的_jspservice方法了;
l JSP中的九大内置对象
pageContext
类型:PageContext
作用:一个顶九个,可以获取其他八个隐含对象,例如获取HttpServleRequest使用pageContext.getRequest()
还是一个域对象
request
类型:httpServletRequest
作用:和servlet中的request作用一样
还是一个域对象
session
类型:HttpSession
作用:可以保存当前登录用户的数据
在servlet中的获取方式:HttpSession session = request.getSession();
还是一个域对象
application
类型:ServletContext
作用:代表当前web应用,可以获取当前web应用初始化参数
还是一个域对象
response
类型:HttpServletResponse
作用:和servlet中的HttpServletResponse作用一样
Config
类型:ServletConfig
作用:和servlet中的ServletConfig作用一样
out
类型:JspWriter
作用:网浏览器输出数据,和servlet中的response.getWriter作用类似
page
类型:Object
作用:相当于this,代表当前jsp
exception
类型:Throwable
作用:获取错误信息,前提是要把当前页面定义为错误页面,即在page指令中加入isErrorPage=“true”
JSP四大作用域
l 域是在区域,在javaweb中指不同的资源,例如servlet,JSP
l 由于在不同的域之间要传递参数,所有就有了对象
page域
对应了jsp域对象:PageContext
范围:作用与当前页面
Request域
对应了jsp域对象:request
范围:一次请求(当前请求)
Session域
对应了jsp域对象:session
范围:一次会话(浏览器打开到关闭属于一次会话)
Application域
对应了jsp域对象:application
范围:当前web应用
四个域的共同方法:
setAttribute(属性名”,”属性值”);往域对象中存储数据
getAttribute(“属性名”):获取域对象中的数据,根据属性名获取属性值
remove Attribute(“属性名”):删除域对象中属性名对应的数据
JSP运行原理 九大内置对象 四大作用域相关推荐
- JSP九大内置对象四大作用域
JSP简介 JSP(Java Service Page 即java服务器页面)也就是对Servlet的一种封装,每次都是先转译成Servlet才能执行,因为Servlet写HTML时每一句都要用res ...
- JavaWeb——JSP九大内置对象及作用域详解
文章目录 JavaWeb--JSP九大内置对象及作用域 1. 九大内置对象 1.1 request对象 1.2 response对象 1.3 out对象 1.4 session对象 1.5 appli ...
- 相对地址与绝对地址的区别?请求重定向与请求转发的区别?jsp有哪九大内置对象?servlet如何获取session和application对象?
目录 1.说说相对地址与绝对地址的区别? 2.说说请求重定向与请求转发的区别? 3.jsp有哪九大内置对象?servlet如何获取session和application对象? 1.说说相对地址与绝对地 ...
- jsp中的九大内置对象与四大域对象
什么是内置对象? 在jsp中已经创建好的对象名,而这些对象无需自己在实例化.通过该对象名可以调用相应的类方法. 九大内置对象 1. out对象---作用:用来输出信息到浏览器.常见的方法: print ...
- 【Spring】JSP 九大内置对象、作用域复习
博客: 总结 JSP的四大域对象.Servlet的四个作用域: pageContext.request.session.application JSP 九大内置对象和四大作用域复习 名称 类型 含义 ...
- JSP 九大内置对象及作用域(源码刨析,建议收藏)
JSP内置对象及作用域 九大内置对象 PageContext 用来保存东西 Request 用来保存东西 Response Session 用来保存东西 Application[ServletCont ...
- jsp的九大内置对象和作用域
定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象(作用域) 客户端的请 ...
- Java Web(五) JSP详解(四大作用域九大内置对象等)
前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...
- 小汤学编程之JavaEE学习day03——JSP组成结构、JSP原理、JSP生命周期、JSP九大内置对象、四大作用域、JSP的MVC模式
一.JSP组成结构 二.JSP的原理 1.JSP的运行原理 2.分析JSP所生成的Servlet代码 3.JSP的执行过程 三.JSP生命周期 四.JSP九大内置对象 五.JSP四大作 ...
最新文章
- 利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包
- driver: linux2.6 内核模块导出函数实例(EXPORT_SYMBOL)
- OpenGL equirectangular等矩形环境图的实例
- 快速排序的性能和名字一样优秀
- [JavaWeb-JavaScript]JavaScript注释数据类型
- 前端学习(1810):前端调试之css装饰cursor
- 单调队列优化的背包问题
- C#中的泛型化方法的实现
- JAVA Swing GUI设计 WindowBuilder Pro Container使用大全3——JScrollPane使用
- 2020 年物联网设备达 500 亿台!AI、区块链技术加持,优秀开发者稀缺!
- 社交游戏Zynga之死
- 银行业务队列简单模拟Java程序设计_PTA 数据结构 银行业务队列简单模拟
- Emacs中自动刷新dired缓冲区
- 给计算机e盘加密,win10系统给e盘加密的操作方法
- pythoncad标注教程_CAD 2014二维三维建模渲染标注基础与提升视频教程
- 苹果电脑macos Monterey 12.6(21G115)dmg原版引导版镜像下载
- Java解决上台阶问题
- 微信隐藏功能:微信提现怎么免手续费?勤俭持家的福音,2步做到
- MFC封装功能成动态库相关问题汇总记录
- android手机如何到导出电话号码,苹果手机通讯录怎么导入?如何导出手机通讯录到新手机...
热门文章
- cubemx 使用 学习跳转链接
- 色深 (Color Depth)
- Odoo 16 企业版手册 - CRM (2)
- VSTO Office二次开发应用程序键盘鼠标钩子
- php 如何股票曲线图,如何看股票曲线图?股票曲线图讲解
- C语言关键字及其解释[共32个]
- 【智能制造】奔向智能制造;什么样的人能引领工厂智能制造发展?
- LaSOT: A High-quality Benchmark for Large-scale Single Object Tracking(论文翻译)
- Android OpenGL ES 实现 3D 阿凡达(Avatar)效果
- 使用JMeter进行MySQL的压力测试