jsp基礎

1.JSP是簡化Servlet編寫的一種技術,它將Java代碼和html語句混合在同一個文件中編寫,只對網頁中的要動態產生的內容採用Java代碼來編寫,而對固定不變的靜態內容採用html編寫。

 

2.JSP可以放在除web-info以外的任何目錄

 

3.JSP的本質就是一個Servlet

 

4.JSP頁面的9個隱含對象:

①Request:HttpServletRequest的一個對象

②Response:HttpServletResponse的一個對象(這個隱含對象一般不用)

③pageContext:頁面的上下文,是PageContext的一個對象,可以從該對象中獲取其他8個隱含對象,也可以從中得到當前頁面的其他信息。

④Session:代表瀏覽器和服務器的一次會話

⑤application:代表當前web應用,是ServletContext對象。

⑥Config:ServletConfig對象

⑦out:JspWriter對象,調用out.println()可以直接把字符串打印到瀏覽器上。

⑧page:指向當前Jsp對應的Servlet對象引用,但爲Object類型,只能調用Object類的方法

⑨exception:在聲明瞭page指令的isErrorPage="true"後才能使用

 

5.Jsp表達式:<%=某個值>:能將值直接輸出到瀏覽器界面上

       <%=date%>

6.腳本片段:腳本片段可以相互嵌套

<!--腳本片段  -->

       <%

              StringageSrc=request.getParameter("age");

              Integerage=Integer.parseInt(ageSrc);

              if(age>18){

       %>

              成年

       <%              

              }else{

       %>

              未成年

       <%       

              }

       %>

 

7.jsp屬性和相關的方法

(1)相關方法:objectgetAttribute(String name):獲取指定的屬性

EnumerationgetAttributeNames():獲取所有屬性名字組成的Enumeration對象

 RemoveAttribute(String name):移出指定的屬性

VoidsetAttribute(String name,Object o)設置屬性

(2)jsp的請求域:pageContext(當前頁面),request(同一個請求,在有請求的轉發的情況下可以跨頁面獲取屬性值),session(同一次會話),application(整個web應用) 他們都有上述方法

8.請求的轉發和重定向

(1)本質區別:請求的轉發只發出了一次請求,重定向則發出了兩次請求

①.請求的轉發:地址是初次發出請求的地址。

  請求的重定向:地址欄不再是初次請求的地址,地址爲最終響應的地址

②.請求轉發:在最終的servlet中request對象和煥發的那個request是同一個對象;

  請求重定向:在最終的servlet中request對象和煥發的那個request不同一個對象。

③.請求的轉發:只能轉發到當前web應用的資源

   請求的重定向:能轉發到任何資源

④.對於請求的轉發而言“/”代表當前web應用的根目錄

   對於請求的重定向而言“/”代表當前web站點的根目錄

//請求的轉發

//1.調用HttpServletRequest的getRequestDispatcher()方法獲取RequestDispatcher對象

              //調用getRequestDispatcher()需要傳入地址

              Stringpath="testServlet";

              RequestDispatcherdispatcher=request.getRequestDispatcher("/"+path);

              //調用RequestDispatcher的forward(request,response)進行請求的轉發

              dispatcher.forward(request,response);

//執行請求的重定向,直接調用response.sendRedirect(path)方法

              //path爲要重定向的地址

              Stringpath="testServlet";

              response.sendRedirect(path);

9.jsp指令

(1)page指令常用的屬性:

①import屬性:指定當前jsp頁面對應的servlet需要導入的類

<%@ page import="java.util.Date"%>

②session屬性:取值爲true或false,指定當前頁面的session隱藏變量是否可用,也可以說訪問當前頁面時是否一定要生成HttpSession對象。

③. errorPage 和 isErrorPage:

       > errorPage 指定若當前頁面出現錯誤的實際響應頁面時什麼.其中 / 表示的是當前 WEB 應用的根目錄.

       <%@ pageerrorPage="/error.jsp" %>

 

       > 在響應 error.jsp 時,JSP 引擎使用的請求轉發的方式.

      

       > isErrorPage 指定當前頁面是否爲錯誤處理頁面, 可以說明當前頁面是否可以使用 exception 隱藏變量. 需要注意的是: 若指定

       isErrorPage="true", 並使用 exception 的方法了, 一般不建議能夠直接訪問該頁面.

      

       > 如何使客戶不能直接訪問某一個頁面呢 ? 對於 Tomcat 服務器而言, WEB-INF 下的文件是不能通過在瀏覽器中直接輸入地址的方式

       來訪問的. 但通過請求的轉發是可以的!

      

       > 還可以在 web.xml 文件中配置錯誤頁面:

      

       <error-page>

      <!--指定出錯的代碼:404 沒有指定的資源, 500 內部錯誤. -->

             <error-code>404</error-code>

             <!-- 指定響應頁面的位置 -->

             <location>/WEB-INF/error.jsp</location>

       </error-page>

        

       <error-page>

             <!-- 指定異常的類型 -->

             <exception-type>java.lang.ArithmeticException</exception-type>

             <location>/WEB-INF/error.jsp</location>

       </error-page>

      

④. contentType: 指定當前 JSP 頁面的響應類型. 實際調用的是response.setContentType("text/html; charset=UTF-8");

通常情況下, 對於 JSP 頁面而言其取值均爲text/html; charset=UTF-8. charset 指定返回的頁面的字符編碼是什麼. 通常取值爲 UTF-8

 

⑤. pageEncoding: 指定當前 JSP 頁面的字符編碼. 通常情況下該值和 contentType 中的 charset 一致.

 

⑥. isELIgnored: 指定當前 JSP 頁面是否可以使用 EL 表達式. 通常取值爲false.

      

(2).include 指令: <%@ include file="b.jsp" %>

 

1).include 指令用於通知 JSP 引擎在翻譯當前 JSP 頁面時將其他文件中的內容合併進當前 JSP 頁面轉換成的 Servlet 源文件中,

這種在源文件級別進行引入的方式稱之爲靜態引入, 當前JSP頁面與靜態引入的頁面緊密結合爲一個Servlet。

 

2).file屬性的設置值必須使用相對路徑

 

3).如果以 / 開頭,表示相對於當前WEB應用程序的根目錄(注意不是站點根目錄),否則,表示相對於當前文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章