成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

曾經(jīng)風(fēng)光無限的Jsp技術(shù),為什么現(xiàn)在很少有人用了呢?

開發(fā) 后端
jsp技術(shù)作為曾經(jīng)一度火爆的技術(shù),在最近幾年確實(shí)使用率越來越低了,這篇文章帶你一塊探究一下jsp的從生到死。

[[380599]]

 jsp技術(shù)作為曾經(jīng)一度火爆的技術(shù),在最近幾年確實(shí)使用率越來越低了,這篇文章帶你一塊探究一下jsp的從生到死。

一、jsp技術(shù)的誕生

在很久很久以前,那時(shí)候我們的開發(fā)都是通過servlet來完成的,這個(gè)servlet是什么呢?我們先來認(rèn)識(shí)一下:

servlet用Java語言編寫的服務(wù)器端程序。主要功能是和瀏覽器進(jìn)行交互,生成頁(yè)面展示。

長(zhǎng)下面這個(gè)樣子:

  1. public class HelloWorld extends HttpServlet {   
  2.      public void doGet(HttpServletRequest request, HttpServletResponse response)   
  3.              throws ServletException, IOException {   
  4.          response.setContentType("text/html");   
  5.          PrintWriter out = response.getWriter();   
  6.          out.println("<html>");   
  7.          out.println("<head>");   
  8.          out.println("<title>Hello World</title>");   
  9.          out.println("</head>");   
  10.          out.println("<body>");   
  11.          out.println("<h1>Hello World!</h1>");   
  12.          out.println("</body>");   
  13.          out.println("</html>");   
  14.      }  
  15.  }   

我們可以看到前端所展示的頁(yè)面,需要我們servlet去一個(gè)標(biāo)簽一個(gè)標(biāo)簽去生成,如果一個(gè)頁(yè)面超級(jí)復(fù)雜,動(dòng)不動(dòng)幾千行代碼,那這個(gè)servlet效率也就太低了。而且整個(gè)servlet代碼也會(huì)十分臃腫而且可讀性非常差。

這時(shí)候怎么辦呢?sun公司很早就意識(shí)到了這個(gè)問題,于是便倡導(dǎo)很多公司一塊來創(chuàng)建了一種能夠動(dòng)態(tài)生成html的新技術(shù),不久之后jsp便誕生了。有效率的解決了上面servlet所出現(xiàn)的問題。

二、jsp的發(fā)展

既然jsp技術(shù)能夠解決剛剛servlet代碼里面所出現(xiàn)的技術(shù),我們來看一下是如何解決的:在這里我們舉一個(gè)小例子,就是前端jsp向服務(wù)器servlet發(fā)送請(qǐng)求圖書頁(yè)面的功能。

首先我們看一下servlet:

  1. public class List_book extends HttpServlet {           
  2.      public void doGet(HttpServletRequest request, HttpServletResponse response)   
  3.              throws ServletException, IOException {   
  4.         //聲明一個(gè)ArrayList.用來存放Book類中的數(shù)據(jù)   
  5.          ArrayList<Book> list = new ArrayList<Book>();  
  6.          for(int i=0;i<10;i++){ 
  7.                       Book book = new Book();   
  8.          book.setName(res.getString("name"+i));   
  9.          book.setAuthor(res.getString("author"+i));   
  10.          list.add(book);   
  11.          } 
  12.          //將list數(shù)據(jù)發(fā)送到.jap文件中   
  13.          request.getRequestDispatcher("ListBook.jsp").forward(request, response);   
  14.      }   
  15. }   

