021-JSP 看了這篇就可以快速入門

1. 概念
JSP:Java Server Pages: java服務器端頁面

可以理解爲:一個特殊的頁面,其中既可以指定定義html標籤,又可以定義java代碼,用於簡化書寫。

2. 原理
JSP本質上就是一個Servlet   ,JSP經過編譯後本質在tomcat 會轉換成一個Servlet。

3. JSP的腳本:JSP定義Java代碼的方式

  1. <%  代碼 %>:定義的java代碼,在service方法中。service方法中可以定義什麼,該腳本中就可以定義什麼。
  2. <%! 代碼 %>:定義的java代碼,在jsp轉換後的java類的成員位置。
  3. <%= 代碼 %>:定義的java代碼,會輸出到頁面上。輸出語句中可以定義什麼,該腳本中就可以定義什麼。

4.用法

1. 指令
作用:用於配置JSP頁面,導入資源文件
格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
分類:
1. page :用於配置JSP頁面

contentType:等同於response.setContentType()
    1. 設置響應體的mime類型以及字符集
    2. 設置當前jsp頁面的編碼(只能是高級的IDE才能生效,如果使用低級工具,則需要設置pageEncoding屬性設置當前頁面的字符集)

import:導包
                errorPage:當前頁面發生異常後,會自動跳轉到指定的錯誤頁面
                isErrorPage:標識當前也是是否是錯誤頁面。
                            取值:true:是,可以使用內置對象exception
                                       false:否。默認值。不可以使用內置對象exception


2. include    : 頁面包含的。導入頁面的資源文件
                          <%@include file="top.jsp"%>

3. taglib    : 導入資源
                      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
                      prefix:前綴,自定義的


2. 註釋
1. html註釋:和HTML註釋寫法一樣  ,<!-- --> 只能註釋html代碼片段

2. jsp註釋:推薦使用     <%-- --%>可以註釋所有,既可以註釋html,也可以註釋java代碼片段


3. 內置對象
在jsp頁面中不需要創建,可以直接使用的對象 ,一共有9個:
     變量名                    真實類型                                 作用
pageContext                PageContext                       當前頁面共享數據,還可以獲取其他八個內置對象
request                        HttpServletRequest             一次請求訪問的多個資源(轉發)
session                        HttpSession                         一次會話的多個請求間
application                   ServletContext                     所有用戶間共享數據
response                     HttpServletResponse           響應對象
page                           Object                                   當前頁面(Servlet)的對象  this
out                              JspWriter                               輸出對象,數據輸出到頁面上
config                          ServletConfig                        Servlet的配置對象
exception                    Throwable                             異常對象


MVC:開發模式    
1. jsp演變歷史
1. 早期只有servlet,只能使用response輸出標籤數據,非常麻煩
2. 後來又jsp,簡化了Servlet的開發,如果過度使用jsp,在jsp中即寫大量的java代碼,有寫html表,造成難於維護,難於分工協作
3. 再後來,java的web開發,借鑑mvc開發模式,使得程序的設計更加合理性

2. MVC
1. M:Model,模型。JavaBean  ,完成具體的業務操作,如:查詢數據庫,封裝對象

2. V:View,視圖。JSP  ,展示數據

3. C:Controller,控制器。Servlet
            獲取用戶的輸入
            調用模型
            將數據交給視圖進行展示

3.優缺點
優點:
                1. 耦合性低,方便維護,可以利於分工協作
                2. 重用性高

缺點:
                1. 使得項目架構變得複雜,對開發人員要求高


 

jsp   demo

通常jsp在項目中的位置

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=gbk" errorPage="500.jsp"   pageEncoding="GBK" language="java" buffer="16kb" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>

  <%

    List list = new ArrayList();
    int i = 3/0;

  %>
  </body>
</html>

自定義jsp異常頁面

<%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>服務器正忙...</h1>
    <%
        String message = exception.getMessage();
        out.print(message);
    %>
</body>
</html>

    
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章