jsp脚本
写el表达式之前必须加上
<%j ava代码 %>
<%=java变量或表达式%>
<%!java代码%>
注释:
Html注释:<!--注释内容-->
java注释://单行注释
jsp注释:<%--注释内%>
JSP指令:
page指令
include指令
jsp内置/隐式对象
out request response config session application page pageContext exception
jsp脚本第二弹
9个内置隐式对象详解
静态导入:
<%@ include file="/header.jsp" %> <h3 style="color:red">这是身体!</h3> <%@ include file="/footer.jsp" %>
比较灵活的导入
<jsp:include page="/header.jsp"></jsp:include> 这时身体 <jsp:include page="/footer.jsp"></jsp:include>
出来效果一样。
out request response config application pageContext session page exception
out request response config application page pageContext session exception
1、out详解,作为一个往页面输出的内置对象,它的写法是out.write();缓冲区默认8kb,设置成0自动关闭,与同样可以在页面输出东西的response.getWrite.write();来讲在<%%>中,顺序就一样了,要不就是response>out优先输出。
pageContext作用域 pageContext.setAttribute("name", "楚慈",pageContext.APPLICATION_SCOPE); pageContext.findAttribute("name")+"........." ---依次从pageContext域,request域,session域,application域中获 取属性,在某个域中获取后将不在向后寻找
/通过pageContext从其他域中取值 pageContext.getAttribute("name",pageContext.REQUEST_SCOPE) %> <%= pageContext.getAttribute("name",pageContext.SESSION_SCOPE) %> <%= pageContext.getAttribute("name",pageContext.APPLICATION_SCOPE) %>
servlet作用域有三个,session(一个服务器),request(一次请求),servletContext(服务器)
jsp四大作用域:pageContext(当前页)session(一次会话)application(整个应用)request(一次请求)
因为有8大隐式,所以pageContext可以调用这里面的各种操作,如请求,响应等
jsp的静态包含include是直接在jsp里面把路径固定死,而动态包含则是<jsp:include page="被包含页面">
接着可以请求转发,<jsp:forward page="要转发的资源"/>
EL一定要引入要不值取不出来
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- 相当于pageCon.findAttrbute,用name取key,一次寻找后不再找 -->
${name}
<!-- 实体类对象.属性 -->
${user.name}....${user.age}
<!-- 集合 -->
${List[0].name }.....${List[1].age }
<!-- el执行表达式 -->
${2*2 }
<!-- 判断集合或者对象是否为空,空=true,不空=false-->
${!empty user }
${user==null? }el获取普通字符串${name }
el获取对象的属性${user.name }
el获取集合里的属性${List[0].name }
el也执行表达式
${2*2 }直接进行计算取值
${empty user }判断是否为空
${user==null?"1":"2" }三目运算符
从数据库里拿到商品信息。
JSTL技术
el技术是存取值,jstl是遍历。需要提前引入 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
然后可以用来<c:if test="${empty user>用来判断</c:if>
f普通for循环遍历
<c:forEach begin="0" end="10" var ="i">
${i }
</c:forEach>
这个等同于
for(int i=0;i<5;i++){
i
}
增强for
<c:forEach items="${List }" var="user">
${user.name }
</c:forEach>
for(com c:co){
c
}
只需要写一个就可以遍历后面的。