搜尋

首頁  >  問答  >  主體

java - 對於jsp技術,aspx技術的困惑

最近接觸了一個c#的項目,基本上是MVC結構,是基於asp.net的web項目。 view層是多個cshtml檔案構成(基本上可以認為是以前的aspx檔案),controller層由多個cs檔案(c#程式碼)組成,資料層這裡暫不討論。

這個專案是這樣的,我大概看了一下,view層的cshtml檔案裡面例如某個按鈕會連結到js檔案中的某個函數,然後這個函數會提交post請求或是get請求,然後就會連結到controller層的cs檔中的那個對應的函式了,之後就是資料處理後再回傳。

現在有以下幾個困惑:

1,我不知道上面講的這個流程是不是現在web開發中主流的一個前後端互動過程?

2,基於java web的jsp技術是不是也是類似上面.net這麼一個流程? jsp檔案是不是就是對應.net中的cshtml檔案?不過網路上說,jsp檔案會包含java程式碼,但我在cshtml檔案中完全沒找到c#的程式碼,要嘛就是html,要嘛就是js

3,如果jsp檔案中會夾雜著大量的java程式碼,那這個view層和controller層豈不是黏在一塊了?難道不應該是jsp檔呼叫js,然後js呼叫伺服器端controller層中的java檔這樣一個流程嗎?

4,如果說3問題中的確是jsp檔包含大量java程式碼,那的確是沒有很好的解耦,那我剛剛說的那個.net的項目,這樣的一個流程是不是意味著前後端解耦的還不錯?

5,我有點納悶的是,為什麼那個.net專案中,我一個html文件都找不到,全都是cshtml文件,然後還有大量的js文件,和cs文件(c#代碼)。

謝謝各位了,我其實是個剛進入web開發這個大海裡的一個菜鳥

某草草某草草2755 天前773

全部回覆(4)我來回復

  • phpcn_u1582

    phpcn_u15822017-05-17 10:02:59

    謝邀,以下是個人愚見,要噴請輕噴:

    1. 算是。不過現在還有前後端分離

    2. 是;不是,cshtml应该对应是java中的velocity

    3. 如果夾雜著,就會。可以使jsp對應一個servlet

    4. 是的,已經算不錯了

    5. 這是一種模板,簡單來說會讓html的開發對我們的後端人員更友善

    回覆
    0
  • PHPz

    PHPz2017-05-17 10:02:59

    是這樣的,因為有經驗我做個回答:
    1,你所說的連結到某個js檔案包括css檔案是因為在c#中定義了辨識路徑,不然是無法辨識的。
    2,cshtml為Razor語法,要求檔案名稱後綴為這個。
    3,我並沒碰到過混雜著java的.net專案。不過還是建議既然.net就用純c#建構吧,也方便維護。
    4,你現在所有的疑惑都源自於你對後台不太了解,作為前端有時間可以學習一下Node的express框架或者koa都可以,用一下模板語法,你就會理解你現在的疑惑了。

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-17 10:02:59

    1. 是一個經典的前後端互動架構,但目前主流已經向 spa 方向遷移,前端負責處理更多的路由和邏輯,後端只負責提供 api 和 資料;

    2. jsp 與cshtml 在這個意義上可以說是一致,但細節不同;至於為什麼cshtml 裡面沒有c#,是因為微軟規定View 層使用razor 引擎,後綴是cshtml, 裡面除了標準html 和js ,還可以使用razor語法(注意不是C# ), 但依照目前的趨勢,越來越多人不使用後端產生頁面,而是直接在前端處理,所以很多cshtml 裡面沒有razor 語句;

    3. jsp 夾雜 java 是類比與 asp ,屬於淘汰技術, 題主已經接受了 mvc 的理念, 提出的疑問是對的,所以現在沒人這麼乾了;

    4. 是的;

    5. 因為是微軟規定的,具體原因看2;html 檔案也是可以存在的,但用 cshtml 可以預設與 controller 綁定,更方便;

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-17 10:02:59

    這個問題是前後端的分離。現在主流的都是MVC三層分離。
    至於你說的JSP其實是java早起的在html裡面嵌入java程式碼的一種表現形式。現在已經慢慢弱化這種使用方法。

    回覆
    0
  • 取消回覆