1. 程式人生 > >07-【jsp基本瞭解】

07-【jsp基本瞭解】

jsp 動態網頁技術:伺服器和使用者互動的動態網頁技術
jsp【java server page 】jsp ≈ html +servlet
jsp 檔案是以 *.jsp結尾:jsp檔案 靠伺服器執行,jsp 是伺服器端指令碼語言
jsp 解決的問題:
servlet將資料傳到html ,html 無法展示java程式碼中儲存的資料
servlet中 Printwriter.print("html程式碼"); 展示頁面很麻煩,我們使用轉發或重定向 html
jsp實現 伺服器端java程式碼和客戶端頁面程式碼html程式碼的資料互動問題
jsp的工作原理和生命週期:jsp ---->servlet


jsp 利用 tomcat工具類將 jsp 編譯成 servlet ,servlet中 service方法中 ,writer.println(會將jsp的html程式碼輸出到前端瀏覽器)
生命週期:
1 載入jsp 的web專案
2 當我們訪問jsp檔案的時候,jsp引擎會將index.jsp檔案 轉換成 java類
index_jsp.java servlet檔案 ----->編譯 成一個 class檔案 
3 jsp初始化【jspInit()】
4 接收請求,將 帶有資料的html響應到頁面 
jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)

out.write("html程式碼 +展示的資料 ");
5 jsp 轉換成servlet銷燬
jspDestroy()
jsp 檔案(jsp指令碼語言基本結構)java程式碼+html+js+css
jsp頁面構成簡單介紹:
<%@page language="java" import="java.util*" isELIgnored="false"  errorPage="error.jsp" pageEncoding="UTF-8"%>
<!-- page指令:是對jsp的描述,約束 ,編碼設定 
  pageEncoding:編碼集設定
  language:使用的語言是java語言

  import:需要匯入 java包或類
  extends:繼承某個java 
  errorPage:如果當前jsp 發生執行邏輯錯誤會跳轉到 error.jsp頁面
  isELIgnored:屬性 false 可以使用EL表示式;true 預設忽略
  jsp對應的servlet 3.0 3.1 版本 預設是忽略EL表示式
  taglib 指令:引入外部的標籤庫
  java在 < %程式碼塊中 % >
-->
jsp的基本語法:
jsp的結構 :java程式碼+html 程式碼 js程式碼 css程式碼
jsp 基本程式碼塊
<% @ page %>
<% 普通程式碼塊 是java程式碼 %>
jsp的宣告程式碼塊
<%! 變數的宣告 %>
<%! int num ; %> <%! int num=0 ; %>
<% num =1; %>
jsp的輸出表達式
將資料輸出到頁面上,java程式碼中的資料 (變數 輸出到頁面上)
<%= 輸出的內容 %>
jsp 的註釋 【<%-- --%>註釋不能巢狀】
jsp的註釋和java程式碼的註釋 不會顯示在瀏覽器原始碼中,不會響應到客戶端,html js css 的註釋會顯示在瀏覽器原始碼中, 會響應到客戶端
注意:普通的程式碼塊 按照java程式碼規範 需要加;輸出表達式 不能加。
jsp的指令:(熟悉)
page 對jsp檔案的描述
taglib 引入外部的標籤庫
include 靜態匯入:指令將 兩個jsp檔案進行合併 ,會變成一個servlet ,所以如果變數相同會報異常
this is parent .jsp!!!!!!!!!!!!!!!!!!<hr>
<!-- jsp檔案合併靜態匯入 -->
<%@include file="child1.jsp" %>
jsp的動作元素:include 動態匯入
會將jsp頁面的展示結果合併變成一個頁面,兩個jsp檔案會變成兩個servlet
<!-- 動態匯入 -->
<jsp:include page="child1.jsp"></jsp:include>
靜態匯入和動態匯入:動態匯入的靈活性比較高