1. jsp頁面元素html
a。腳本java
1. <% %> 定義局部變量數組
2.<%! %>定義全局變量以及方法瀏覽器
3. <%= 輸出表達式 %>輸出表達式(無分號,由於不是輸出語句,而是表達式)緩存
4.<%@ %>指令有不少種,tomcat
-page指令 位置 寫在網頁開始 屬性有 language jsp import pageEncoding contentType安全
- include指令 taglib指令服務器
5. <!-- -->html 在瀏覽器源代碼中可見cookie
// /* */ javasession
<%- -%>
2 jsp內置對象
該對象不用new便可使用。有九大內置對象
2.1 out 向客戶端輸出內容
2.2 request 請求對象 存儲 客戶端向服務端發送的請求信息
常見方法 2.2.1 String getParameter(String name) 根據請求的字段名返回字段值
2.2.2 getParameterValues 返回數組,經常使用chatbox
2.2.3 void setCharacterEncoding(" utf-8") 設置請求編碼。對方解析時須要知道你是什麼編碼。若是不設置則跟着tomcat默認。在tomcat7 以及7之前默認ISO-8859-1,以後默認utf-8
2.2.4 getRequestDispatcher("a.jsp").forward(); 請求轉發
2.2.5 getServerContext() :獲取項目的ServletContext對象
2.3response 響應對象,封裝響應信息
void addCooike(Cookie cookie )服務端向客戶端增長一個cookie對象
void sendRedirect(String location ) throws IOException :頁面跳轉的一種方式
void setContextType(String type):設置服務端響應編碼(設置服務端content type類型)
//response.sendRedirect("succees.jsp");重定向會致使數據丟失
//重定向是response提供的
//轉發是request提供的,數據保留,而且地址欄沒有改變,仍然保留轉發時的頁面
request.getRequestDispatcher("succees.jsp").forward(request, response);
請求轉發和重定向的區別 請求轉發 重定向
地址欄是否改變 不改變(check.jsp) 改變(succees.jsp)
是否保留第一次請求時的數據 保留(內部轉移數據安全) 不保留
請求的次數 一次(地址欄都不變) 兩次(不保留必然兩次)
2.4 session
session 存放於客戶端(是內置對象,使用不用new),
而cookie存在於客戶端(不是內置對象,使用須要new)做用 提升訪問效率,可是安全性較差cookie 就是key:value。cookie是是由javax.servlet.http.cookie 類產生的
構造方法 publlic Cookie(String key,String value)
String getName():獲取name
String getValue()獲取value
coid setMaxAge(int expiry) 設置最大有效期,單位是秒
cookie 是由服務端產生的,由服務端給予客戶端。
至關於本地緩存的做用,服務端發送給客戶端
添加cookie response.addCookie(Cookie cookie )
轉發cookie(轉發,重定向)
獲取cookie request.getCookies()
增長cookie是response,獲取是request
Cookie cookie = new Cookie()
壓着ctrl鍵進去,發現該類是public class javax.servlet.http.Cookie implements java.lang.Cloneable, java.io.Serializable
a. 服務端增長cookie :response對象,客戶端獲取對象:request對象
b.不能直接獲取某一個單獨對象,只能一次性將全部的cookie對象拿到,
經過F12能夠發現,除了本身設置的Cookie對象外,還有一個名爲JSESSION的Cookie
2.5pageContext
2.6application
2.7config
2.8page
2.9expection
用out.println不會新起行,新行要用<br/>
超級痛苦的是和教學上打的同樣,但個人代碼就沒法運行成功。
解決辦法:清除服務器緩存
重啓服務器(誰給我說勞資的jsp修改也須要重啓!)
若是先打<% %>而後在裏面寫了一堆(包含了方法),最後加了「!」變成<%! %>也會報錯,由於這個!並無加上去,請在開始建立時直接加。
檢查URL,看路徑是否正確
默認,method="get ", 地址欄,超連接都是 get方式 get方式能夠在地址欄看到參數(不安全)。地址欄能傳送的信息大小有限,有4--5kb,圖片音頻視頻由於太大而報錯。
method="post" .該方式在地址欄不顯示。(推薦使用)
出現亂碼時先分清是get 方法仍是post方法
若是是get方式有兩種方法
1.0
String name = request.getParameter("uname"); 這種方法即便設置了UTF-8也讀取的是亂碼,由於Tomcat是7.0,默認是ISO類的編碼,因此沒法識別。
int age = Integer.parseInt(request.getParameter("uage")); 能夠強制將返回show.jsp頁面的變量轉換成utf-8格式
缺點是很麻煩,每一個變量都要修改
2.0
第二個方法:修改serve.xml
在修改端口號的位置新增長,URIEncoding= "UTF-8"
若是是post方式
1.0
request.setCharacterEncoding("utf-8");這一行是解決post亂碼的代碼
半下午耗這裏,表示計算機狗傷不起。