zoukankan      html  css  js  c++  java
  • 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

      3. <%@ 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>
        

          

  • 相关阅读:
    在同步块中修改指向同步对象的引用
    算法学习记录3 插入排序
    算法学习记录2 归并排序
    算法学习记录1 快速排序
    CE学习记录1
    jenkins 学习记录2
    jenkins 学习记录1
    扩展 jquery miniui 组件实现自动查询数据
    java对象与XML相互转化
    分享公司缓存的用法
  • 原文地址:https://www.cnblogs.com/pwhit/p/6115911.html
Copyright © 2011-2022 走看看