1、什麼是Web應用程序
Web應用程序是一種通過Web訪問的應用程序。Web應用程序一個最大優點就是用戶很容易訪問。用戶只需要有瀏覽器即可,不需要再安裝其他軟件。Web開發是目前軟件開發領域的三大方向之一。(桌面應用程序,Web應用程序,嵌入式應用程序)
2、靜態頁面與動態頁面
靜態網頁
表現形式:網頁內容固定,不會更新。
所需技術:HTML,CSS
動態網頁
表現形式:網頁中的內容通過程序動態的顯示,自動更新,能與用戶進行交互(比如登錄輸入正確用戶名和密碼時,系統提示登錄成功)
所需技術:HTML,CSS,數據庫技術,至少一門高級語言(Java,C#,Php),Javascript,XML等。主流的動態網頁腳本技術(Jsp/Asp.net/Php)
3、修改Tomcat默認端口號
tomcat安裝目錄–>conf–>server.xml
<Connector
port="8888"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"
/>
4、Jsp簡介
JSP全名爲Java Server Pages,其根本是一個簡化的Servlet設計,他實現了在Java當中使用HTML標籤。Jsp是一種動態網頁技術標準也是JAVAEE的標準。JSP與Servlet一樣,是在服務端執行的。
5、jsp運行原理
第一次訪問jsp或修改後訪問jsp
A) 將jsp翻譯成java文件
B) 將java文件編譯成class文件
C) 通過反射創建對象
D) 執行init方法
E) 執行Service方法
正常訪問jsp(非第一次或沒有修改)
E ) 只執行Service方法
6、jsp語法
JSP模版元素
Html標籤
JSP表達式
<%=表達式 %> <==> out.print(表達式); //<%=表達式; %> 加分號錯誤
注:內容會輸出到瀏覽器
JSP腳本片斷
<% java代碼 %> 不能有輸出語句(服務器沒有控制檯)
翻譯成java代碼後,在_JspService()中
腳本片段中不能寫方法
JSP聲明
<%! %>
翻譯成java代碼後,在_JspService()外
聲明的變量是成員變量,聲明的方法是成員方法。
JSP註釋
<%-- --%>不能使用html註釋<!-- -->
JSP指令
<%@ 指令 屬性名="值" %>
#include指令 靜態包含
作用:include指令用於引入其它JSP頁面
語法:<%@ include file="relativeURL"%2
#page指令
作用:page指令用於定義JSP頁面的各種屬性
language="java"//告訴服務器以哪種語言翻譯文件
import="{package.class | package.*}, ..."
//導入程序包 多個包用“,”隔開。
session="true | false" //是否支持內置對象session
buffer="none | 8kb | sizekb"//緩存大小,默認8KB
autoFlush="true | false"
isThreadSafe="true | false"
info="text"
errorPage="relative_url"//指定一個錯誤頁面
isErrorPage="true | false"
//指定當前頁面爲錯誤頁面 能使用exception
contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1"
pageEncoding="characterSet | ISO-8859-1"
isELIgnored="true | false" //是否支持EL表達式
7、JSP內置對象
名稱 數據類型
request HttpServletRequest
response HttpServletResponse
session HttpSession
application ServletContext
config ServletConfig
exception(特殊情況下使用 page指令中有 isErrorPage="true")
page this(本JSP頁面)
out JspWriter(帶緩衝的PrintWriter)
pageContext(使普通Java類可訪問WEB資源,自定義標籤常用)
#out內置對象的特點
將內容存在緩存數組中
寫出到文件的條件:
1). 調用刷新方法時
2). 關閉流對象時
3). 內存滿了
4). 程序執行完(_JspService())
#pageContext
作用1. 用來獲取其他內置對象
作用2. 域對象:作用域爲當前jsp頁面
設置方法:
//默認域對象方法(pageContext)
pageContext.setAttribute("message", "pageContext message");
//指定域對象方法
pageContext.setAttribute("message", "request message", pageContext.REQUEST_SCOPE);
獲取方法:
//默認域對象方法(pageContext)
pageContext.getAttribute("message")
//指定域對象方法
pageContext.getAttribute("message",pageContext.REQUEST_SCOPE)
//搜索方法
pageContext.findAttribute("message")
優先級
pageContext>request>session>application
四大域對象:
pageContext:作用於當前jsp頁面
Request:相同的請求中有效(轉發中使用)
Session:同一會話中有效(保存用戶私有信息)
Application:同一web應用中有效(全局)
8、EL表達式
語法:
${ 域對象中保存的key }
#獲取數據
1). 獲取非對象
pageContext.setAttribute("name", "tom");
${name }
${name }<==>pageContext.findAttribute("name")
2). 獲取對象
Person p = new Person("tom",21);
pageContext.setAttribute("person", p);
<!-- person.name<==> p.getName() -->
<!-- 獲取域對象中的對象的屬性值 -->
<%-- name=${person.name1 },age=${person.age } --%>
9、後續學習
還需要將EL表達式中的獲取集合中對象和 獲取map集合中的對象學習完成,然後完成教學視頻中的小demo。