jsp与El,jstl知识点总结归纳

jsp与El,jstl知识点总结归纳
jsp部分
一.jsp的三大指令
page ,include,taglib
1.jsp中的page指令
<% page %>—设置jsp
例如:
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
<%@ page import=”java.util.List” %>
<%@ page import=”java.util.ArrayList”%>
<%@ page import=”java.util.Map”%>
<%@ page import=”java.util.HashMap”%>
<%@ page import=”domain.User” %>
关键字:
language 语言 Java
contentType 设置浏览器打开jsp时候的字符集的编码
pageEncoding 设置文件保存到硬盘,以及生成Servlet后,Servlet保存到硬盘上的编码
import 一般引入类对象,可以出现多次
autoFlush :设置jsp的缓存自动刷新,true自动刷出
buffer :设置JSP的缓冲区的大小,默认8kb
session :设置在JSP中是否可以直接使用session对象.默认值是true.
isELIgnored :设置在JSP中是否忽略EL表达式.默认值是false不忽略.
errorPage :设置错误友好页面的提示.
isErrorPage :通过这个设置显示JSP的错误信息.

  1. jsp的include指令,指示JSP包含其他的页面
    <%@ include file=”logo.jsp”%>
    <%@ include file =”menu.jsp” %>

    BODY部分


    <%@ include file=”footer.jsp” %>
  2. jsp中的taglib 指令 指示jsp引入jsp标签库
    <%@ taglib rui=”标签的uri路径” prefix=”标签的别名”%>
    例如:

    <%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
    引入jstl库

    二:内置对象和四个域范围
    1.四个域
    PageScope : 当前页面中, pageContext PageContext
    RequestScope: 一次请求范围 request
    SessionScope: 一次回话范围 session HttpSession
    ApplicationScope 应用范围 application ServaletContext
    2.内置对象
    jsp的内置对象:在jsp中可以直接使用的对象
    JSP中9大内置对象
    request HttpServletRequest getParameter(),setAttribute(String name,Object value);
    response HttpServletResponse setHeader(String name,String value);getOutputStream();getWriter();
    session HttpSession setAttribute();getAttribute();
    application ServletContext setAttribute();getAttribute();
    page Object toString();wait();
    pageContext PageContext setAttribute();getAttribute();
    config ServletConfig getServletName();getServletContext();
    out JspWriter write(),print();
    exception Throwable getMessage(),getCause(); 设置isErrorPage=”true”

    三:EL&&jstl

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.util.List" %>
    <%@ page import="java.util.ArrayList"%>
    <%@ page import="java.util.Map"%>
    <%@ page import="java.util.HashMap"%>
    <%@ page import="domain.User" %>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
   <h1> El获取数据的功能</h1>
    <%
     pageContext.setAttribute("name", "马云");
      request.setAttribute("name", "马化腾");
      session.setAttribute("name", "李彦宏");
      application.setAttribute("name", "雷军");
    %>
  <%--    ${pageContext.setAttribute("name", "马云")} --%>
     <!-- el获取 -->
     ${pageScope.name}
     ${requestScope.name}
     ${sessionScope.name}
     ${applicationScope.name}
      <br/>
     <!--${name}类似于findAll(name) 先从page,没有找到后去request,session,application
         但是需要注意的是: 若第一个域(page)里面有name 则不会进行下一个域 的查询
       -->
     ${name} 
     <br/>
     <span> ---------------------------------</span>
     <h1>数组的获取</h1>
      <% 
       String[] arrs={"马云","马化腾","雷军","李彦宏"};
               // 左边的 arrs 其标记作用,右边的是数组
        pageContext.setAttribute("arrs", arrs);
      %>
       ${ arrs[0]}
       ${ arrs[1]}
       ${ arrs[2]}
       ${ arrs[3]}
        <br/>
        <c:forEach var="i" items="${arrs}"> 
         ${i}
        </c:forEach>
        <h1>获取集合中的数据</h1>
        <% 
          List<String> list = new ArrayList<>();
          list.add("马云");
          list.add("马化腾");
          list.add("雷军");
          list.add("李彦宏");
         /*  pageContext.setAttribute("list", list); */
           request.setAttribute("tsil", list);
        %>
           <br/>
           <!-- list,tsil 是
           setAttribute(String name,Object value)
            name而已
            -->
         ${tsil[0]} <!-- 马云 -->
         ${list[1]} 
         ${list[2]}
         ${list[3]}
          <br/>
  <!-- 利用jstl标签库来进行遍历 --> 
          <!-- 同样是需要注意 items="${tsil}"  获取的也是list集合存储的名称 -->
    <c:forEach var="a" items="${tsil}">
      ${a}
    </c:forEach>            

  <h1> Map集合</h1>
<%
    Map<String,String> map = new HashMap<String,String>();
    map.put("aaa","马云");
    map.put("bbb","马化腾");
    map.put("ccc","李彦宏");
    map.put("ddd.eee","雷军");
    pageContext.setAttribute("pam", map);
%>  
   <!--El表达式获取 -->
  ${pam.aaa}
  ${pam.bbb}
  ${pam.ccc}
  ${pam["ddd.eee"]}
    <br/>
   <!--jstl 遍历  -->
     <c:forEach var="entry" items="${pam}">
        ${entry.key}--${entry.value}
         <br/>
      </c:forEach> 
    <!-- 
     list集合存贮跟数组是一样的, 直接的arr[0],list[0]
          但是 map集合的取值就不一样了, map.aaa, map.ccc ,或map["ddd.eee"]
     -->
      <h1> 获取对象的集合</h1>
      <%
    User user1 = new User(1,"马云","123");
    User user2 = new User(2,"马化腾","123");
    User user3 = new User(3,"李彦宏","321");
    User user4 = new User(4,"雷军","456");

    List<User> userList = new ArrayList<User>();
    userList.add(user1);
    userList.add(user2);
    userList.add(user3);
    userList.add(user4);

    pageContext.setAttribute("userList", userList);
%>
   <!-- EL表达式获取 -->
  ${ userList[0].id } - ${ userList[0].username } - ${ userList[0].password }<br/>
  ${ userList[1].id } - ${ userList[1].username } - ${ userList[1].password }<br/>
  ${ userList[2].id } - ${ userList[2].username } - ${ userlist[2].password }<br/>
  ${ userList[3].id } - ${ userList[3].username } - ${ userlist[3].password }<br/>
   <!--jstl遍历  -->
   <c:forEach var="user" items="${userList}"> 
   ${ user.id } -${ user.username } - ${ user.password }</br>
   </c:forEach>

</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值