我們會(huì)發(fā)現(xiàn),現(xiàn)在的servlet沒有一點(diǎn)html代碼了。我們只需要把數(shù)據(jù)交給jsp。此時(shí)我們的頁(yè)面展示就交給jsp來做了。現(xiàn)在我們來看一下jsp長(zhǎng)什么樣子:

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
  2. <%String path = request.getContextPath();%>  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  4. <html>   
  5.  <head>    
  6.    <meta http-equiv="pragma" content="no-cache">  
  7.    <meta http-equiv="description" content="This is my page">  
  8.    <script></script>  
  9.   </head>   
  10.   <body>      
  11.    <% ArrayList list = (ArrayList) request.getAttribute("list");  %>    
  12.    <h2 align = "center">圖書列表</h2>   
  13.    <table border = 1px align = "center">    
  14.     <tr><th>圖書名稱</th><th>圖書作者</th></tr>    
  15.     <!-- 繼續(xù)使用jsp語句 循環(huán)放入存放于list中的Book實(shí)體類中的數(shù)據(jù) -->    
  16.     <%      
  17.     for(int i = 0;i<list.size();i++){    
  18.      Book book =(Book)  
  19.      list.get(i);%>     
  20.      <tr><th><%=book.getName() %></th><th><%=book.getAuthor()%></th><tr>  
  21.      } 
  22.             %>   
  23.    </table>   
  24.   </body> 
  25.  </html> 

這就是jsp,我們可以在html頁(yè)面中寫一些java代碼。對(duì)于我們程序員來說,在開發(fā)當(dāng)中靜態(tài)的頁(yè)面我們只需要用html和css寫一些標(biāo)簽來展示即可,對(duì)于那些動(dòng)態(tài)的部分我們就可以使用java代碼。

那么jsp和servlet是不是就是這種協(xié)作的關(guān)系,本質(zhì)上有什么區(qū)別呢?

其實(shí)jsp只是servlet的一種特殊形式,每一個(gè)jsp頁(yè)面就是一個(gè)servlet實(shí)例,通俗一點(diǎn)的話來說:jsp就是servlet,只不過servlet把一些業(yè)務(wù)功能剝離開來交給了或者是形成了jsp。明白了吧。在我們的項(xiàng)目編譯的時(shí)候就是把jsp編譯成了servlet。

你們會(huì)發(fā)現(xiàn),這樣做其實(shí)挺好的,市場(chǎng)也驗(yàn)證了一切,很快jsp技術(shù)流行開來,可是隨著時(shí)間的流逝,業(yè)務(wù)越來越復(fù)雜,jsp也開始跟不上時(shí)代了。

三、jsp的危機(jī)

我們先看一個(gè)對(duì)話場(chǎng)景:

java程序員:終于寫完了功能,是時(shí)候在界面上展示了。

前端程序員:你功能寫完了,我沒有數(shù)據(jù),在頁(yè)面什么沒法展示呀

java程序員:數(shù)據(jù)我寫好了,你在jsp中調(diào)用XX方法就能獲取了,

前端程序員:我已經(jīng)在jsp中寫好了這個(gè)方法,你為什么自己寫了?

于是乎,無窮無盡的爭(zhēng)吵還在繼續(xù)當(dāng)中。

這就是jsp的弊端,為什么呢?我們可以來總結(jié)一下:

(1)動(dòng)態(tài)和靜態(tài)資源放在一起,一旦服務(wù)器出現(xiàn)狀況,前后臺(tái)一起玩完,用戶體驗(yàn)極差。

(2)一旦jsp出現(xiàn)了問題,就需要前端后端發(fā)開人員一塊來分析解決,效率低。

(3)jsp無法使用nginx等。

(4)jsp頁(yè)面復(fù)雜,難以修改。

(5)第一次加載jsp需要編譯成servlet,時(shí)間久,而且業(yè)務(wù)量大的時(shí)候,jsp負(fù)擔(dān)太大。

(6)jsp對(duì)于開發(fā)人員簡(jiǎn)直就是一個(gè)揮之不去的痛,太難了!!!

鑒于以上缺點(diǎn),于是另外一套機(jī)制橫空出世了,這就是前后端分離。什么是前后端分離呢?

前后端分離其實(shí)就是后端工程師只關(guān)注于后端頁(yè)面的開發(fā),不再處理前端問題。前端工程師只關(guān)注于自己的頁(yè)面開發(fā)。需要數(shù)據(jù)交互的時(shí)候,兩者會(huì)有一份接口文檔。

