多個請求使用同一個Servlet


多個請求使用同一個Servlet

多個請求使用同一個Servlet

如果JSP中一個請求對應一個Servlet那要建很多Servlet,代碼冗余較多。

我們可以把一個模塊的請求封裝在一個Servlet,實現功能的模塊化,從而簡化代碼。

方法/步驟

  1. 1

    1.新建test.jsp文件

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  2. 2

    2.輸入如下代碼,分別是3個請求,請求同一個Servlet,但是后邊跟的參數method不同

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  3. 3

    3.新建CustomerServlet

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  4. 4

    4.代碼如下,重點看紅框標記的代碼

    因為增刪改查的操作既有doGet 又有doPost,為了簡化代碼,我們在doGet方法中統一調用doPost的方法

    在doPost中通過獲取method參數的不同,調用不同的方法,從而區別出不同的請求,達到多個請求訪問一個Servlet的目的

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  5. 5

    5.運行test.jsp頁面

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  6. 6

    6.訪問add

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  7. 7

    7.訪問query

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  8. 8

    8.訪問delete

    MVC案例代碼詳解2--多個請求使用同一個Servlet
  9. 9

    9.注意上邊的操作,訪問的都是customerServlet 無非后邊的method不同,而訪問不同的方法。

    如果新增了update 方法就在servlet中新增代碼即可。

  10. 10

    10.通常情況下我們可以這么使用。

    但代碼還有兩個小缺點

        1>當添加一個請求時,需要在Servlet中修改兩處代碼。    2>url中使用method=xxx暴露了要調用的方法,不私密,有安全隱患

     

     

    解決方法如下:

    難點是對於反射的理解。

    方法/步驟

    1. 1

      1.修改test.jsp頁面代碼,修改三個請求鏈接分別為

      add.do,query.do,delete.do

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    2. 2

      2.修改web.xml文件中的url-pattern 為*.do, 如此配置的話所有帶有.do的訪問連接都走這個Servlet

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    3. 3

      3.修改doPost方法,注意反射的代碼

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    4. 4

      4.訪問test.jsp

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    5. 5

      5.訪問add

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    6. 6

      6.訪問query

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    7. 7

      7.訪問delete

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    8. 8

      8.但是如果我訪問一個不存在的連接例如:abc.do,會出現異常,這是由於反射中沒有找到abc.do對應的方法

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    9. 9

      9.我們在Servlet中反射異常代碼中修改如下,讓它跳轉到一個error.jsp

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    10. 10

      10.新建error.jsp 添加一句提示

      MVC案例3--Servlet多個請求對應一個Servlet(續)
    11. 11

      11.再次訪問不存在的連接,就會給出提示

      MVC案例3--Servlet多個請求對應一個Servlet(續)
     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM