<c:forEach begin="1" end="10" step="2" var="i" varStatus="stat">
\({i} ----- \){stat.first}
</c:forEach>
刘夜壶 21:41:27
JSP
简介
JSP脚本片段---<% %>-------用于在JSP页面写JAVA代码
注意
1. JSP脚本片段中只能出现java代码,不能出现html元素,在访问JSP时,JSP引擎翻译JSP的脚本片段
2. JSP脚本片段中的java带啊吗必须严格遵守java规则
3. 一个JSP页面可以有多个脚本片段
4. 多个脚本片段中的代码可以相互访问
面试题:Servlet和JSP区别JSP本质就是Servlet。JSP更侧重于视图展示,Servlet更侧重于逻辑处理;先有Servlet后 有JSP
JSP表达式
* 在页面中显示出来-----<%= xxx %>
* 可以赋值,只能使用,不能声明
JSP声明片段
<%! xxx %>--------只能声明,不能使用
JSP指令标识
<%@ 指令名 属性1="值1" 属性2="值2".....%>
page指令
定义整个JSP页面的相关属性
autoFlush指令
自动刷新,默认为true
errorPage指令
* 错误界面---------errorPage="xxx.jsp"
* <% exception.getMessage()%>获得错误信息
include指令
引入其它JSP界面
taglib指令
引入页面上需要用到的标签库
JSP标签
内置标签
* jsp.include:引入指定的界面
面试题:jsp.include标签和include指令的区别 include标签:先把要引入的页面翻译,再合并 include指令:先把要引入的页面合并,再翻译
* jsp.forward:转发页面
* jsp.param:传参数
JSTL标签
需要导入JSTL标签库
自定义标签
JSP作用域
四大作用域
* pageContext:当前页
一个属性只能在一个页面中获得
* request:一次请求
一个页面中设置的属性,范围是一次请求(重定向/转发请求)
* session:一次会话
一个会话中的属性,只要页面不关闭,都能获取到
* application:整个web应用
在这个服务器上,当前项目下任何一个位置都能获取
JSP内置对象
面试题:JSP的九大内置对象。内置:不需要创建,直接就能用。 1、request 请求 2、response 响应 3、session* 会话 4、out 输出 5、page 当前JSP页面对象 6、application 应用 7、exception* 异常,只能在指定了isErrorPage="true" 8、pageContext 当前页,作用域 9、config 配置
EL表达式
EL表达式的缺陷
1、只能读,不能写
2、不支持流程控制语句
EL表达式的内置作用域对象
pageContext
requestScope
sessionScope
applicationScope
流程控制
c:if
<c:if test="\({sessionScope.age >= 18}">可以观看!</c:if> <c:if test="\){sessionScope.age < 18}">禁止观看!</c:if>
c:choose c:when-----switch
<c:choose>
<c:when test="\({sessionScope.age eq 18}">
你已经年满18岁,可以签署劳动合同了!
</c:when>
<c:when test="\){sessionScope.age lt 18}">
你好没有满18岁!
</c:when>
<c:otherwise>
你已经是大人了!!!
</c:otherwise>
c:foreach(遍历)
begin-----从xxx开始
end------到xxx结束
step------一次执行条件
var---------声明变量
<c:forEach begin="1" end="10" step="2" var="i" varStatus="stat">
\({i} ----- \){stat.first}
</c:forEach>