JavaWeb学习笔记 (八)JSP和JSTL

一.JSP

1.什么是jsp

用户角度:就是一个网页()
程序员角度:就是一个java类,继承了servlet
实质:html中内嵌了java代码

2.为什么有jsp

html提供静态的内容,不能满足网页动态的需求,
为了提升了用户体验,增加了客户端和服务器的交互性。

3.jsp三大编译指令

在jsp编译成servlet时起作用。
指令写法<%@ 指令名字 %>

(1)page 指令
  • language

表明jsp页面可以使用的语言

  • contentType

表明文件是什么类型以及用什么编码(是服务器告诉浏览器
contentType=“text/html;charset=utf-8”
说明:MIME(Multipurpose Internet Mail Extensions) 多用途互联网邮件扩展类型,用于设定某种扩展名文件以特定的应用打开==
如:text/html 表明这是一个文本文件,用html打开
video/mp4 表明这是一个视频文件,用mp4格式打开

  • pageEncoding

JSP内容的编码

  • extends

用于指定jsp转换成java文件后,继承的父类,默认是httpJspBase,一般不修改

  • import

用来导包

  • session

用于表示在这个页面能否直接使用session对象
只有两个值,true或者false
ture代表可以直接在jsp中直接使用session,jsp转换的java源码中有getSession()获取的session对象的代码。
false则代表不能直接使用,jsp转换的java代码中没有获取session对象的代码

  • errorPage isErrorPage

errorPage 其值为转向出错页面的路径
当页面出错时,转向指定出错页面

isErrorPage 其值为true或者false
用来声明这个页面是否为出错页面

(2)include 指令

<%@ include file = “网页路径” %>
作用:包含另外一个jsp页面

  • 背后的细节

将被包含的页面的所有内容都放到包含页面的转换成的java代码中。

(3)taglib

<%@ taglib prefix=" " uri=" "%>

uri: 标签库路径
prefix: 标签库别名

4.jsp动作指令

运行时的动作

  • <jsp: include page=" "></jsp:include>

包含指定的页面, 这里是动态包含,也就是不把包含页面的所有元素拿过来,而是把它运行的结果拿过来。

  • <jsp: forward page=" "></jsp:forward>

直接跳转到指定页面,原来页面的内容都不显示。等同与以下代码
request.getRequestDispatcher(“跳转页面路径”).forward(request,response);

  • <jsp:param value=" " name=" "></jsp:param>

在跳转页面的时候将参数携带过去,需要写在跳转页面标签的里面。
在跳转后页面中,利用requset.getParameter()来过去传递过来的参数。

5. jsp的九大内置对象

所谓的内置对象就是不用创建就可以使用
pageContext
request
session
application

以上四个是作用域对象

out
exception
page
config
response

  1. 作用域

表示这些对象可以存值,他们的存值范围有限定。
都是通过setAttribute()存值 使用getAttribute()取值

  1. 四个作用域的区别

pageContext 类型:PageContext 作用域限制与本页面,通过这个对象可以拿到其他八个对象。
request 类型:HttpRequest 作用域限制与一次请求
session 类型:HttpSession 作用域限制域一次会话
application 类型 :servletContext 整个工程都可以访问,服务器关闭后就不能使用了

  1. out对象 和 response对象

out 类型:JspWriter
response 类型:HttpServletResponse
在这里插入图片描述
在这里插入图片描述
输出结果并没有按照代码的顺序显示。
这是因为out对象最终还是依靠response对象来进行输出。因此,response先输出自己的内容,然后再输出out对象要输出的内容。

  1. exception对象 page对象 与config对象

exception 类型:Throwable
page 类型:Object 其实就是这个jsp页面翻译成java类的实例
config 类型:ServletConfig

二. EL表达式

为了简化jsp中java的代码

  • 写法格式

${ 表达式 }
从指定域中取值
${ pageScope.name}
${ requestScope.name}
${sessionScope.name}
${applicationScope.name }
name为在域中存储的key值
如果直接用${ name },按照作用域对象由作用域有小到大找name对应的值

  • 取值方式

(1)如果值有下标,直接用 名字[]取值
(2)如果没有下标,直接使用 . 的 方式来取值

  • EL对象的11个内置对象

pageScope
requestScope
sessionScope
applicationScope

header 请求头信息
headerValues
param 请求携带的参数
params
cookie
initparam
pageContext

三. JSTL

  1. 定义

jsp standard tag library jsp标准标签库
作用:简化jsp代码的编写,替换<% %>写法,一般于EL表达式配合

  1. 用法

(1) 导入jar文件到工程webContent/Web-inf/lib jstl.jar standard.jar
(2) jsp页面使用taglib指令,引入标签库
(3) 如果想支持 EL 表达式,那么引入的 标签库必须选择1.1版本

在这里插入图片描述

  1. 常用标签

    <c:set> </c:set>
    在这里插入图片描述

<c:if > </c:if>
当满足if里面的语句时,将会执行这个标签中的语句
在这里插入图片描述

<c:foreach begin=" " end=" "></c:foreach>
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/85217429