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