java Servlet結構概述
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FirstServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
public void service(HttpServletRequest request,HttpServletResponse response)
throws IOException{
//設定響應的內容型別
response.setContentType("text/html;charset=utf-8");
//取得輸出物件
PrintWriter out = response.getWriter();
out.println("<html><body>");
//在瀏覽器中顯示:第一個Servlet類
out.println("第一個Servlet類");
out.println("</body></html>");
}
}
先從引入的包說明
- java.io.PrintWriter
引入PrintWriter類,使用getWriter()獲取PrintWriter型別的物件可以直接輸出字元文字內容。
PrintWriter out = response.getWriter();
out.println("第一個Servlet類");
- javax.servlet.ServletConfig
在第一個初始化方法裡面使用了ServletConfig的物件,這是Servlet容器或者是Servlet引擎在建立好Servlet物件後,就會呼叫初始化方法void init(ServletConfig config),接收一個ServletConfig型別的引數,Servlet通過這個引數向Servlet傳遞初始配置資訊
@WebServlet(name = "thirdServlet", urlPatterns = { "/thirdServlet" },
initParams={@WebInitParam(name = "firstParam", value = "one"),
@WebInitParam(name = "secondParam", value = "two")})
public void init(ServletConfig config) throws ServletException {
//獲得引數firstParam的值
first = config.getInitParameter("firstParam");
second = config.getInitParameter("secondParam");
System.out.println("第一個引數值:" + first);//輸出one
System.out.println("第二個引數值:" + second);//輸出teo
}
- javax.servlet.http.HttpServlet
Servlet的介面實現類有兩個:GenericServlet和HttpServlet
GenericServlet是一個抽象類,該類俄日Servlet提供了部分實現,他並沒有實現HTTP請求處理
HttpServlet是GenericServlet的子類,它繼承了GenericServlet所有方法,並且為HTTP請求中的POST、GEt等型別提供了具體的操作方法
所以我們通常寫的Servlet類都是繼承HttpServlet
HttpServlet的對於POST、GET的具體操作方法就是doPost()以及doGet()
- public void service(HttpServletRequest request,HttpServletResponse response)
再看一下service()方法
通過service()方法將HTTP請求和響應分別強轉為HttpServletRequest和HttpServletResponse型別的物件。分別傳遞客戶端的請求以及響應客戶端的請求
此外由於Httpservlet類在重寫的service()方法中,為每一種HTTP請求方式都定義了對應的doxxx()方法,因此當我們寫的Servlet類繼承HttpServlet類繼續根據請求方式,重寫對應的doXxx()方法即可,而不需要重寫service()方法 - doPost() doGet()
一般情況,如果無論使用者請求型別是get還是post,伺服器的處理過程都是完全相同的,那麼可以只在doPost()方法中編寫處理過程,而在doGet()方法中呼叫doPost()方法即可;反之亦可。
相關文章
- java Servlet結構概述3之請求響應1JavaServlet
- Servlet概述Servlet
- Servlet 體系結構Servlet
- Servlet生命週期(概述)Servlet
- XML 樹結構概述XML
- C 結構體概述結構體
- Java-Servlet知識總結JavaServlet
- Java Servlet詳解(體系結構+註解配置+生命週期)JavaServlet
- PostgreSQL體系結構概述SQL
- 資料結構筆記——概述資料結構筆記
- 資料結構小白系列之資料結構概述資料結構
- Java之ServletJavaServlet
- html概述及html文件基本結構HTML
- Redis概述及基本資料結構Redis資料結構
- Java 多執行緒 - 總結概述Java執行緒
- 2 多租戶體系結構概述
- 資料結構與演算法——概述資料結構演算法
- 資料結構 - 概述及其術語資料結構
- servlet再次總結Servlet
- 【Java基礎】ServletJavaServlet
- Java集合 - 集合知識點總結概述Java
- Java概述Java
- Java 概述Java
- Spring Security系列之體系結構概述(一)Spring
- Oracle體系結構概述與SQL解析剖析OracleSQL
- servlet知識總結Servlet
- Servlet面試總結Servlet面試
- java servlet 生命週期JavaServlet
- Java中Servlet技術JavaServlet
- Java 異常(一) 異常概述及其架構Java架構
- Java 集合概述Java
- java集合概述Java
- 關於Servlet小總結Servlet
- 【Java】類的結構Java
- Java資料結構Java資料結構
- MySQL底層概述—1.InnoDB記憶體結構MySql記憶體
- java架構的程式碼結構Java架構
- 【JVM】JVM 概述、記憶體結構、溢位、調優(基礎結構+StringTable+Unsafe+ByteBuffer)JVM記憶體