就這樣這種思想架構(gòu)很快的流行開來,這也就是為什么jsp落寞的真正原因。從此java從jsp轉(zhuǎn)向了restful結(jié)構(gòu),springMCV也開始流行開來,并逐漸占領(lǐng)了市場(chǎng)。前后端分離有什么優(yōu)點(diǎn)呢?我們來總結(jié)一下:

(1)動(dòng)態(tài)和靜態(tài)資源分開存儲(chǔ)。

(2)出現(xiàn)bug能很快定位是前端還是后端。

(3)支持nginx。在高并發(fā)狀態(tài)下極其優(yōu)秀。

(4)直接請(qǐng)求頁(yè)面,不用編譯,速度效率都提上來了。

(5)從此前端和后端是相親相愛的一家人了!!!!

四、jsp的落幕

又隨著時(shí)間的推移,jsp的時(shí)代基本上一去不復(fù)返了,因?yàn)槲覀冇肿呷肓艘苿?dòng)互聯(lián)時(shí)代,這時(shí)候的客戶端可不是前端頁(yè)面了,還包括手機(jī)、汽車、電視等等各種設(shè)備,這種情況下,前后端必須要分離了。jsp基本上徹底告別了它的舞臺(tái)。

技術(shù)總是在不斷地發(fā)展和完善,只有技術(shù)的革新才會(huì)帶來社會(huì)的進(jìn)步。

本文轉(zhuǎn)載自微信公眾號(hào)「愚公要移山」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系愚公要移山公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 愚公要移山
相關(guān)推薦

2020-03-23 10:45:32

C語言C++Web

2010-04-02 17:59:37

云計(jì)算

2024-08-06 09:51:21

SpringHTTPJSON

2019-10-30 12:24:57

網(wǎng)絡(luò)安全安全風(fēng)險(xiǎn)網(wǎng)絡(luò)攻擊

2022-10-19 07:35:28

2022-01-04 21:45:43

蘋果6安卓手機(jī)

2020-11-07 16:42:02

Java技術(shù)開發(fā)

2020-07-21 11:30:30

Java技術(shù)開發(fā)

2010-08-04 09:01:00

2018-06-04 22:27:47

2023-04-26 07:06:56

CPU主板半導(dǎo)體器件

2024-01-02 10:38:22

Go語言數(shù)組

2020-07-19 15:39:37

Python開發(fā)工具

2019-03-19 09:00:14

Python 開發(fā)編程語言

2021-10-08 15:52:19

電腦蘋果Windows

2021-11-15 09:32:06

浮點(diǎn)面試Java

2011-01-18 15:27:30

Postfix

2017-08-31 16:22:22

2021-10-13 09:00:19

排序數(shù)據(jù)集開發(fā)

2025-01-16 13:53:31

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久久久久久久久久 | 成人片免费看 | 99精品免费| 欧美乱做爰xxxⅹ久久久 | 麻豆91精品91久久久 | 日韩精品1区2区3区 成人黄页在线观看 | 精品乱码一区二区三四区视频 | 国产视频1区 | 国产高清免费视频 | 一级片免费在线观看 | 国产精品99久久久精品免费观看 | 九九久久久久久 | 99re6在线视频精品免费 | 一区二区三区av | 亚洲欧美中文日韩在线v日本 | 激情欧美一区二区三区 | 先锋资源网 | 国产激情偷乱视频一区二区三区 | 免费一区二区三区 | 国产一区二区三区高清 | 午夜精品一区二区三区在线观看 | 国产精品美女视频 | 国产一区二区精品 | 精品成人免费视频 | 国产高清视频一区 | 2018天天干天天操 | 亚洲一区二区三区在线视频 | 亚洲一区在线日韩在线深爱 | 午夜免费视频 | 精品欧美一区二区在线观看视频 | 偷拍自拍网 | 在线观看你懂的网站 | 亚洲日日夜夜 | 日韩精品免费一区 | 欧美午夜一区 | 最新国产精品精品视频 | 中文字幕亚洲视频 | 在线91| 青青草一区二区三区 | 久久国产高清视频 | 欧美国产一区二区 |