第11天jsp el与jstl标签库

更新时间:2023-10-15 06:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

北京传智播客 http://java.itcast.cn

第11天 jsp el表达式与jstl标签库

【教学内容】

JSP

? jsp回顾 ? jsp指令介绍 ? page指令

? include与taglib指令 ? jsp内置对象介绍 ? pageContext对象 ? jsp动作标签 EL表达式

? El表达式介绍与作用分析 ? El表达式获取数据 ? El表达式执行运算 ? El表达式内置对象 ? El函数使用 JSTL标签库

? Jstl标签介绍 ? Jstl核心标签

【教学总结】 【第一阶段】

【学习目标】 【内容:JSP】

jsp回顾

jsp作用

将内容的生成和显示进行分离

用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容

1 北京市海淀区建材城西路金燕龙办公楼一层

北京传智播客 http://java.itcast.cn

jsp原理

jsp注释 在jsp页面中可以使用三种注释

? 可以使用html中注释

? 可以对jsp脚本内容使用java注释

//单行注释 /* 多行注释 */ ? 可以使用jsp注释

<%-- jsp注释 --%>

jsp脚本 有三个基本的脚本元素,作用是使JAVA代码可以直接插入java代码

? 声明标签

格式<%! int a = 1; %>

声明的变量在类的成员位置上 ? 脚本片断

格式<% int a = 1; out.println(a); %> 内容会生成在_jspService()方法中 ? 脚本表达式

<%= \

它就相当于是out.println()将内容直接输出到页面中,注意表达式不能以分号结尾

jsp指令介绍

什么是指令及其作用 当我们创建一个jsp页面时,在页面第一行有一段代码如下:

<%@ page language=\这个就是指令,对于指令它有以下作用 ? 用于指示JSP执行某些步骤 ? 用于指示JSP表现特定行为

北京市海淀区建材城西路金燕龙办公楼一层

2

北京传智播客 http://java.itcast.cn

指令格式 指令的格式 <%@指令名 attr1=”” attr2=””%>

其中attr1和attr2表示指令中的属性,通常我们将JSP指令写在JSP文件的的最上方,但是这不是必须的。 Jsp中三种指令介绍 JSP中有三大指令,分别是以下三个:

? page ? include ? taglib

其中这三个指令中,page是最复杂的,后面我们会详细讲解;include指令表示静态包含,我们之前学习的请求包含属于动态包含;taglib指令是用来导入标签库,后面会学习一些标签库,在这里只做简单介绍。

page指令

重点属性

? import

作用是在jsp页面上导包操作. 这个属性可以有多个. ? pageEncoding

该属性的作用是:指定当前jsp页面的编码。这个编码是给服务器看的,服务器需要知道当前页面的编码,否则服务器无法正确的把jsp翻译成Java文件。 ? contentType 在jsp文件中有如下指令: <%@page language=\ contentType=\其中contentType属性的作用等同于response.setContentType(“text/html;charset=ISO-8859-1”)的作用。response的setContentType()方法这里我们就不再多说,当我们在jsp文件中提供了contentType属性,那么jsp对应的java文件中就会存在response.setContentType(“text/html;charset=ISO-8859-1”)这句代码。contentType属性的默认值就是“text/html; charset=ISO-8859-1”,但是我们知道iso-8859-1并不支持中文,所以我们需要将charset的值修改为“utf-8“。

pageEncoding与contentType的区别与联系

pageEncoding与contentType都是page指令的属性,它们都是用来设置编码,有如下联系: 如果这两个属性只提供了其中一个,那么没有提供的那个属性的编码值就是提供的这个属性的编码值,例如:在jsp页面中设置了contentType=”text/html;charset=utf-8”,那么没有设置的pageEncoding的值就为utf-8,反之亦然;

如果两个属性都没有提供,那么两者的默认编码就是ISO-8859-1。 根据对这两个属性的讲解,它们有如下区别:

pageEncoding是设置当前页面的编码,该编码是给服务器看的,可以让服务器正确的将jsp文件翻译成Java文件;

contentType有两个作用:一是设置响应字符流的编码,二是设置Content-Type响应头,即通知浏览器使用什么编码方式解码响应信息。

北京市海淀区建材城西路金燕龙办公楼一层

3

北京传智播客 http://java.itcast.cn

了解属性

? language

代表在jsp脚本中可以写的语言 只有一个值 java ? extends

它用于设置jsp翻译后的java类的父类. 要求必须是HttpServlet或其子类. ? Session

面上是否禁用session。可取值为true/false 如果值为false,在页面上不能使用session。 ? isELIgnored

用是否忽略el表达式.可取值为true/false 如果值为true,那么页面上的el表达式就不会被解析.

? autoFlush与buffer

用于设置jsp中out流的默认缓冲区大小以及是否自动刷新. ? errorPage

设置错误页面,当jsp中如果出现了异常,会自动跳转到指定的错误页面 ? isErrorPage

指示当前页面是一个错误页面,这时就可以使用一个内置对象 exception, 通过这个内置对象就可以获取异常信息.

include与taglib指令

include指令

? include指令作用

include指令的作用是在JSP页面中静态包含一个文件,同时由JSP解析包含的文件内容 ? include指令格式

<%@ include file=“filename” %> ? include指令功能分析

包含的是目标文件的源码;包含过来,一起翻译 main.jsp <% String s = “abc”; %>

<%include file=“part.jsp” %> part.jsp

<%=s %> 没有定义变量s 尽管part.jsp本身会有错误

但是运行main.jsp就可以正确引入part.jsp

taglib指令

? include指令作用

作用:是用于导入标签库. ? include指令格式

<%@taglib prefix=%uri 标签文件的URI地址

prefix 标签组的命名空间前缀

4

北京市海淀区建材城西路金燕龙办公楼一层

北京传智播客 http://java.itcast.cn

jsp内置对象介绍

jsp九个内置对象及其类型

request HttpServletRequest response HttpServletResponse session HttpSession application ServletContext

config ServletConfig page this (HttpServlet) pageContext PageContext

exception Throwable (所有异常父类) out JspWriter jsp九个内置对象创建过程

我们可以创建一个demo1.jsp页面,启动服务器,在浏览器中访问 demo1.jsp页面,在tomcat下的work目录中查找到它翻译后的demo1_jsp.java文件,在java文件中我们可以查找到每一个内置对象的创建。

request,response这两个对象是_jspService的参数

final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; final javax.servlet.ServletContext application; final javax.servlet.ServletConfig config; javax.servlet.jsp.JspWriter out = null; final java.lang.Object page = this;

5

北京市海淀区建材城西路金燕龙办公楼一层

本文来源:https://www.bwwdw.com/article/jjif.html

Top