1. 程式人生 > >JavaWeb-Servlet(一)

JavaWeb-Servlet(一)

3.1 程序 public 創建 客戶端請求 若是 編寫 server bsp

 一 Servlet(Server Applet)是Java Servlet的簡稱,是服務器小應用程序   1)用來完成B/S架構下,客戶端請求的響應處理 技術分享圖片

  2)平臺獨立,性能優良,能以線程方式運行   3)Servlet API為Servlet提供了通用的編程接口   4)Servlet一般在容器中運行,對外統一接口,由容器來調用。     常見的Servlet容器:Tomcat         二 TomcatServlet的關系   上面說過,Servlet需要對外統一接口,那麽誰來統一這些接口呢?這個時候就需要容器來調用。   Tomcat是一個Web應用輕量級服務器,同時也是一個Servlet\JSP容器。其作為Servlet容器,有三種工作模式:獨立的Servlet容器、進程內的Servlet容器和進程外的Servlet容器。 技術分享圖片

    web服務器收到客戶端的Servlet訪問請求後,若是服務器裝載並創建了Servlet的實列對象

  1) Tomcat將http請求文本進行解析,然後封裝稱為HttpServletRequest類型的Requset對象

  2) Tomcat將要響應的信息封裝為HttpServletResponse類型的response對象進行返回

 
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
     request;
    HttpServletResponse response;
    
try { request = (HttpServletRequest)req; response = (HttpServletResponse)res; } catch (ClassCastException var6) { throw new ServletException("non-HTTP request or response"); } this.service(request, response); }

三 創建一個Servlet

  3.1 Servlet的執行流程

    首先,如果瀏覽器由這樣一個輸入:http://localhost:8080/demo/MyServlet

  http:http協議

      統一資源定位符URL。

        格式:<協議>://<主機>:<端口>/<路徑>

  localhost:域名

  8080:Tomcat端口號

            技術分享圖片

  demo: web應用的名稱,在webapps下找是否存在demo的目錄。

  MyServlet:web資源,在demoweb的應用的應用下查找是否存在此資源。

    /MyServlet資源就是我們的一個Servlet

        -> 得到/MyServlet字符串

        -> 使用/MyServlet到web.xml文件中查找每一個<servlet-mapping>下的<url-pattern>標簽裏的內容,然後得到sevlet-name

        -> 使用sevlet-name去servlet標簽中找到對應的相同名稱的servlet配置。

        -> 得到servlet配置中的servlet-class內容。     

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

   3.2 DIEA開發Servlet

    1 新建JAVA EE Web Appication工程。

    2 新建一個Servlet類。

    3 導入需要依賴的tomcat目錄下的servlet-api.jar包

        技術分享圖片  

  4 編寫FirstServlet的代碼.

  

package javademo;

import java.io.IOException;
import java.io.PrintWriter;

public class FirstrServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        pw.write("<h1> hello first servlet!</h1>");
    }
}

   

    5 編寫web,xml配置文件 dom4j才能正確解析

<servlet>
    <servlet-name>FirstrServlet</servlet-name>
    <servlet-class>javademo.FirstrServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>FirstrServlet</servlet-name>
    <!-- 響應所有請求-->
    <url-pattern>/FirstrServlet</url-pattern>
</servlet-mapping>


技術分享圖片

  3.3 詳解Servlet實現原理

JavaWeb-Servlet(一)