日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JSP技術(shù)

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

前言:

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

一、簡(jiǎn)介:

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

二、hello world:

新建一個(gè)web項(xiàng)目,然后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>

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

三、jsp語法:

JSP語法分為三種類型:

1、編譯器指令:

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

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

taglib:用來引入標(biāo)簽庫

2、腳本語法:

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

聲明:<%! ... %>

  1. <%!

  2.    int aa = 4;

  3. %>

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

表達(dá)式:<% =... %>

  1. <%

  2.    int dd = 3;

  3. %>

  4. <%=dd%>

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

  1. <%

  2.    int dd = 3;

  3. %>

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

3、動(dòng)作語法:

< 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頁面,就會(huì)轉(zhuǎn)發(fā)到hello.jsp,在頁面中就會(huì)輸出hello。

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

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

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

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

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

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

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

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

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

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

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

總結(jié):

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多