jsp技術被淘汰了?那還要不要學它?

2020-12-20 劉小愛

今天是劉小愛自學Java的第92天。

感謝你的觀看,謝謝你。

話不多說,開始今天的學習:

首先聲明:jsp這個技術基本被淘汰了,不太重要,用到它的可能性很低,但是有些企業還是會用到的。

花一天時間對其做一個簡單的了解。

一、jsp概述

1jsp出現的原因

jsp這個技術的出現是為了解決一個什麼問題?

先看如下情況:

在Java代碼中,伺服器要響應一個HTML頁面給瀏覽器,需要將標籤拼接在代碼中。

這樣一頓操作下來就會顯得十分地繁瑣,操作麻煩不說,閱讀性還差。

那有沒有什麼方法解決這個問題呢?

jsp技術就應運而生了,在jsp文件中,既能寫Java代碼,又能寫HTML代碼,特別地厲害。

2jsp定義

JSP全名為Java Server Pages,翻譯為java伺服器頁面,其本質是一個簡化的Servlet。

它是由Sun公司倡導、許多公司參與一起建立的一種動態網頁技術標準。

大白話就是一個既能書寫Java代碼又能書寫HTML代碼的文件。

3jsp為什麼被淘汰了?

jsp被淘汰本身並不是因為技術落後的原因,它之所以被淘汰是因為行業趨勢。

現在強調前後端分離,前端寫前端的代碼,後端寫後端的代碼,沒有必要將前端和後端代碼融合在一起,所以jsp使用就受限了。

當然也並不是完全就沒人用了,只是用的少了。

二、jsp語法

1在jsp中書寫代碼

①注釋格式

在jsp中的注釋格式為:<%--注釋--%>

②Java代碼編寫

格式為:<%Java代碼%>,在該格式裡面就能編寫Java代碼。

這樣編寫以後,在瀏覽器上輸入對應的路徑,就能發現能用Java語法在瀏覽器上輸入內容了。

以上也就完成了在jsp文件中寫Java代碼了。

2jsp執行流程

jsp文件為何可以寫Java代碼,其底層是怎麼樣的一個執行流程呢?畫圖講解:

①瀏覽器訪問demo01.jsp

根據對應的路徑來訪問jsp文件,該jsp文件會被轉化成兩個文件:

demo01_jsp.java和demo01_jsp.class。

這兩個文件對於Java開發者來說簡直不要太熟悉了:一個是Java源碼文件,一個是其對應的字節碼文件。

也就是說jsp文件其實底層被轉換成了Java文件,再執行的Java代碼。

②關於轉換後的Java源碼

打開對應的Java源碼文件,當然上圖中我只截圖了一部分做一個說明,其實源碼遠不止這麼點。

從截圖中的部分代碼可以看出:

<%%>中的代碼被直接解析成java代碼。html部分都被out.write("")方法以字符串的形式拼接,然後響應給瀏覽器。繞來繞去其實還是拼接,和最先開始的方法一樣,只不過說jsp中拼接被封裝了,不用我們寫。

3三種書寫Java代碼的方式

①腳本聲明

格式:<%! 書寫Java代碼 %>

中間有一個感嘆號,這裡面也是可以編寫Java代碼的。

查看其對應的Java源碼文件,會發現這塊代碼對應於源碼中的成員變量和成員方法

②腳本片段

格式:<%書寫Java代碼 %>

它比①就少了一個感嘆號,其對應的是源碼中_jspService方法的Java代碼。

在Java中,方法裡面是不能定義一個新的方法的,所以方法定義只能用①的格式來編寫。

③腳本表達式

格式:<%="表達式" %>

其對應的Java代碼就是out.print()。

三、EL表達式

EL表達式就是專門來取代上面三種格式中③腳本表達式的。

格式為:${str}。其就相當於<%=str%>,其中str為一個變量。

1四大域對象

根據其範圍從小到大排列:

page域:只能在當前頁面有效。request域:只在一次請求或請求域中有效。session域:一次會話(一次或多次請求和響應)過程中有效。application域:整個項目過程中都有效。2從四大域對象中取值

①設定域對象的值

使用的方法都是setAttribute()方法,參數以鍵值對的方式存值,

②普通方式取值

以page域對象為例,其格式為:

${pageScope.pageKey}

pageKey為page域對象對應的key,使用這種方式就能取出域對象中的值了。

③簡寫方式取值

以page域對象為例,格式為:${pageKey}

將pageScope簡化了,直接就是一個key。

但是這樣就會有一個問題,key可能會重複。

畢竟key是人為命名的,page域對象中的key和request域對象中的key可能一樣。

如果key重複了,會按照從小到大逐級查找。

3從Cookie中取值

①保存Cookie到瀏覽器

