JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域
JSP内置对象、基本动作指令、常见编译指令及四大作用域
(一) JSP工作原理
当一个jsp页面第一次被访问的时候,jsp将执行以下三个步骤,之后的访问速度会因为class文件已经生成而大大提高,当jsp引擎发送一个客户端请求的时候,首先判断请求的jsp页面是否比对应生成的servlet文件,如果不同,对应的jsp需要重新编译。
将jsp页面翻译成servlet,这个servlet是一个java文件,同时也是一个完整的java程序。
jsp引擎调用java编译器对这个servlet进行编译,得到可执行文件class。
jsp引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端。
(二) JSP内置对象
request:负责得到客户端请求的信息,对应类型: javax.servlet.http.HttpServletRequest
response:负责向客户端发出响应,对应类型:javax.servlet.http.HttpServletResponse
session:负责保存同一客户端一次会话过程中的一些信息,对应类型:javax.servlet.http.httpsession
out:负责管理对客户端的输出,对应类型:javax.serlvet.jsp.jspwriter
application:表示整个应用环境的信息,对应类型:javax.servlet.servletcontext
config:表示ServletConfig,对应类型:javax.servlet.servletconfig
exception:表示页面中发生的异常,可以通过它获得页面异常信息,对应类型:java.lang.exception
pagecontext:表示这个JSP页面上下文,对应类型:javax.servlet.jsp.pagecontext
page:表示当前JSP页面本身。
(三) JSP基本动作指令
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
(四) JSP常见编译指令
page指令:定义页面的一些属性。以下是最常见的三种常见属性:
a. contentType=“text/html;charset=utf-8”; 向浏览器端输出数据的编码b. pageEncoding=“utf-8”; JSP编译成java文件时所用的编码
c. session=“true” 是否自动创建session
include指令:引入一个静态的JSP页面
taglib指令:引入一个标签库
(五) JSP四大作用域
JSP中的四种作用域包括page、request、session和application,具体来说:
page里的变量,只要页面跳转了,它们就不见了。如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。
所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。session和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。
如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。
所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。application里的变量一直在累加,除非你重启tomcat,否则它会一直变大。如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。
整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。
application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。
JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域相关推荐
- JavaWeb学习笔记——jsp内置对象
- java遇上html,JAVA遇见HTML——JSP篇:JSP内置对象(上)
JSP九大内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象. int[] value={60,70,80}; for(int i:value){ out.pri ...
- Jsp内置对象及EL表达式的使用
一.JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse ses ...
- jsp内置对象【02】四种内置对象【02】session、application
我们继续来学习,上一篇文章中说到了request属性,那么既要想客户端和服务端都都能实现跳转的话,就用到了session. 第三种:session属性 我们接着修改一下上一篇文章中的代码来对比一下: ...
- jsp内置对象+Servlet
一,jsp内置对象 1. request:请求对象: request.getParameter();得到一个参数:获得提交表单中唯一的值: request.getParameterValues();得 ...
- [02] JSP内置对象
1.内置对象的来历 JSP是由一些内置对象的,即不需要定义,也不需要我们主动创建,就可以直接使用的对象.当然,其对象名称也是固定的,无法修改,我们可以直接调用其相关方法. 在 [01] JSP的基本认 ...
- EL表达式,JSP内置对象
基本语法格式 EL都是以 ${ 为起始.以} 为结尾的 ${ EL Expression} 示例: ${ "Helloworld" } //输出字符串常量 ${ str } / ...
- 【JSP笔记】第四章 JSP内置对象【下】
2019独角兽企业重金招聘Python工程师标准>>> 1.什么是session 表示客户端与服务器的一次会话. Web中的session指用户浏览网站时,从进入网站到浏览器关闭的这 ...
- 转:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别
原文地址:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别 首先说明一下jsp9大内置对象 (1)HttpSession类的session对 ...
最新文章
- 【Zookeeper】Zookeeper集群“脑裂”问题处理大全
- animate.css动画抖动,Animate.css抖动效果每次都不工作
- 如何使用Mybatis-plus
- 【MFC系列-第25、26天】绘图软件
- phpcms底部版权信息修改教程——修改“开发团队”信息
- 现身说法“好奇心害死人啊”
- [转]RDLC 动态列
- 专题九:Simulink系统仿真
- [Linux源码分析]Linux内核架构
- 超强OCR文字识别软件首选ABBYY FineReader
- 利用EXCEL进行数据爬虫
- 计算机中的工作流程,计算机工作流程
- isee看图精灵下载
- 在线免费学习java资源推荐
- Codeforces 685B	Kay and Snowflake(树形dp)
- Pixelmator Pro for Mac(媲美PS的修图软件)
- Node.js + Web Socket 打造即时聊天程序嗨聊(1)
- 归并排序的python实现:递归与非递归
- 知识追踪之动态键值对记忆网络 Dynamic Key-Value Memory Networks for Knowledge Tracing
- 微信公众号开发之自动消息回复