天天看點

jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)

1.什麼是jsp,它有什麼用?

jsp的全稱是java server pages。是Java的伺服器頁面。

jsp的主要作用是代替Servlet程式回傳html頁面的資料。

因為Servlet程式回傳html頁面資料是一件非常繁瑣的事情、開發成本和維護成本都極高。

2.jsp如何通路?

jsp頁面和html頁面一樣,都是存放在web目錄下,通路也跟通路html頁面一樣。

比如:

在web目錄下有如下的檔案:

web目錄

a.html頁面 通路位址是======>>>>>> http://ip:port/工程路徑/a.html

b.jsp頁面 通路位址是======>>>>>> http://ip:port/工程路徑/b.jsp

3.jsp的本質是什麼?

jsp頁面的本質上是一個Servlet程式。

原因:

當我們第一次通路jsp頁面時,Tomcat伺服器會幫我們把jsp頁面翻譯成為一個java源檔案,并且對它編譯成為.class位元組碼程式。我們打開java源檔案不難發現其裡面的内容是:

jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)

我們跟蹤源代碼發現,HttpJspBase類。它直接繼承了HttpServlet類。也就是說,jsp翻譯出來的java類,間接繼承了HttpServlet類,也就是說,翻譯出來是一個Servlet程式。

jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)

總結:通過翻譯的java源代碼我們就可以得到結果:jsp就是Servlet程式。

大家也可以去觀察翻譯出來的Servlet程式的源代碼,不難發現,其底層實作,也是通過輸出流,把html頁面資料回傳給用戶端。

4. jsp的三種文法

a)jsp頭部的page指令

jsp的page指令可以修改jsp頁面中的一些在重要的屬性或者行為。

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)

b)jsp中的常用腳本

i. 聲明腳本(極少使用)

聲明腳本的格式是: <%! 聲明java代碼%>

作用:

可以給jsp翻譯出來的java類定義屬性和方法甚至是靜态代碼塊、内部類等。

1.聲明類屬性
2.聲明static靜态代碼塊
3.聲明類方法
4.聲明内部類      
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/7/18
  Time: 8:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%--練習:
    1.聲明類屬性
  2.聲明static靜态代碼塊
  3.聲明類方法
  4.聲明内部類
--%>
<%--1.聲明類屬性--%>
    <%!
        private Integer id;
        private String name;
        private static Map<String,Object> map;
    %>
<%--2.聲明static靜态代碼塊--%>
    <%!
        static{
        map=new HashMap<String,Object>();
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
        }
    %>
<%--3.聲明類方法--%>
<%!
    public int abc(){
        return 12;
    }
%>
<%--4.聲明内部類--%>
<%!
    public static class A{
        private Integer id=12;
        private String abc="abc";
    }

%>
</body>

</html>      

ii. 表達式腳本(常用)

表達式腳本的格式是:<%=表達式%>

表達式腳本的作用是:在jsp頁面上輸出資料。

表達式腳本的特點:

1.所有的表達式腳本都會被翻譯到_jspService方法中
  2.表達式腳本都會被翻譯成為out.print()輸出到頁面上
  3.由于表達式腳本翻譯的内容都在_jspService()方法中,是以_jspService()方法中的對象都可以直接使用。
  4.表達式腳本中的表達式不能以分号結束。      

練習:

1.輸出整型
  2.輸出浮點型
  3.輸出字元串
  4.輸出對象      
<%=12 %><br>
<%=12.12%><br>
<%="我是字元串"%><br>
<%=map%><br>
<%=request.getParameter("username")%>      

浏覽器結果:

jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)

iii.代碼腳本

代碼腳本的格式:

<%

java語句

%>

代碼腳本的作用是:可以在jsp頁面中,編寫我們自己需要的功能(寫的是java語句)。

代碼腳本的特點是:
      1.代碼腳本翻譯之後都在_jspService方法中
      2.代碼腳本由于翻譯到_jspService()方法中,是以在_jspService()方法中的現有對象都可以直接使用。
      3.還可以由多個代碼腳本塊組合完成一個完整的java語句。      
jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)
jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)
jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)
jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)

6.jsp中的out輸出和response.getWriter輸出的差別

response中+表示響應,我們經常用于設定傳回給用戶端的内容(輸出)

out也是給使用者做輸出使用的。

jsp 的介紹(什麼是jsp、作用、文法、page指令、靜态包含)

7.jsp常用标簽之靜态包含