在LoginServlet中保存兩個Cookie到瀏覽器:

usernameCookie:名為username,值為請求中的數據,即登錄界面輸入的用戶名。passwordCookie:名為password,值為請求中的數據,也就是登錄界面輸入的密碼。②取出Cookie對應的值

以usernameCookie為例,這個Cookie中的key為usename,根據key來取值。

格式為:${cookie.username.value}

這樣做有什麼好處?做一個測試:

在第一次登錄輸入用戶名和密碼後,其數據會被保存在cookie中,從而被頁面讀取到。

再次刷新時,用戶名和密碼會自動出現,就不用再次輸入用戶名和密碼了。

最後

謝謝你的觀看。

如果可以的話,麻煩幫忙點個讚,謝謝你

相關焦點

  • 真的嗎,Java 的 JSP 已經被淘汰了?
    你要是這輩子就吃java這碗飯,就不要去研究什麼css,js等等。把你的精力專注在java,jvm原理,spring原理,mysql鎖,事務,多線程,大並發,分布式架構,微服務,以及相關的項目管理等等,這樣你的核心競爭力才會越來越高,正所謂你往生活中投入什麼,生活就會反饋給你什麼。
  • 曾經風光無限的jsp技術,為什麼現在很少有人用了呢?
    jsp技術作為曾經一度火爆的技術,在最近幾年確實使用率越來越低了,這篇文章帶你一塊探究一下jsp的從生到死。一、jsp技術的誕生在很久很久以前,那時候我們的開發都是通過servlet來完成的,這個servlet是什麼呢?
  • 都說了多少遍,不要再學 JSP 了!
    「前段時間,我和一位群友因為要不要學習 JSP 在群裡爭論了一番。他的想法是一定要學,並且還羅列了一個讓我哭笑不得的理由,那就是「學習 JSP 可以加深對Servlet原理的理解!」。當時,我整個人都蒙了,就很氣憤啊!這位群友也是工作一年多的人了,不知道為啥會說出這樣的話。本來準備自己寫一篇文章來回懟,後面看了陳龍大佬也寫了一篇類似的文章,看完之後感覺非常不錯。
  • JSP !
    「前段時間,我和一位群友因為要不要學習 JSP 在群裡爭論了一番。他的想法是一定要學,並且還羅列了一個讓我哭笑不得的理由,那就是「學習 JSP 可以加深對Servlet原理的理解!」。當時,我整個人都蒙了,就很氣憤啊!這位群友也是工作一年多的人了,不知道為啥會說出這樣的話。本來準備自己寫一篇文章來回懟,後面看了陳龍大佬也寫了一篇類似的文章,看完之後感覺非常不錯。
  • 再見,JSP!!!
    當然,我的回答都是建議淘汰JSP,新人小白一定不要再學JSP了。我現在集中把這些技術因素歸納一下。一個現代主流Java Web應用,不管前端、後端、還是微服務架構,都在淘汰JSP。其中,我認為Java伺服器端主流技術還是Spring(Spring Boot + Spring MVC + Spring Cloud)。
  • 同時,支持JSP技術...
    同時,支持JSP技術的伺服器有Tomcat、Resin、JBoss、WebLogic等。資料庫可以選擇SQL Server、MySql等。,就會在MyEclipse Web Browser中顯示index.jsp的頁面新建JSP文件:點擊WebRoot,右鍵,可以新建jsp頁面。
  • 再見 JSP !
    當然,我的回答都是建議淘汰JSP,新人小白一定不要再學JSP了。我現在集中把這些技術因素歸納一下。一個現代主流Java Web應用,不管前端、後端、還是微服務架構,都在淘汰JSP。其中,我認為Java伺服器端主流技術還是Spring(Spring Boot + Spring MVC + Spring Cloud)。
  • jsp項目運行亂碼?那是編碼沒有改,將Eclipse中jsp文件改為UTF-8
    在執行Eclipse中Jsp項目的時候,總會出現運行亂碼的問題,首先你一定要對中文編碼有所敏感,下面攸攸簡單寫一點,怎樣去修改jsp的默認編碼。在你的Eclipse中新建一個jsp文件的時候,是不是下面這個樣子的,三個編碼都是「ISO-8859-1」。如果你的是這個樣子,那麼請接著向下看。
  • 乾貨 | 一文搞懂JSP技術
    為了克服Servlet的這些缺點,Oracle( Sun)公司推出了JSP技術。JSP(Java Server Pages)是建立在Servlet規範之上的動態網頁開發技術,其實質是一個簡化的Servlet,在JSP文件中,HTML代碼與Java代碼共同存在,其中,HTML代碼用於實現網頁中靜態內容的顯示,Java代碼用於實現網頁中動態內容的顯示。
  • JSP標籤含義和用法列表
    < jsp:include>標籤表示包含一個靜態的或者動態的文件。 < jsp:forward>標籤表示重定向一個靜態html/jsp的文件,或者是一個程序段。語法: < jsp:forward page="path"} /> 或< jsp:forward page="path"} > < jsp:param name="paramName" value="paramValue" />…… < /jsp:forward>
  • JSP/Servlet:Servlet/JSP會話跟蹤機制 (1)
    二、會話標識符  每當新用戶請求一個使用了HttpSession對象的JSP頁面,JSP容器除了發回應答頁面之外,它還要向瀏覽器發送一個特殊的數字。這個特殊的數字稱為「會話標識符」,它是一個唯一的用戶標識符。此後,HttpSession對象就駐留在內存之中,等待同一用戶返回時再次調用它的方法。
  • springboot如何做到接口返回JSP頁面
            作為初學者每一個技術的helloworld實際均來之不易,此處做個記錄,提醒自己相關的注意事項,同時有助於自己對技術點的理解,技術在於實際,切勿紙上談兵。環境:IDEA、java、springboot、tomcat等相關開發工具.
  • 使用JSP include機制改進外觀
    所有***實踐都基於 JavaServer Pages 技術。要運行任何一種實踐,需要在本地機器或測試伺服器上設置符合 JSP 的 Web 容器,如 Apache Tomcat。您還需要使用文本編輯器或 IDE 編寫 JSP 頁面代碼。
  • jsp中使用cookie時報錯……
    今天在看jsp中的cookie時,遇到一個比較麻煩的問題。 關鍵代碼如下: 登錄頁面:login.jsp 處理登錄業務的doLogin.jsp 登錄成功跳轉到的頁面:index.jsp 代碼都寫的沒問題,就是報錯: ava.lang.IllegalArgumentException
  • JSP Web 開發課程教與學(教學大綱,考核大綱和試卷)
    主講教師基本信息姓名性別學歷學位職稱從教時間課程簡介JSP技術是J2EE技術的核心之一,是基於Java Servlet以及整個Java體系的Web開發技術,利用這一技術可以建立安全、跨平臺的先進動態網站。
  • 【免費畢設】jsp+sql作業系統教學網站設計(論文+程序)
    這種方式遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分布式的數據。客戶端需要安裝專用的客戶端軟體。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟體升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。對客戶端的作業系統一般也會有限制。
  • 高二要不要成為美術生?需要到北京畫室學習美術?
    高二要不要學習美術?北京畫室哪家好?轉眼又到了美術生聯考時間了,什麼時候開始報名,文化課不好要不要轉學美術?去哪報名好?讓許多家長同學最為比較頭痛的一件事了,下面小編就帶大家了解一下吧!如果在沒有學美術前你的成績不好是肯定考不上大學,自己的專業過不了你就與大學無緣,想要考上好大學那麼成績還要包括專業成績和文化成績,從某方面來說,學習專業課比文化課要難那麼一丟丟,在學業中你只需要記住,學習不夠優秀的同學,最後肯定是會被淘汰,學專業不是你是逃避高考的理由,在藝考的形式前面網絡上都已經分析完了,大家可以搜所參考一下。
  • CFA考試也進入最後倒計時,學它真的有用嗎?因人而異
    CFA考試也進入最後倒計時,學它真的有用嗎?因人而異最近一段時間真的是考試的高峰期,不僅是考研的在做準備,然後還有FRM考試、CPA、ACCA考試等等,就連CFA考試也進入最後倒計時。很多人在今晚看雙十一晚會狂歡的時候,不要忘記了,距離CFA考試,還剩下最後的25天。所以,提醒一下CFA考生們,要抓緊時間複習了。最近總是聽到一些聲音,就是類似於關於考這些職業證書,到底有沒有用,還有就是一些國際證書,在中國真的很適用嗎?也讓很多CFA學員感到深深的困惑,今天我們就來解答一下,它到底有沒有用。
  • jWebBox v2.1 發布,JSP/FreeMaker 服務端布局工具
    -- 或其它版本 -->    <scope>provided</scope>  </dependency>     <dependency>    <groupId>javax.servlet.jsp</groupId>    <artifactId>javax.servlet.jsp-api</artifactId
  • 能力強的人,為什麼公司還要淘汰呢?原因很現實
    既然是被公司淘汰的人,不管這個人的能力有多麼的強,就說明這個人已經不再適應公司的發展了。這個時候公司看的你不再是你的能力那麼簡單了,要是你的存在不能夠為公司帶來更多的利益,就會被淘汰!二、不好去管理---要求太高,條件無法滿足能力強的人,要求自然也就高。作為公司肯定是想得到這些人的能力,但是總會有條件無法滿足的時候。