JavaWeb ——servlet學習1之servlet

JavaWeb ——servlet學習1之servlet

servlet,HttpServlet對象

首先:servlet是單例多線程!

servlet是一種服務器端的應用程序,具有獨立於平臺和協議的特性,可以生成動態的web頁面。它擔當客戶請求(web瀏覽器或其他HTTP客戶程序)和服務器響應(HTTP服務器上的數據庫或應用程序)的中間層。

JSP是servlet的一種形式,每個JSP頁面實際上就是一個servlet實例——JSP頁面由servlet引擎轉換成servlet,servlet負責響應客戶請求。也就是說使用JSP實際上還是使用servlet,因爲web應用中每個JSP頁面都會由servlet容器生成servlet。

HttpServlet遵循HTTP協議,因此繼承HttpServlet的類也就遵循HTTP協議,一般用在BS架構中

jsp與servlet的區別與聯繫

區別聯繫

1、jsp經編譯後就變成了Servlet. (JSP的本質就是Servlet,JVM只能識別java的類,不能識別JSP的代碼,Web容器將JSP的代碼編譯成JVM能夠識別的java類)

2、jsp更擅長表現於頁面顯示,servlet更擅長於邏輯控制.

3、Servlet中沒有內置對象,Jsp中的內置對象都是必須通過HttpServletRequest對象,HttpServletResponse對象以及HttpServlet對象得到

4、Jsp是Servlet的一種簡化,使用Jsp只需要完成程序員需要輸出到客戶端的內容,Jsp中的Java腳本如何鑲嵌到一個類中,由Jsp容器完成。而Servlet則是個完整的Java類,這個類的Service方法用於生成對客戶端的響應。

5、JSP是Servlet技術的擴展,本質上就是Servlet的簡易方式。JSP編譯後是“類servlet”。

不同點

1、Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。 而JSP的情況是Java和HTML可以組合成一個擴展名爲.jsp的文件。

2、JSP側重於視圖,Servlet主要用於控制邏輯

3、Servlet更多的是類似於一個Controller,用來做控制。

Servlet對象的生命週期

public class HelloServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
			// 初次訪問,創建servlet實例的時候調用
    }

    @Override
    public ServletConfig getServletConfig() {
      	// 非生命週期,返回Servlet信息,例如作者、版本等,注意此方法應該返回的是純文本,而不是任何標記語言。
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
      // 只要客戶端來一個請求,那麼就執行這個方法

    }

    @Override
    public String getServletInfo() {
      // 非生命週期,返回init方法中傳入的ServletConfig,ServletConfig應該被保存在servlet實現類中的類級變量中。
        return null;
    }

    @Override
    public void destroy() {
				// 銷燬的時候執行
    }
}

servlet基礎配置

1、在WEB-INF下新建web.xml文件

2、配置servlet:

創建servlet標籤並設置他的名字、和對應的的映射的servlet對象

3、映射servlet-mapping:這裏是將我們的servlet和url地址進行綁定。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
  
  // 創建servlet 和 其映射的url
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/a</url-pattern>
    </servlet-mapping>
</web-app>

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章