Javaweb學習筆記6 jsp頁面元素

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亂碼的代碼

半下午耗這裏,表示計算機狗傷不起。

相關文章
相關標籤/搜索