JavaWeb基礎學習筆記什么是jspJSP的基礎語法JSP頁面的構成元素JSP頁面的生命周期腳本聲明表達式注釋JSP內置對象什么是內置對象九種JSP內置對象常用的內置對象共有5種內置對象out內置對象request內置對象response內置對象session生命周期內置對象application其他4類非常用內置對象內置對象的作用域分為四類JavaBean什么是JavaBeanJavaBean的設計原則JavaBean與Jsp動作標簽什么是Jsp動作標簽使用Jsp動作標簽調用JavaBeanJSP的狀態管理SessionCookieSession和Cookie的對比JSP指令與動作元素include指令include動作include指令include動作的區別jspforward 動作jspparam 動作
JSP全名為Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計,它 是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似asp技術,它是在傳統的網頁HTML(標準通用標記語言的子集)文件(.htm,.html)中插入 Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件,后綴名為(*.jsp)。用JSP開發的Web應用是跨平臺的,既能在linux下運行,也能在其他操作系統上運行。
格式:<% 代碼片段 %> 代碼片段中可寫任意java代碼,可定義變量、方法、表達式。 例:
out.格式:<%! 聲明 %> 代碼片段中可寫任意的java聲明:聲明變量、方法。 例:
<%! int i = 0;%><%! int a, b, c;%><%! Cicle a = new Circle(2,0);%>格式:<%=表達式%> 表達式中的值會被轉化成String,然后在插入HTML中。 例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="utf-8"><title>Test</title></head><body><p> 今天的日期是: <%= (new java.util.Date()).toLocaleString()%></p></body> </html> 今天的日期是: 2017-1-30 12:03:07Jsp中有三種注釋方法: 第一種:
<!-- -->這是HTML的注釋,注釋的內容可以在瀏覽器中查看。
第二種:
<%-- 代碼片段 --%>這是jsp注釋,注釋的內容無法在瀏覽器中查看。
第三種:
<% //String s = new String(); /*for(int i = 0; i < 10; i++){ out.println("這是第"+i+"行"); }*/%>這是java代碼注釋。
jsp內置對象是Web容器創建的一組對象,不能使用new關鍵字,就能直接使用的對象。
<% int [] value = {60, 70, 80}; for(int i: value){ out.println(i);//out是常用的內置對象之一 }%>
Session生命周期的設置方法:
內置對象——page
內置對象——pageContext
內置對象——config
內置對象——exception
Tip: 處理錯誤的頁面中的page指令中必須表明該頁面是錯誤處理頁面,即:page中必須有屬性:isErrorPage=”ture”。出現錯誤的頁面中的page指令中必須有errorPage=”xxx.jsp”表示:當前頁面出現異常之后,交給哪個頁面處理異常。 如下圖:
名稱 | 作用域 |
---|---|
page | 僅在當前頁面有效 |
request | 僅在當前請求有效 |
session | 僅在當前會話有效 |
application | 在所有web程序(服務器)中有效 |
內置對象 | 名稱 | Java 類 | 作用域 |
---|---|---|---|
request | 請求對象 | 類型 javax.servlet.ServletRequest | 作用域 Request |
response | 響應對象 | 類型 javax.servlet.SrvletResponse | 作用域 Page |
pageContext | 頁面上下文對象 | 類型 javax.servlet.jsp.PageContext | 作用域 Page |
session | 會話對象 | 類型 javax.servlet.http.HttpSession | 作用域 Session |
application | 應用程序對象 | 類型 javax.servlet.ServletContext | 作用域 Application |
out | 輸出對象 | 類型 javax.servlet.jsp.JspWriter | 作用域 Page |
config | 配置對象 | 類型 javax.servlet.ServletConfig | 作用域 Page |
page | 頁面對象 | 類型 javax.lang.Object | 作用域 Page |
exception | 例外對象 | 類型 javax.lang.Throwable | 作用域 page |
- 在作用范圍內,如果之后使用的usebean的id已在作用范圍內存在,則表示直接使用之前建立的對象。 - 除了使用jsp:useBean再次調用范圍內已存在的javabean,還可以使用內置對象如application.getAttribute(“Javabean id”),獲取javabean對象(不過需要類型轉換)。 - 點擊一次超鏈接相當于一次重定向,request會新建,上一個request范圍的對象就無法調用了。 - setProperty
- 第一個:property = “*”:與提交過來的表單相對應,對應的input name寫入數據到javabean,例如:input name=“username”,則javabean中的私有屬性username就會等于input中的數據。(全部匹配)。 - 第二個:property = “javabean屬性”:與表單中的部分屬性匹配。 - 第三個:給javabean屬性value的值。 - 第四個:param中的屬性名除了是表單還可以是URL傳參。 - getProperty
保存用戶狀態的兩大機制: 1. Session:將用戶數據保存在服務器。 2. Cookie:將用戶數據保存在本地Cookie,用于不重要或非隱私的數據。 - 兩者都是時間限制,即有效期。
服務器為不同的客戶端在內存中創建了用于保存數據的Session對象,并將用于標識該對象的唯一Id發回給與該對象對應的客戶端。當瀏覽器再次發送請求時,SessionId也會被發送過來,服務器憑借這個唯一Id找到與之對應的Session對象。在服務器端維護的這些用于保存與不同客戶端交互時的數據的對象叫做Session。
Cookie:中文名稱為“小甜點”,是web服務器保存在客戶端的一系列文本信息。 作用: 1. 對特定對象的追蹤; 2. 保存用戶網頁瀏覽記錄與習慣; 3. 簡化登錄; 安全風險:容易泄露用戶信息;
典型應用一:判斷注冊用戶是否已登錄網站。 典型應用二:“購物車”的處理。
jsp中創建與使用Cookie: 1. 創建Cookie對象: Cookie cookie=new Cookie(String key,Object value); 2. 寫入Cookie: response.addCookie(cookie); 3. 讀取Cookie: Cookie[] cookies=request.getCookies(); Note:在cookie中保存中文字符串 1. 使用request.setCharacterEncoding(“utf-8”); 2. 需要使用 URLencoder 工具類中的encode(String, 編碼名)方法編碼。 3. 使用URLencoder類中的decode(String, 編碼名)方法解碼。 4.
語法: <%@ include file = "URL" %>
語法:
<jsp:include page="URL" flush ="true| false" />語法:
<jsp:forward page = "URL"/>等同于:request.getRequestDispatcher("/URL").forward(request,response);Tip:常常與<jsp:forward>
一起使用,作為其子標簽。
新聞熱點
疑難解答