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(“属性名”):删除域对象中属性名对应的数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值