2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

JSP技術(shù)

 貪挽懶月 2022-06-20 發(fā)布于廣東

前言:

我是一名Java后臺學(xué)習(xí)者,但是后臺程序員也需要掌握一定的前端技術(shù)。雖然說現(xiàn)在前端基本上是react、vue、angular三分天下,但是作為一名Java程序員,如果說不會jsp,那未免有點說不過去。接下來就了解一下jsp技術(shù)。

一、簡介:

jsp是一種動態(tài)網(wǎng)頁技術(shù),全稱是java server pages,常見的動態(tài)網(wǎng)頁技術(shù)還有asp和php。jsp可以近似的理解為java+html,但是jsp的實質(zhì)就是servlet,也就是java類。我們知道在servlet中可以通過 out.write("<h1>hello</h1>")來寫頁面,但是每次都要 out.write(),太麻煩了,結(jié)構(gòu)也不清晰,難以維護。而jsp就彌補了這些缺點,可以直接在jsp文件中使用html的標簽,運行時通過jsp引擎把jsp轉(zhuǎn)譯成了servlet。

二、hello world:

新建一個web項目,然后new jsp file:

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>

  2. <html>

  3. <head>

  4.    <title>Title</title>

  5. </head>

  6. <body>

  7. <h1>hello jsp</h1>

  8. </body>

  9. </html>

把項目部署到tomcat服務(wù)器上,然后運行。在瀏覽器中訪問:剛說了jsp本質(zhì)就是servlet,運行之后在tomcat的 work\Catalina\localhost\ROOT\org\apache\jsp目錄下就會有index.jsp對應(yīng)的Java文件和編譯后的class文件。

三、jsp語法:

JSP語法分為三種類型:

1、編譯器指令:

include:用來導(dǎo)入文件的,分靜態(tài)導(dǎo)入和動態(tài)導(dǎo)入。                靜態(tài)導(dǎo)入: <%@includefile="include.jsp"%>      比如在index.jsp中用上面的代碼導(dǎo)入include.jsp,這是源碼級的導(dǎo)入,jsp引擎轉(zhuǎn)譯后,只會生成一個.java文件,也就是說include.jsp轉(zhuǎn)譯后的java代碼是在index.java中,并不會生成include.java,也就是兩個類合并成一個類。                動態(tài)導(dǎo)入: <jsp:includepage="include.jsp"/>      動態(tài)導(dǎo)入與靜態(tài)導(dǎo)入不同,jsp引擎轉(zhuǎn)譯后會生成兩個類,在index.jsp中導(dǎo)入include.jsp,就相當于是在index.java中調(diào)用include.java類。                注意:靜態(tài)導(dǎo)入因為轉(zhuǎn)譯后源碼都在同一個java文件中,所以可以在index.jsp中直接調(diào)用include.jsp中定義的內(nèi)容,而動態(tài)導(dǎo)入則不能。

page: <%@page contentType="text/html;charset=UTF-8"language="java"%>在轉(zhuǎn)譯后的servlet中其實就是 response.setContentType("text/html; charset=UTF-8");。當然page指令的屬性還有好多,像import、errorPage等,相信通過這個例子大家就可以體會到page指令在轉(zhuǎn)譯后的servlet中對應(yīng)的是什么。

taglib:用來引入標簽庫

2、腳本語法:

注釋:<%-- ... -->

聲明:<%! ... %>

  1. <%!

  2.    int aa = 4;

  3. %>

這就是聲明,轉(zhuǎn)譯后就是java類的成員變量。所以聲明就是用來定義類的成員變量和成員方法的,用得并不多。

表達式:<% =... %>

  1. <%

  2.    int dd = 3;

  3. %>

  4. <%=dd%>

那么在頁面會直接輸出3,在轉(zhuǎn)譯后的java文件中就是 out.print(dd);。java腳本段:<% ... %>

  1. <%

  2.    int dd = 3;

  3. %>

也就是在<% %>之間就可以寫java代碼。

3、動作語法:

< jsp:forward>:用來做轉(zhuǎn)發(fā)的,看下面的例子: index.jsp:

  1. <jsp:forward page="hello.jsp">

  2.    <jsp:param name="a" value="hello"/>

  3. </jsp:forward>

hello.jsp:

  1. <%

  2.    out.print(request.getParameter("a"));

  3. %>

訪問index.jsp頁面,就會轉(zhuǎn)發(fā)到hello.jsp,在頁面中就會輸出hello。

四、九大內(nèi)置對象:

所謂內(nèi)置對象,就是jsp已經(jīng)給我們提供了的對象。因為jsp轉(zhuǎn)譯后就是servlet,而servlet中是已經(jīng)定義了一些對象的。jsp有9大內(nèi)置對象,接下來就看看這九大內(nèi)置對象。

1、request:就是HttpServletRequest的對象,代表來自客戶端的請求,關(guān)于它的方法用得較多的是getParameter、getParameterNames、getAttribute、setAttribute等方法。

2、response:就是HttpServletResponse的對象,代表客戶端的響應(yīng),也就是可以通過response對象來組織發(fā)送到客戶端的數(shù)據(jù)。

3、out:像客戶端輸出內(nèi)容的對象。

4、session:表示客戶端與服務(wù)器的一次會話,用戶瀏覽某個網(wǎng)站時從進入到關(guān)閉所經(jīng)過的時間session實際上是一個特定的時間概念。在服務(wù)器中一個用戶對應(yīng)一個session。當一個用戶訪問一個服務(wù)器時,可能會在不同頁面之間切換,服務(wù)器應(yīng)當通過某種方法知道這是同一個對象,這就用到了session。

5、application:實現(xiàn)用戶間的數(shù)據(jù)共享,可存放全局變量。開始于服務(wù)器的啟動,終止于服務(wù)器的關(guān)閉。常用方法是setAttribute和getAttribute。

6、pageContext:頁面上下文對象,封裝了當前jsp頁面的運行信息。也就是說,如果需要當前頁面的信息傳到其他頁面,只需要傳pageContext即可,通過pageContext就可以獲得request、session等九個對象的信息。

7、config:提供一些配置信息,一般用不到。

8、page:代表正在運行的由jsp文件產(chǎn)生的類對象,一般不建議使用。

9、exception:代表了jsp文件運行時產(chǎn)生的異常對象,也用得很少。

總結(jié):

本文簡單的介紹了jsp基礎(chǔ)語法以及九大內(nèi)置對象,特別注意如果開發(fā)工具用的是idea,那么需要添加servlet-api和jsp-api兩個jar包,否則可能導(dǎo)致內(nèi)置對象的某些方法無法調(diào)用。jsp的本質(zhì)是servlet,所以學(xué)習(xí)的時候應(yīng)該先學(xué)servlet,再來學(xué)jsp就好理解了。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多