JSP简介
HTML代码与Java代码共同存在, 其中HTML代码用来实现网页中静态内容的显示, Java代码用来实现网页中的动态内容显示. 为了与传统HTML有所区别,JSP文件的扩展名为.jsp
JSP技术所开发的Web应用程序是基于Java的,本质上就是一个Servlet
jsp的基本语法
1.jsp注释
<%--jsp注释--%>.
2.jsp中书写java代码的三种方式
-
脚本片段
格式: <%java代码片段%>
2.脚本声明
格式:<%!书写java代码%>
作用:在类的成员位置上声明方法和变量
3.脚本表达式
格式:<%=表达式%>
脚本表达式书写的java代码,会翻译到java文件中的_jspService方法内, 被out.print输出到页面
EL表达式
作用:代替jsp中脚本表达式的功能, 简化对java代码的操作
格式:${表达式内容} 主要是从域对象中查找指定的数据
在获取数据时指定相关容器,
指定从request容器获取数据:${requestScope.数据名}
指定从session容器获取数据:${sessionScope.数据名}
指定从 servletcontext容器获取数据:${applicationScope.数据名}
如果没有指定容器,默认按request, session, servletcontext顺序获取数据,只要获取到就不再往下找
获取集合
${集合名}
${集合名[index]}
${map.key}或${map[key]} 凡是在EL表达式中使用"."可以获取的数据,使用"[]"也可以获得
获取JavaBean数据
${对象名}
empty运算符
用来判断当前获取的数据是否为空或者当前获取的集合是否没有数据
${empty str}判断str是否为空
JSTL的核心标签库
sun公司定义的jsp中自定义的标准标签库; 以标签代替java代码,jstl的底层是封装好的java
导入jar包: javaX.servlet.jsp.jstl.jar
jstl-impl.jar
常用标签
<c:if test="" var="" scope="">
属性: test决定是否处理标签体重的内容的条件表达式,可以使用EL表达式
var用于指定将test属性的执行结果1保存到某个web域中的某个属性的名称
scope指定将test属性的执行结果保存到哪个Web域中
<c:forEach begin="" end="" step="" var="">
属性: items指定要循环的对象
varStatus保存了当前循环过程的信息(循环的开始,结束,步长,次数等)
begin设置循环的开始
end设置循环的结束
step设置步长
var保存被循环的对象中的元素到page这个web域中的属性名称
循环对象(数组,list,map)
<c:forEach items="${集合名}" var="变量名">
${变量名}
</c:forEach>