JSP/EL/JSTL

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

}

只需要写一个就可以遍历后面的。

原文地址:https://www.cnblogs.com/a199706/p/11603486.html