Servlet開發
用戶在瀏覽器中輸入一個網址并回車,瀏覽器會向服務器發送一個HTTP請求。服務器端程序接受這個請求,并對請求進行處理,然后發送一個回應。瀏覽器收到回應,再把回應的內容顯示出來。這種請求—響應模式就是典型的Web應用程序訪問過程。
JavaWeb應用程序中所有的請求—響應都是由Servlet完成的。Servlet是JavaWeb的核心程序,所有的網址最終都交給Servlet處理。Servlet并沒有main之類的執行方法。當用戶訪問服務器的時候,Tomcat是通過調用Servlet的某些方法來完成整個處理過程的。
Servlet是什么一個Servlet程序就是一個實現了特殊接口的Java類,它由支持Servlet的Web服務器調用和啟動運行。一個Servlet程序負責處理它所對應的一個或一組URL地址的訪問請求,并接收客戶端發出的訪問請求信息和產生響應內容。
Servlet程序可以完成普通Java程序所能完成的大多數任務:
瀏覽器提交的請求是遵循HTTP協議的文本。這段文本由服務器也就是Tomcat接收并解析,封裝成了HttpServletRequest類型的request對象。所有的HTTP頭數據都可以通過request相應的方法查詢到。Tomcat同時把輸出流封裝成為HttpServletResponse類型的response對象,通過設置response對象可以控制輸出的內容。在請求—響應的這個過程中,Tomcat把request對象、response對象作為參數,調用Servlet的相應方法,例如doPost(request,response)、doGet(request,response)等。
Servlet接口Servlet是一種實現了javax.servlet.Servlet接口的類。Servlet接口規定了特定的方法來處理特定的請求。Servlet規范是建立在HTTP規范基礎上的。HTTP 1.1 規范支持OPTIONS、GET、POST、HEAD、PUT、DELETE、TRACE等7中訪問方式,其中最常用的就是GET和POST了。
GET:表示查詢信息,URL中可以附帶少量的參數信息,但是URL總長度不能超過255個字符,并且參數會顯示在瀏覽器地址欄。
POST:表示提交信息,一般用于提交大數據信息或者文件,提交的內容不受長度限制,并且不會顯示在瀏覽器地址欄中。
FirstServlet在了解了Servlet基礎知識之后,我們可以試著編寫Servlet程序了。首先我們得認識一下Servlet的常用方法
1 import javax.servlet.*; 2 import java.io.IOException; 3 4 /** 5 * Created by Administrator on 2015/6/2. 6 */ 7 8 /* 9 *查看Servlet接口中的方法10 */11 public class AServlet implements Servlet {12 13 @Override14 public void destroy() {15 System.out.注意:Servlet的生命周期方法
接下來,我們寫一個簡單的Servlet程序,并試著編譯運行。 1 import javax.servlet.ServletException; 2 import javax.servlet.http.HttpServlet; 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 import java.io.IOException; 6 import java.io.PrintWriter; 7 8 /** 9 * Created by Administrator on 2015/6/2.10 */11 public class FirstServlet extends HttpServlet{12 13 public void service(HttpServletRequest request,HttpServletResponse response)14 throws ServletException,IOException{15 16 PrintWriter out = response.getWriter();17 out.println("<html>");18 out.println("<font size=30 color=red>www.baidu.com</font><br/>");19 out.println("<marquee>" + new java.util.Date() + "</marquee>");20 out.println("</html>");21 }22 }配置<servlet>我們只有servlet類文件還不行,因為要讓Web服務器知道瀏覽器怎么訪問這個Servlet,也就是說需要配置Servlet的類文件與訪問方式。這個配置在Web應用程序的描述文件web.xml里完成,配置如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 5 version="3.1"> 6 7 <servlet> 8 <servlet-name>xxx</servlet-name> 9 <servlet-class>AServlet</servlet-class>10 </servlet>11 12 <servlet-mapping>13 <servlet-name>xxx</servlet-name>14 <url-pattern>/HelloServlet</url-pattern>15 </servlet-mapping>16 17 <servlet>18 <servlet-name>yyy</servlet-name>19 <servlet-class>FirstServlet</servlet-class>20 </servlet>21 22 <servlet-mapping>23 <servlet-name>yyy</servlet-name>24 <url-pattern>/FirstServlet</url-pattern>25 </servlet-mapping>26 </web-app>
<servlet>和</servlet>分別為Servlet配置的開始標簽和結束標簽。中間的部分就是一個Servlet的配置信息。其中<servlet-name>與<servlet-class>屬性分別為Servlet的名稱和類名,都是必須配置的。<servlet-name>可以是任意的字符串,但是必須保證該名稱在web.xml里唯一。
1 <init-param>2 <param-name>message</param-name>3 <param-value>Welcome to FirstServlet</param-value>4 </init-param>5 <load-on-startup>1</load-on-startup>
使用<init-param>標簽可以配置一個初始化參數,包括一個參數名稱和一個參數值。一個Servlet可以配置多個初始化參數。Servlet中可以使用方法getServletContext().getInitParam(String paramName)來取得配置的初始化參數值。
標簽<load-on-startup>配置該Servlet的加載方式,可選值為0和1,。如果配置為1,Tomcat在啟動的時候就加載該Servlet,否則,Tomcat會在第一次請求該Servlet的時候才加載。
編譯運行Servlet
新聞熱點
疑難解答