1 JSP
- 简化Servlet代码,在HTML标签中嵌套Java代码,用以高效开发Web应用的动态网页
- jsp第一次被访问时编译(xxx.jsp–>Xxx_jsp.java–>Xxx_jsp.class)
1.1 Jsp与Servlet的区别
- Jsp本质上也是Servlet
- Jsp更擅长页面的展示
- Servlet更擅长逻辑代码的编写
1.2 Jsp脚本
- 普通脚本:
<% Java代码 %>
- 声明脚本:
<%! 定义成员变量、函数 %>
- 输出脚本:
<%= java表达式 %>
1.3 Jsp注释
- Jsp注释:不会被编译,浏览器源代码看不见
<%-- 注释 --%>
- HTML注释:浏览器源代码可以看见
<!-- 注释 -->
1.4 Jsp指令
- page指令:
<%@ page key="value" %>
* contentType:指定当前Jsp页面的类型和编码集
* errorPage:指定发生异常时需要跳转的错误页面
* isErrorPage:指定当前页面是否作为一个错误页面,默认为false,为true则会为该页面创建exception对象
* import:导入要使用的Java类
* language:定义Jsp所使用的语言
* seesion:指定当前Jsp页面是否使用session,默认为true立即创建,为false则使用时创建
* pageEncoding:指定Jsp页面的解码格式 - include指令:静态包含
<% include file="被包含的Jsp路径"%>
* 可能会有重名的冲突问题,不推荐使用 - taglib指令:
<% taglib uri="外部标签库路径"% prefix="前缀" >
1.5 动作标签
- 语法:
<jsp:action_name attribute="value" />
- include:动态包含
- useBean:用来动态加载一个将来Jsp页面中使用的JavaBean
- setProperty:用来对JavaBean的属性赋值
- getProperty:提取指定Bean的属性的值
- forword:转发
- param:转发内部使用,做参数传递
1.6 Jsp九大内置对象
- request:HttpServletRequest
- response:HttpServletResponse
- session:HttpSession
- application:ServletContext
- config:ServletConfig
- exception
- out:jspWriter
- pageContext
- page:当前Servlet实例(this)
1.7 Jsp四大作用域
- pageContext:当前Jsp页面范围有效
- request:一次请求有效
- session:一次会话有效
- application:整个Web应用有效
1.8 EL表达式
- EL使Jsp写起来更简单、简洁。主要用于获取作用域中的数据
操作符 | 描述 |
---|
. | 访问一个Bean属性或者一个映射条目 |
[] | 访问一个数组或者链表的元素 |
+ | 加 |
- | 减或负 |
* | 乘 |
/ or div | 除 |
% or mod | 取模 |
== or eq | 测试是否相等 |
!= or ne | 测试是否不等 |
< or lt | 测试是否小于 |
> or gt | 测试是否大于 |
<= or le | 测试是否小于等于 |
>= or ge | 测试是否大于等于 |
&& or and | 测试逻辑与 |
|| or or | 测试逻辑或 |
! or not | 测试取反 |
empty | 测试是否空值 |
隐含对象 | 描述 |
---|
pageScope | page 作用域 |
requestScope | request 作用域 |
sessionScope | session 作用域 |
applicationScope | application 作用域 |
param | Request 对象的参数,字符串 |
paramValues | Request对象的参数,字符串集合 |
header | HTTP 信息头,字符串 |
headerValues | HTTP 信息头,字符串集合 |
initParam | 上下文初始化参数 |
cookie | Cookie值 |
pageContext | 当前页面的pageContext |
1.9 JSTL标准标签库
- JSP标准标签库(JSTL)是一个JSP标签集合。
- 可对EL获取到的数据进行逻辑操作,与EL合作完成数据的展示。
- 在JSP页面引入标签库<% @taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”>
1.9.1 if条件判断
- 语法:
<c:if test="条件"></c:if>
1.9.2 choose多条件判断
<c:choose >
<c:when test="条件1">结果1< /c:when>
<c:when test="条件2">结果2< /c:when>
<c:when test="条件3">结果3< /c:when>
<c:otherwise >结果4< /c:otherwise>
< /c:choose>
1.9.3 foreach遍历
<c:foreach
var="变量名"
items="集合"
begin="起始下标"
end="结束下标"
step="间隔长度"
varstatus="遍历状态">
< /c:foreach>