2.2 JSP指令
2)include指令
语法格式:<%@include file="" %>
该指令是包含外部页面。
属性:file,以/开头,就代表当前应用。
使用示例
在编译成的java servlet文件中是这样的,也就是说,include.jsp 后续 代码可以直接使用 included.jsp 中的 str变量。
3)taglib指令
语法格式:<%taglib uri="" prefix=""%>
作用:该指令用于引入外部标签库。html标签和jsp标签不用引入。
属性:
uri
:外部标签的URI地址。
prefix
:使用标签时的前缀。
2.3 JSP细节
1)九大隐式对象
什么是隐式对象呢?它指的是在jsp中,可以不声明就直接使用的对象。
它只存在于jsp中,因为java类中的变量必须要先声明再使用。
其实jsp中的隐式对象也并非是未声明,只是它是在翻译成.java文件时声明的。所以我们在jsp中可以直接使用。
也就是说下面的对象在jsp中可以直接使用。
2)PageContext对象
简介
它是JSP独有的对象,Servlet中没有这个对象。本身也是一个域(作用范围)对象,但是它可以操作其他3个域对象中的属性。而且还可以获取其他8个隐式对象。
生命周期
它是一个局部变量,所以它的生命周期随着JSP的创建而诞生,随着JSP的结束而消失。每个JSP页面都有一个独立的PageContext。
常用方法
在上图中,同学们发现没有页面域操作的方法,其实是定义在了PageContext的父类JspContext中,如下图所示:
3)四大域对象
4)四大域对象作用范围
pageContext
作用范围:当前jsp页面;
作用:获取九大内置对象;
常用方法:getAttribute()、setAttribute()、removeAttribute()、findAttribute()
httpServletRequest
作用范围:一次请求范围内,转发有效重定向失效;
作用:将servlet中的数据通过request对象带到jsp页面;
httpSession
作用范围:存活时间内(默认30分钟),一次会话内有效,转发和重定向都有效;
servletContext
作用范围:整个web应用;
在jsp的九大内置对象中,servletContext对应application;
2.4 JSP最佳实战效果——MVC模型
- M:model ,通常用于封装数据,封装的是数据模型。
- V:view ,通常用于展示数据。动态展示用jsp页面,静态数据展示用html。
- C:controller ,通常用于处理请求和响应。一般指的是Servlet。
Servlet:擅长处理业务逻辑,不擅长输出显示界面。在web开发中多用于控制程序逻辑(流程)。所以我们称之为:控制器。
JSP:擅长显示界面,不擅长处理程序逻辑。在web开发中多用于展示动态界面。所以我们称之为:视图。
例如: