博客 / 詳情

返回

什麼是Servlet?動力節點servlet教程帶你快速實戰入門

sun公司制定的一種用來擴展web服務器功能的組件規範(服務器端的Java應用程序)。具有獨立於平台和協議的特性,可以生成動態的Web頁面。它擔當客户請求(Web瀏覽器或其它HTTP客户程序)與服務器響應(HTTP服務器上的數據庫或應用程序)的中間層

1、用來擴展web服務器功能(生成動態的Web頁面)

以前的CGI效率不高,用servlet來擴展替換CGI

客户端發送請求給web服務器,web服務器啓動並調用servlet。servlet容器負責解析數據包,也包括網絡通訊相關的一些處理。然後將解析之後的數據交給servlet來處理。

注意:可以不使用服務器,而直接向servlet容器發送請求。因為servlet容器也有通信模塊,所以可以直接把servlet容器當做web服務器來使用。

2、組件規範

(1) 組件:是符合一定規範,並且實現部分功能的可以單獨部署的軟件模塊。組件必須部署到容器中才能運行。

(2) 容器:也是符合一定規範,並且提供組件的運行環境的程序。

注意:單個的組件,單個的容器都沒有意義。只有放在一起才能運行

Tomcat就是一個servlet容器也是一個web服務器

3、servlet容器是怎麼運行的:

瀏覽器箱web服務器發送請求web服務器接收數據發送servlet容器然後實例化servlet調用init方法初始化然後調用service方法利用doget或者dopost處理

servlet將處理的結構返回給web服務器然後發送給客户端

servlet的優點只創建一個實例只初始化一次但是可以被調用多次。不同GCI創建多個實例,servlet存在線程安全問題。servlet效率比較高
99cb8334f99d449b80092d96ad604326

servlet的創建

public class servletest extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public servletest() {
        super();
    }
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         response.setContentType("text/html");
                  PrintWriter out = response.getWriter();
                  out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
                  out.println("<HTML>");
                  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
                  out.println("  <BODY>");
                  out.print("    This is ");
                 out.print(this.getClass());
                  out.println(", using the GET method");
                  out.println("  </BODY>");
                  out.println("</HTML>");
                  out.flush();
                  out.close();
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          response.setContentType("text/html");
                   PrintWriter out = response.getWriter();
                   out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
                   out.println("<HTML>");
                   out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
                   out.println("  <BODY>");
                  out.print("    This is ");
                   out.print(this.getClass());
                   out.println(", using the POST method");
                   out.println("  </BODY>");
                   out.println("</HTML>");
                  out.flush();
                   out.close();
    }
 
}

web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>zz.servletest</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/test/hello</url-pattern>
  </servlet-mapping>
</web-app>

啓動Tomcat 輸入 :

localhost8080/zzservlet/test/hello

注意:

web.xml中servlet是servlet實例的一個線程 可以有多個servlet標籤每個servlet代表一個請求處理

servletname是這個servlet的名稱 可以為任意值但必須和servlet-mapping中的對應

servlet-class 是對應的Java類,即根目錄下的Java目錄 即不需要工程名 工程名是根目錄,class是文件名稱即package後的名稱

url-pattern 是訪問的路徑 輸入的訪問地址為 網址+端口號+工程名+訪問的路徑

servlet與jsp的區別 即servlet 需要一個一個的out.print 而jsp 不需要一句一句地輸出 其他的沒有區別

Servlet如何快速入門?

動力節點的servlet教程,可以説是servlet開發講得最詳細的了,servlet是所有Javaweb開發的基礎,通過servlet的學習,我們可以觀察到最初級的瀏覽器和服務器之間交互的全過程,視頻中會針對servlet開發的所有相關知識點,如對於get和post的處理,響應方式,轉發和重定向,上下文等相關技術做最深入的講解。

最後會搭配一個登陸操作及顯示學生信息列表的綜合案例,對servlet開發做一個最完整的總結。

Servlet在線觀看:

https://www.bilibili.com/vide...

Servlet學習資料下載:

http://www.bjpowernode.com/?s...

user avatar guizimo 頭像 esunr 頭像 gaoming13 頭像 yilezhiming 頭像 dashnowords 頭像 warn 頭像 nealyang231 頭像 huashenjianlingshouhuni 頭像 hexuan_5ea1a9d57db1a 頭像 maogexiaodi 頭像 minnanitkong 頭像 zhangfisher 頭像
12 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.