JSP
- 概念
- JSP:Java Server Pages
- 替代servlet做前端的展示
- 拥有servlet的特性与优点(本身就是一个servlet)
- 直接在HTML中内嵌JSP代码
- JSP程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行
- 只有当客户端第一次请求JSP时,才需要将其转换、编译
- JSP本质
- JSP 和servlet是一体两面(一回事)
- JSP就是servlet
- JSP的组成
- 编译(指令)元素(标签)
- 脚本元素(java代码)
- 静态元素(html)
- JSP=JAVA+HTML
- JSP指令元素有哪些,分别怎么使用?
- page、include、taglib
- page指令:定义页面的一些属性。
- <%@page %>
- import:多包导入使用逗号隔开
- pageEncoding: utf-8
- <%@page %>
- include指令:引入一个静态的JSP页面
- <%@include file="引入页面的位置” %>
- taglib指令:引入一个标签库
- <%@taglib %> :引入标签库 jstl(jsp standard tags lig)
- prefix: 前缀:区别不同标签库的相同标签名称
- uri:标签库的位置
- <%@taglib %> :引入标签库 jstl(jsp standard tags lig)
- 动作元素
- <jsp:include page=””>
- <jsp:forward>
- <jsp:usebean>
- <jsp:setProperty>
- <jsp:getProperty>
- jsp:include 和编译指令include的区别
- @include编译指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入,然后再编译执行;而<jsp:include>指令在转换时期是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入。
- @include编译指令生成一个java文件而<jsp:include>指令会成两个java文件
- @Include不能带参数, 而<jsp:include>可以
- PS :动态包含的文件和被包含文件用的是同一个request对象
- JSP中的Java脚本
- 格式
- <% %>:内容
- <%! %>:声明方法,变量
- <% =... %>:输出等号后面的内容,不需要以”;”结束
- 格式
- 讲解JSP中的四种作用域
- 四种作用域包括page、request、session和application,具体来说:
- page是代表一个页面相关的对象和属性。一个页面由一个编译好的java servlet类(可以带有include指令,但不可以带有include动作)表示。这既包括servlet又包括编译成servlet的jsp页面。
- request是代表与web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个web组件(由于forware指令和include动作的关系)
- session是代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web回话也可以经常跨域多个客户机请求。
- application是代表与整个web应用程序相关的对象和属性。这实质上是跨域整个web应用程序,包括多个页面、请求和回话的一个全局作用域。
- JSP的九大内置对象。
- out
- request
- response
- session
- application
- config
- pageContext
- page
- Exception
- EL表达式(Expression Language)
- EL的功能:简化JSP页面开发,可以使用EL表达式访问JSP隐含对象和JavaBean组件,避免使用Java脚本。
- EL表达式的语法:
- ${ EL expression }
- ${ bean.name } or ${ bean[‘name’]} 实质上是调用bean的getName()方法。
- JSP页面忽略EL:
- page指令属性isELIgnored=”true”;
- EL访问作用域变量
- 定义方式:即作用域变量(pageContext/request/session/application).setAttribute(“name”,”value”);
- 访问方式:${name} or ${***Scope.name}
- EL的运算符
- 算数运算符
- 逻辑运算符
- 三元运算符
- JSTL
- 概念
- JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
- 优点:
- 提供一组标签,用于编写各种动态JSP页面
- 通常和EL合作实现功能
- JSTL的导入
- 在项目中增加jstl.jar架包
- <%@ taglib uri=”http://java.sun.com/jsp/jstl/core”prefix=”c” %>
- 概念
- JSTL标准标签库内的标签
- 通用标签
- set
- remove
- out
- 条件标签
- if
- 迭代标签
- forEach
- 通用标签
- JSTL格式化
- 用法:
- 格式化并输出文本,日期,时间,数字。
- 引入方式:
- <%@ taglib uri=”http://java.sun.com/jsp/jstl/fmt”prefix=”fmt” %>
- 用法: