java servlet

1、一句話歸納

servlet是一個專門用於處理HTTP請求和響應的java程序。也能夠說一個實現方法方案和標準。html

2、一張圖來講明servlet放在哪裏!放在它的容器中(Tomcat等HTTP服務器是servlet的容器)

3、servlet的原生方法編寫及部署

全部servlet的類名都帶有servlet後綴。通常咱們就是新建一個繼承於HttpServlet類的子類,並重寫doGet和doPost兩個函數!這兩個函數最終都會調用process方法,該方法是整個servlet控制器的核心。前端

1. Servlet 可使用 javax.servlet 和 javax.servlet.http 包建立java

2. Servlet 是服務 HTTP 請求並實現 javax.servlet.Servlet 接口的 Java 類。Web 應用程序開發人員一般編寫 Servlet 來擴展 javax.servlet.http.HttpServlet,並實現 Servlet 接口的抽象類專門用來處理 HTTP 請求。web

3. servlet原生方法編寫demo參考:http://www.runoob.com/servlet/servlet-first-example.htmlspring

// 導入必需的 java 庫
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 擴展 HttpServlet 類
public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException
  {
      // 執行必需的初始化
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 設置響應內容類型
      response.setContentType("text/html");

      // 實際的邏輯是在這裏
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什麼也不作
  }
}

4、servlet如何在spring中如何被運用呢?

springMVC使用一個Servlet做爲調度器,每個HTTP請求都會發送給調度器,也就是這個servlet。而咱們在springMVC配置的時候,就時候用<servlet>標籤來聲明一個servlet調度器。而後在配置文件中聲明一個bean來注入。把他們所有變成dispatcher servlet(調度器)。(關於spring的配置請看個人另一篇博客:SpringMVC的配置編程

咱們看下咱們的servlet到spring的方案歷程

1. 咱們基於原生的方法,繼承於HttpServlet類的子類,並重寫doGet和doPost兩個函數實現,而後在這兩個函數中處理咱們的業務以後,響應給了前端。這樣的耦合性很是的大!那pring框架的出發點就是經過解耦的方式實現簡化POJO的編程。服務器

2. 如今把原生的servlet程序拆分一下,拆分紅一個專門負責接收(dispatcher[調度器])和多個專門負責響應(以業務區分的controller)的對象。dispatcher接收到HTTP請求以後,調用對應的業務員(controller)進行處理,而後把處理完的數據交付給到dispatcher,再由它響應給客戶端。其實這些controller業務員對象也能夠把一些任務分攤給各個部門如倉庫管理員DAO或者IT中心email,controller主要負責調度這些部門的資源,整合以後交給領導controller,controller主管再由HTTP渠道調度員把信息響應發出去。因此,以下圖:mvc

3. 以上都是沒有spring的狀況下提煉出來的方案。那如今咱們一塊兒來看下spring中如何實現以上的方法。app

由第2種方案咱們知道至少須要手寫兩個程序:一個調度器dispatcher和一個controller。而在springMVC的框架就直接包含了dispatcher servlet。你只須要進行簡單的配置,spring框架便幫你實現了一個調度器dispatcher(其實就是servlet)。用戶只須要去考慮業務的事也就是controller及其如下的各個實現。框架

       在spring2.5以前寫controller類必須實現org.springframework.web.servlet.mvc.controller接口!spring3.0能夠基於註解的方式來實現controller!

關於註解

1. @Controller和@RequestMapping是springMVC API最重要的兩個類型!

由@Controller註釋的類就是一個controller類就成了一個controller,而這個類就是一個POJO。

由@RequestMapping註釋的方法就是一個請求處理方法。而這個方法也是一個普普統統的方法。

由此能夠看出spring的高明,就是一個隱者的身份去利用POJO來實現本身的目的,而又不會對POJO帶來打擾,這些POJO在不爲spring服務的時候,完徹底全能夠當成一個普通的Java類程序和別人進行交互,和spring沒有什麼大的糾纏關係。

2. spring使用掃描機制來找到應用程序中全部基於註解的控制器。這個掃描的配置就在調度器配置文件中dispatcher-servlet.xml中進行配置的。這就造成了一個調度器dispatcher和多個controller的綁定!也就是組合好了一個如上圖的業務部門!

3. 註解進行spring的依賴注入!@Autowired和@Service!

有關spring和依賴注入,請查閱我另一個博客:http://www.javashuo.com/article/p-bgcqibpu-da.html

相關文章
相關標籤/搜索