2021-11-25 Jsp&Jstl标签库

目录

1.jsp的四大作用域

2.jsp的九大内置对象

3.Jstl标签库的使用

3.1、标签

3.2、标签

3.3、标签


1.jsp的四大作用域

  • 范围从大到小: application>session>request>pageContext
  • 同名获取优先级: page > request > session > application
  • 常用方法:
setAttribute();//存值
getAttribute();//取值
removeAttribute();//移除值
getAttributeNames();//获取指定作用域保存所有值的对象集合
 @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
​
        //3个范围中都保存了name
        req.setAttribute("name","zyw");
        req.getSession().setAttribute("name","lisi");
        ServletContext application =  req.getServletContext();
        application.setAttribute("name","zhangsan");
​
        req.getRequestDispatcher("/test.jsp").forward(req,resp);
​
    }
<%--
        application ,内置对象--在jsp中
        在Servlet中没有内置对象一说。。
        特点: 应用级别的 数据存储对象。A 点存储,所有客户端共享
    --%>
​
<%
    Object objCounter = application.getAttribute("objCounter");
    if(objCounter == null){
        application.setAttribute("objCounter",1);
    }
    application.setAttribute("objCounter",
            (Integer)objCounter+1);
%>
​
访问次数:${applicationScope.objCounter}
​
<%--//Servlet 中如何获取application对象
ServletContext application =  req.getServletContext();
application.setAttribute("k1","100");--%>
<%
​
    //在当前jsp某个位置存储数据,只能当前页面获取
    //它是数据共享级别中 最小的
    //pageContext < reqquest < session < application
    //保存一个数据
    pageContext.setAttribute("uname","zyw");
  %>
  <div>其他内容</div>
​
  ${pageScope.uname} ==== ${uname}
<%
        pageContext.setAttribute("name","xiaoming");
    %>
​
    <div>
        <%--同名获取优先级: page > request > session > application --%>
        按name名查找获取:${name}
    </div>
​
    <div>
        分级别获取同名:
        <p>${pageScope.name}</p>
        <p>${requestScope.name}</p>
        <p>${sessionScope.name}</p>
        <p>${applicationScope.name}</p>
    </div>
​
    <c:if test="${2>3}" var="b">
        execute if
    </c:if>
​
    <c:if test="${!b}">
        execute else
    </c:if>
​
   .first},${s.last},${s.index},${s.count} <br/>
    </c:forEach>

2.jsp的九大内置对象

  • request :当前的请求对象

  • response:当前响应对象

  • session:对应当前请求的客户会话对象

  • out:对应当前响应对象的输出流

  • application:Web应用对象

  • pageContext:封装当前请求内此Jsp页面信息的对象

  • page:指向页面自身的方式,相当于this关键字

  • config:与当前jsp页面的Servlet对应的ServletConfig对象

  • exception:其他地方抛出的Throwable对象,仅当 < %@page idErrorPage="True"%>时有效

3.Jstl标签库的使用

3.1、<c: if>标签

判断

    <c:if test="${2>3}" var="b">
        execute if
    </c:if>
​
    <c:if test="${!b}">
        execute else
    </c:if>

3.2、<c: forEach>标签

循环遍历

 <%
        String[] arr = {"a1","a2","a3","a4"};
        pageContext.setAttribute("arr",arr);
    %>
    <%--var 当前元素
    items 数组或集合
    begin 下标开始位置
    end  下标结束位置
    step 元素间隔 默认1
    varStatus 提供一个变量名
    --%>
   
<c:forEach var="item" items="${arr}" varStatus="s">
    ${item}, ${s.first},${s.last},${s.index},${s.count} <br/>
</c:forEach>

3.3、<c: set>标签

set标签用于在作用域中保存一个变量或修改一个javaBeans变量的属性

	<c:set var="username" value="li" scope="request"/>
   或 <c:set var="username"  scope="request">
        li
    </c:set>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值