Servlet基礎
- Servlet技術簡介
Servlet是一種獨立于平臺和協議的服務器端的java技術,可以用來動態的生成Web界面,Servlet具有非常好的可移植性、強大的功能、更少的投資、更高的效率、更好的安全性等特點
Servlet一般用來處理HTTP的請求用來回傳一個回應,它能夠處理的請求有doGet()、doPost()、service()等方法,在開發Servlet時可以直接繼承javax.servlet.http.HttpServlet類
值得注意的是Servlet需要在web.xml中配置(或者直接在Servlet類前添加@webServlet),即(映射Servlet的名字、配置Servlet類、初始化引數、進行安全配置、過濾器、監聽器等),Servlet不僅可以生產HTML腳本輸出,還可以生產二進制表單進行輸出 - Servlet技術功能
(1)創建并回傳一個包含基于客戶請求性質的動態內容完整的HTML頁面
(2)創建可嵌入的一部分的HTML頁面到主HTML頁面
(3)與其他服務器資源(包括資料庫和基于java的應用程式)進行通信
(4)用于處理多個客戶機處理連接,接收多個客戶機的輸入,并將結果傳遞到客戶及上
(5)當允許單連接方式可以傳遞資料的情況下,在瀏覽器上打開applet的新連接,并保持打開狀態;
當運行客戶機與服務器簡單、高效的執行 繪畫的情況下,applet也可以啟動客戶瀏覽器和服務器之間的連接,可以定制協議通信
(6)將定制的處理提供給所有服務器的標準程式 - Servlet技術特點
- Servlet技術帶給程式猿最大的優勢就是它可以處理客戶端傳來的HTTP請求,并回傳一個回應,總的來說,Servlet具有如下特點
(1)高效
(2)方便
(3)跨平臺
(4)功能強大
(5)靈活性和可擴展性
(6)共享資料
(7)安全
-
Servlet的生命周期

-
Servlet與JSP的區別
(1)編程方式不同
(2)Servlet必須在編譯后才能執行
(3)運行速度不同 -
Servlet的代碼結構
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class test
*/
@WebServlet("/test")
public class test extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public test() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//可撰寫使用request讀取請求有關的資訊和表單資料的代碼
//可撰寫response指定的HTTP應答狀態的代碼和應答頭的代碼
PrintWriter out=response.getWriter();
//可撰寫out物件頁面中輸出資訊的代碼
}
}
Servlet常用介面和類
- Servlet介面
javax.servlet包中的類與介面封裝了一個抽象框架,建立請求和產生回應的組件(即Servlet),其中javax.servlet.Servlet是所有Java Servlet的基礎介面 - HttpServlet類
HttpServlet類存放在javax.servlet.http包中,是針對使用HTTP協議的Web服務器的Servlet類,HttpServlet類通過執行Servlet介面,能夠提供HTTP協議的功能 - ServletConfig介面
ServletConfig介面存放在javax.servlet包內,它是一個由Servlet容器使用的Servlet配置物件,用于在Servlet初始化時向他傳遞資訊 - HttpServletRequest介面
HttpServletRequest類存放在javax.servlet.http包內 - HttpServletResponse介面
HttpServletResponse類存放在javax.servlet.http包內,它代表了對客戶端的HTTP回應,HttpServletResponse介面給出了回應客戶端的Servlet()方法,它允許Servlet設定內容長度和回應的MIME型別,并且提供輸出流ServletOutoutStream - GenericServlet類
GenericServlet類存在javax.servlet包中,它提供了對Servlet介面的基本實作,它是一個抽象類,它的service()方法是一個抽象方法
Servlet開發
- Servlet的創建
創建一個Servlet通常涉及一下四個步驟
(1)繼承HttpServlet抽象類
(2)重裝適當的方法,如覆寫(或稱為重寫)doGet()方法或doPost()方法
(3)如果有HTTP通信可以獲取該資訊
(4)生成HTTP回應 - Servlet的配置
(1)在WEB-INF檔案夾下的web.xml檔案中配置Servlet
<?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>VoteServlet</servlet-name>
<servlet-class>
dom.VoteServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>VoteServlet</servlet-name>
<url-pattern>/VoteServlet</url-pattern>
</servlet-mapping>
</web-app>
(2)采用注解配置Servlet
//在撰寫的Servlet類上方撰寫
@WebServlet(urlPatterns={"/映射地址"},asyncSupported=true|false,
loadOnStartup=-1,name="Servlet名稱",displayName="顯示名稱",
initParam={@WebInitParam(name="username",value="值")})
public class Servlet extends HttpServlet {
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241467.html
標籤:其他
