整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

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

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

          天是劉小愛自學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中,從而被頁面讀取到。

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

          最后

          謝謝你的觀看。

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

          向對象是程序中一個重要的思想,就是程序中所有的操作都是通過對象完成的。

          舉例來說:

            • 操作瀏覽器要使用window對象
            • 操作網頁要使用document對象
            • 操作控制臺要使用console對象

          一切操作都要通過對象,也就是所謂的面向對象,那么對象到底是什么呢?這就要先說到程序是什么,計算機程序的本質就是對現實事物的抽象,抽象的反義詞是具體,比如:照片是對一個具體的人的抽象,汽車模型是對具體汽車的抽象等等。程序也是對事物的抽象,在程序中我們可以表示一個人、一條狗、一把槍、一顆子彈等等所有的事物。一個事物到了程序中就變成了一個對象。

          在程序中所有的對象都被分成了兩個部分數據和功能,以人為例,人的姓名、性別、年齡、身高、體重等屬于數據,人可以說話、走路、吃飯、睡覺這些屬于人的功能。數據在對象中被稱為性,而功能就被稱為方法。所以簡而言之,在程序中一切皆是對象

          想要面向對象和操作對象,首先便要先擁有對象,所以接下來就是怎么創建對象

          1、類(class)

          要想面向對象,操作對象,首先便要擁有對象,那么下一個問題就是如何創建對象。要創建對象,必須要先定義類,所謂的類可以理解為對象的模型,程序中可以根據類創建指定類型的對象,舉例來說:可以通過Person類來創建人的對象,通過Dog類創建狗的對象,通過Car類來創建汽車的對象,不同的類可以用來創建不同的對象。

          2、面向對象的創建方式

          • 字面量創建
            缺點:適合創建單個對象,代碼冗余

          • 實例創建
            缺點:適合創建單個對象,代碼冗余

          分析:看看字面量創建對象new Object創建對象兩種方式,其實字面量創建對象的本質就是new Object創建對象

          // 字面量創建對象
          const person2={name: '張三', age: 10}
          console.log(person2) // { name: '林三心', age: 10 }
          
          本質是
          // new Object創建對象
          const person2=new Object()
          person2.name='張三'
          person2.age=10
          console.log(person2) // { name: '張三', age: 10 }

          因為構造函數的prototype和其實例的_proto_是指向同一個地方的,所以我們來驗證一下

          const person2={name: '張三', age: 10}
          const person3=new Object()
          person3.name="張三"
          person3.age=10
          person3._proto==Object.prototype    // true
          person2._proto==Object.prototype    //true
          • 工廠模式創建 函數的 封裝
            問題:解決了代碼冗余的問題,但識別不明

          • 構造函數創建
            問題:解決了指向不明的問題,但浪費內存

          其中new操作符都做了什么呢?

           //1.聲明構造函數
                  function Student(name, age, sex) {
                      //1.隱式的創建了一個空對象,讓this指向這個空對象
                      //this=new Object();
                      //2.執行構造函數中代碼(添加屬性和方法)
                      //添加屬性
                      this.name=name;
                      this.age=age;
                      this.sex=sex;
                      //添加方法
                      this.study=function () {
                          console.log("good good study,day day up!!!,好好學習,天天自閉");
                      }
                      //4.隱式的返回創建好的對象
                      //return this
                  }
          
                  var s2=new Student("曾慶文",18,"女");
                  console.log(s2); // {name: "曾慶文", age: 18, sex: "女", study: ?}
          • 原型對象創建方式
            問題:解決了浪費內存的問題,但不能傳參

          • 混合創建 構造函數(可變)+原型(固定的,公共的,共享的)
            問題:破壞了封裝性,因為原型中的屬性和方法寫在了函數的外邊。

          • 動態混合創建

          乎每個互聯網企業都需要Web前端工程師,需求量大、薪資高,自然吸引了很多人加入。很多想要通過Web前端培訓學習的人會擔憂,武漢Web前端培訓課程怎么樣?都能學到些什么?下面,千鋒武漢Web前端培訓學員就分享自己在武漢Web前端培訓學習的親身經歷。

          從一個懵懵懂懂,四處碰壁的迷茫少年,一個月以前我走進了千鋒武漢Web前端培訓。這里的學習氛圍,授課老師和管理制度都讓我受益匪淺,好似又回到了上學時代。來到這里學習了一個多月了,讓我覺得這里就是一個溫馨的大家庭。

          我作為一個菜鳥,頭一次接觸程序代碼。剛開始學習的時候完全是手足無措,總是比別人慢半拍,后來隨著不斷的理解,我也慢慢融入了學習之中,現在想想來到千鋒武漢Web前端培訓學習還是蠻有趣的。

          第一階段我們主要學習了HTML與CSS。說實話不學不知道,學了嚇一跳。原來如今網絡上眼花繚亂的網頁都是用代碼寫出來的。一張張圖片、各種動畫及效果,簡直令我大開眼界。我們在陳老師的教導下,從一開始的畫色塊,慢慢的組建框架,加上各種點擊效果,一步一步的創建一個網頁。這里面離不開老師細心地教授,當然也有我們各自付出的汗水。老實說學習了CSS我更進一步的理解了細心地重要性,往往寫錯一個單詞,甚至一個字母都是致命的錯誤,有句話說的妙,細節決定成敗是準沒錯的。

          回頭想想,在千鋒武漢Web前端培訓班這一個多月里我確實進步了不少,無論是態度還是自我約束。當然這些都離不開我的選擇,走進了千鋒就沒想過要回頭,所以在接下來的學習中我會加油,決不給自己留遺憾。也希望千鋒的學員們共同努力,朝著自己的夢想加油!


          主站蜘蛛池模板: 乱精品一区字幕二区| 精品国产一区二区三区久久狼 | 亚洲一区无码精品色| 欧美亚洲精品一区二区| 精品伦精品一区二区三区视频| 国产精品制服丝袜一区| 久久久久久人妻一区二区三区| 蜜桃臀无码内射一区二区三区| 亚洲高清美女一区二区三区 | 亚洲AV日韩精品一区二区三区| 91一区二区三区| 国产suv精品一区二区33| 亚洲色偷精品一区二区三区| 亚洲一区二区三区91| 亚洲欧美成人一区二区三区| 精品国产AⅤ一区二区三区4区 | 精品一区二区三区在线视频| 玩弄放荡人妻一区二区三区| 精品无码一区二区三区爱欲 | 三上悠亚精品一区二区久久| 午夜无码视频一区二区三区| 无码少妇一区二区浪潮免费| 91大神在线精品视频一区| 无码人妻精品一区二区三18禁| 国产亚洲综合一区柠檬导航 | 日韩一区二区视频| 国产中文字幕一区| 少妇无码AV无码一区| 一区二区三区www| 久久国产视频一区| 国产suv精品一区二区6| 韩日午夜在线资源一区二区 | 少妇精品久久久一区二区三区| 国产精品一区二区久久| 国产成人高清精品一区二区三区| 一区高清大胆人体| 无遮挡免费一区二区三区| 日本免费一区二区久久人人澡| 亚洲一区免费视频| 国产一区二区电影| 色妞AV永久一区二区国产AV|