EL表达式和JSTL标签 Session
Cookie 有大小限制(Cookie大小限制根浏览器类型有关)
Session没有大小限制
生命周期:
销毁:
1.Session 过期,默认30分钟过期
2.非正常关闭服务器,正常关闭会把Session序列化到文件中(work下SESSION文件)
3.手动调用:session对象.invalidate()
作用范围:
一次会话
session-config
session-timeout 设置过期事件
Session操作:
setAttribute(String,Object)
getAttribute(String);
removeAttribute(String);
Page页面指令
JSP注释
HTML注释 :<!-- 注释 -->edi
JAVA代码注释 :// 单行 /* 多行 *//** 文档 */
<%-- JSP注释 --%> :JSP注释只存在于JSP页面中,解析成java文件后,不会存在JAVA文件中
JSP指令
指令的语法:
<%@ 指令名称 属性名称=“属性值” 属性名称=“属性值” %>
page指令:
language : JSP脚本中使用的语言
contentType : 浏览器打开JSP的时候采用的默认字符编码
pageEncoding : 设置解析城JAVA文件时字符编码
import : 引入JAVA对象
extends : 设置解析成JAVA文件后继承的类,这个类必须是HttpServlet子类
autoFlush : 设置JSP缓存自动刷出(true|false)
buffer : 设置JSP缓冲区的大小
session : 设置JSP中是否能直接使用Session对象
调用是:session.setAttribute("")
isELIgnored : 是否忽略EL表达式
errorPage : JSP页面错误后,跳转到什么页面
isErrorPage : 设置显示异常信息
设置全局友好页面:
web.xml中:
<error-page>
<error-code> 错误页面代码
<location> 指定错误代码后跳转页面
静态包含指令(inclue)
<%@ include file='相对路径.jsp页面' %>
JSP中taglib指令:指示JSP引入标签库
taglib指令:
JSP内置对象
9大内置对象
配置指令 实际类型
request HttpServletRequest
response HttpServletResponse
session HttpSession
application ServletContext
page Object
pageContext PageContext
获取其他 8 个内置对象
向JSP四个域中存取数据
PageScope : 当前页面中有效 pageContext
RequestScope : 一次请求范围 Request
SesionScope : 一次会话范围 Session
ApplicationScope : 应用范围 ServletContext
存取
pageContext.setXXX(String key ,String vale)/getXxx(String key,String value)
pageContext.setApplication(String,PageContext.XXX_SCOPE);
查找指定名称域的值
pageContext.findAttribute(String)
查找规则(域从小到大):
1.PageScope
2.RequestScope
3.SessionScope
4.ApplicationScope
config ServletConfig
out JspWriter
exception Throwable
Page 内置对象 :真是对象是Object,就是JSP翻译成Servlet类后的类的引用
out 内置对象 :out和response.getWriter()返回的是不是一个类型对象?out返回JspWriter,response.getWriter()返回PrintWriter
JSP动作标签
<jsp:forward /> :用于页面转发
<jsp:include /> : 用于页面的包含
<jsp:param /> : 用于带有路径的标签下传递参数
<jsp:useBean /> : 用于在JSP中使用JavaBean
<jsp:setProperty /> : 设置JavaBean属性
<jsp;getProperty /> : 获得JavaBean属性
静态包含和动态包含区别
静态包含:
A页面静态包含B页面,是把B页面的代码复制到A页面中,最后生成一个JAVA文件
动态包含:
A页面动态包含B页面,是把B页面的执行结果复制到A页面中,整个过程生成两个JAVA文件
EL表达式
作用:简化JSP代码,减少<% %>
语法:
${ EL表达式 }
EL功能:
获取数据:${ JSP的四个域 }
xxxScope
只能获取值,不能获取其他对象
pageScope
requestScope
sessionScope
applicationScope
直接写属性名
访问顺序
page获取
request
session
application
Map情况下
${ Map对象.key }
.【点】和[]【方括号区别】
[]用于有下包数据的集合
.用于有属性的数据
特殊情况:
如果Map.key中包含特殊符号,只能用[]【方括号】获取Map指定值
列:map中键 "aaa.a"
只能 map["aaa.a"]获取值
执行运算:
操作WEB开发的常用对象
执行算数运算:字符串逻辑运算时会把字符串数字取出来进行运算
执行逻辑运算
lt less than 小于
gt great than 大于
le less equal 小于等于
ge great equal 大于等于
eq equal 等于
表达式and表达式 表达式&&表达式
表达式||表达式 表达式or表达式
三元运算符
${ 三元运算符 }
empty运算
对象 == null empty 对象
对象 != null not empty 对象
EL操作WEB开发常用对象
param paramValues
param 接受参数
String param.请求过来的name键
paramValues 接受多个参数
String[] paramValues.键 [第几个值索引]
获取请求头
String header["请求头键"]
获取全局初始化参数
String initParam.键
获取Cookie中的值
cookie.键.value
获取工程路径:
pageContext.request.contextPath
获取IP地址
pageContext.request.remoteAddr
JSTL标签
JSP标准标签库
JSTL配合EL替换页面中<%%>
JSTL标签库
core(核心标签),fmt(国际化标签),fn(JSTL提供 EL 函数库)
使用JSTL
1.引入JAR
2.在页面中引入标签库 包
http://java.sun.com/jsp/jstl/core
JSTL标签
<c:if test = "布尔值">
为true时显示
</c:if>
<c:set var"键" value=“值”Scope="存储在那个域" />
<c:put value="输出的内容" escapeXML="布尔值" default="默认值" >
value 输出到浏览器的内容
escapeXML 如果输出内容有标签,是否原意输出文本(包含HTML标签转移成文本格式)
default 如果value没值,输出default的值
标签遍历
<c:foreach var="每个值变量" items="${ 数组集合 }" >
${ 变量 }
</c:foreach>
<c:foreach var="每个值变量" items="${ Map组集合 }" >
${ 变量.key } ${ 变量.value }
</c:foreach>
属性:
var 每个值变量
items 集合对象
begin 遍历开始位置
end 遍历结束位置
step 每次遍历加指定数字
varStatus 记录循环状态变量
两个属性:index(当前下标)(0开始)、count(第几个元素) (1开始)
EL函数库
1.引入标签库
<%@ taglib uri=".....functions" prefix="fn" %>
${ fn:函数方法 }
MVC
M:Model 模型层
V:View 视图层
C:Controller 控制层
|
|