JSP(Java Server Pages)
jsp页面实际上是servlet
在jsp页面中可以写java代码<% java代码%><%= java代码%>
在jsp页面中可以使用request和session
jsp和servlet比较
jsp优点:方便显示
缺点:不方便业务逻辑
servlet优点:方便业务逻辑
缺点:不方便显示
jsp和servlet是相辅相成,互补使用
jsp运行原理
Tomcat会把jsp转换成servlet
jsp语法:
指令:
1、引用:<%@include file="路径"%>
2、导入:<%@page import="路径"%>
3、
注释:在<%%>中//、<!-- -->页面看不到、<-- -->页面看的到
九个内置对象
request:本次请求有效
session:一次会话有效
application:服务器不关有效
pageContext:当前页面有效
out:输出对象
config:配置对象
page:页面对象
exception:例外对象
response:响应对象
通过pageContext对象可以得到其他八个内置对象
request = pageContext.setRequest();
EL表达式:
${}以${开始,以}结束;
boolean型:${true}
int型:${10}
EL表达式结果为null,什么也不显示,结果不为null,是什么就是什么
运算:
1、算数运算符:+、-、*、/
2、关系运算符:>、<、=、!=、<>
3、逻辑运算符:||、&&、!
4、其他运算符:()、$(a?b:c)条件运算符
变量:
${username}。它的意思是取出某一范围中名称为username的变量。
1、依次从page,request,session,application域中查找$(变量名);
2、在指定域中查找:
在page中${pageScope:变量名}
Request RequestScope
Session SessionScope
Application ApplicationScope
3、<%@ page isELIgnored="true"%> 表示是否禁用EL语言
JSTL:标准标签库
引入函数标签库:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach var="user" items="遍历对象" varStatus="index">(varStatus="index"表示遍历的下标从0开始)(begin="0"开始条件 end="1" 结束条件step="1"步长);
姓名:${user.username}<br/>
</c:forEach>
<c:if test="${user.username=='李江'}" >
第${index.index+1}位姓名:${user.username}<br/>
</c:if>
if---else--(条件为true执行when,为false执行otherwise)
<c:choose>
<c:when test="true">
1
</c:when>
<c:otherwise>
2
</c:otherwise>
</c:choose>
<c:choose>中<c:when>可以有多个<c:otherwise>只能有一个
引入格式化标签库<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:formatDate value="<%=new Date() %>" pattern="yy-MM-dd HH:mm:ss" type="both"/>时间格式化
getResourcepaths();用于获得目录下的子目录或文件路径
jsp页面实际上是servlet
在jsp页面中可以写java代码<% java代码%><%= java代码%>
在jsp页面中可以使用request和session
jsp和servlet比较
jsp优点:方便显示
缺点:不方便业务逻辑
servlet优点:方便业务逻辑
缺点:不方便显示
jsp和servlet是相辅相成,互补使用
jsp运行原理
Tomcat会把jsp转换成servlet
jsp语法:
指令:
1、引用:<%@include file="路径"%>
2、导入:<%@page import="路径"%>
3、
注释:在<%%>中//、<!-- -->页面看不到、<-- -->页面看的到
九个内置对象
request:本次请求有效
session:一次会话有效
application:服务器不关有效
pageContext:当前页面有效
out:输出对象
config:配置对象
page:页面对象
exception:例外对象
response:响应对象
通过pageContext对象可以得到其他八个内置对象
request = pageContext.setRequest();
EL表达式:
${}以${开始,以}结束;
boolean型:${true}
int型:${10}
EL表达式结果为null,什么也不显示,结果不为null,是什么就是什么
运算:
1、算数运算符:+、-、*、/
2、关系运算符:>、<、=、!=、<>
3、逻辑运算符:||、&&、!
4、其他运算符:()、$(a?b:c)条件运算符
变量:
${username}。它的意思是取出某一范围中名称为username的变量。
1、依次从page,request,session,application域中查找$(变量名);
2、在指定域中查找:
在page中${pageScope:变量名}
Request RequestScope
Session SessionScope
Application ApplicationScope
3、<%@ page isELIgnored="true"%> 表示是否禁用EL语言
JSTL:标准标签库
引入函数标签库:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach var="user" items="遍历对象" varStatus="index">(varStatus="index"表示遍历的下标从0开始)(begin="0"开始条件 end="1" 结束条件step="1"步长);
姓名:${user.username}<br/>
</c:forEach>
<c:if test="${user.username=='李江'}" >
第${index.index+1}位姓名:${user.username}<br/>
</c:if>
if---else--(条件为true执行when,为false执行otherwise)
<c:choose>
<c:when test="true">
1
</c:when>
<c:otherwise>
2
</c:otherwise>
</c:choose>
<c:choose>中<c:when>可以有多个<c:otherwise>只能有一个
引入格式化标签库<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:formatDate value="<%=new Date() %>" pattern="yy-MM-dd HH:mm:ss" type="both"/>时间格式化
getResourcepaths();用于获得目录下的子目录或文件路径