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>
靜態導入和動態導入:動態導入的靈活性比較高css