本身動手設計java web框架(一)-封裝請求攔截器DispatchServlet

前言:

    以前剛剛學習java web編程之時,感受Servlet不怎麼好用,有時候用起來很麻煩,當時因爲本身的經驗不足實行起來有點困難,因此就放在了一旁,如今由於本身也作過些些許許項目,有了一點經驗,並且正好放假了有一些時間,因而決定實現下本身以前的想法。java

什麼是攔截器?

    在開始動手以前,要講一下什麼是攔截器?在這個框架中攔截器的做用主要是用來攔截網頁的請求的一個Servlet。在最開始的學習的Servlet程序中,每個路徑都須要在web.xml中配置它所對應的Servlet,這樣作在Url路徑多的時候,會讓web.xml變得很是大,而且很是很是多的Servlet,讓服務器端顯得很是龐大冗餘,因此這時候就須要定義一個Servlet,也就是上面所說的攔截器,經過這個Servlet,能夠攔截全部的請求,而且把這些請求交給某些具體的方法處理,而且返回。web

自定義攔截器:

    首先,咱們須要本身建立一個java web應用程序,以下圖編程

,而後能夠經過Tomcat跑起來,以後咱們須要本身建立一個Servlet來做爲咱們的攔截器服務器

由於這裏咱們須要本身封裝個servlet來處理請求,因此這個Servlet就不是繼承於HttpServlet,而是繼承於HttpServlet的父類GenericServlet,而且序列化這個類,這裏不清楚Servlet的工做原理的同窗能夠看下個人這篇博客:http://my.oschina.net/u/2505383/blog/649585,以後咱們就須要經過web.xml來進行配置框架

規定咱們部署的目錄下全部的請求交給這個Servlet進行處理。函數

編寫攔截器:

   上面操做完了以後,咱們就須要對DispatchServlet中的service方法進行重寫:學習

主要是進行ServletRequest -> HttpServletRequet 以後交給另一個函數進行處理url

public void service(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException {
        String url = servletRequest.getRequestURI();
        String method = servletRequest.getMethod();
    /**
     * 以後會作對請求進行分發
     */
}

在這個函數中咱們能夠經過 servletRequest.getRequestURI()獲取請求路徑,servletRequest.getMethod()獲取請求方式,獲取到路勁和方法,咱們在這以後會對請求路徑進行處理,讓這個路徑執行它所對應的方法。spa

總結:

    框架重的攔截器基本原理這裏差很少就講完了,下一節會給你們講到自定義註解,以及經過反射獲取註解對應的方法。.net

相關文章
相關標籤/搜索