天天看點

Java web中的jsp/servlet

       已經學習到Java中級很長的時間了,但是據如同前一篇文章,一直懶得整理,好吧其實是剛開始學習寫部落格沒有心思去寫,根本沒有什麼思路,而且上篇文章還是我因為用到了,然後就去查了一下,覺得有必要記錄下來。而且這幾篇文章亂七八糟的,好好整理一下把。

       現在開始學習着jsp/servlet這裡,tomcat伺服器,根據我以前再網上查到的一些資料,了解到最好不要再jsp的頁面内進行Java的業務操作,主要是因為為了後期的維護的友善,然後想了一下确實是這樣的。如果在jsp頁面當中嵌套了Java業務的代碼,确實會在後期的維護上面是一個很大的難題。

      業務的操作,完全都要交給servlet去操縱,這樣在維護上面會比較簡單一些,而jsp和servlet之間則進行一些值的傳遞,将需要調用的業務代碼從jsp頁面擷取發送到servlet去處理,由servlet進行處理,判斷。有servlet進行判斷是否跳轉到其他的界面。

      說道servlet就不得不說一下怎樣擷取jsp(其他的頁面)頁面傳遞過來的值,在servlet的使用要先extends httpServlet,在HttpServlet當中有doGet,和doPost方法可以使用方法重寫request的取到傳過來的資料,當然了這裡隻是簡單的request response還沒有涉及到後面的session cook等等。至于具體使用doGet,還是doPost方法,取決于傳過來的方式。在調用servlet的時候,會先執行初始化init的方法,然後執行service方法,然後doget or dopost,是以後來老師又給我們講了一下,其實可以在調用service時就擷取值進行判斷,當然了service在HttpService中有兩個,在自己的servlet中進行重寫的是service(ServletRequest req, ServletResponse res) 這個service,doGet(HttpServletRequest req,HttpServletResponse resp)  其中的service中的seq(res)和doGet(doPost)中的seq(res)屬于不同的類,service中的相當于doGet中的父類,是以可以進行強轉的。

用service中的變量也可以擷取傳遞過來的值,然後就可以進行業務上面的操作了,然後進行下一步,但那是在這裡面需要進行注意的是,如果需要進行目前一些值的轉發,需要先将service中的req強轉,程式設計HttpServletRequest的類型,然後

request.getRequestDispatcher("/MyAddrBookServlet").forward(request, response);
           

就可以将值傳遞到其他的頁面了,當然了其實session之類的我覺得更好,但是還沒有學到這裡,具體不知道,學到這裡之後就回來重新再寫一篇吧。大體上那天講的就這些,晚安,睡覺了。(新人,是以希望大神評價,個人一些的了解,可不可以不要批評啊)。