天天看點

Servlet 技術總結

一、什麼是Servlet

Servlet 是 Server+Applet,是伺服器端的JAVA應用程式,但并不是所有的伺服器端的JAVA應用程式都可以叫Servlet,隻有當伺服器端的程式使用leServlet API的時候,這個服務端的程式才能稱為Servlet 。 二、主要的Servlet API

1、javax.servlet.Servlet接口  所有的Java Servlet的基礎接口類,規定了必須由Servlet具體類實作的方法集。

2、javax.servlet.GenericServlet類 這是Servlet的通用版本,是一種與協定無關的Servlet

3、javax.servlet.HttpServlet類 是在GenericServlet類基礎上擴充的基于Http協定的Servlet 三、建立Servlet的三種方式(針對Servlet API)

1、實作Servlet接口  需要實作所有方法(init,destroy,service....)

2、繼承GenericServlet類 隻需要重寫一個方法(service,協定無關的處理方法)

3、繼承HttpServlet(常用) 不需要重寫任何方法(重寫doGet和doPost,分别用于處理get和post請求) 小提示:

1、每個JSP頁面中包含的java代碼最終也會生成一個對應的Servlet 。

2、init方法和destroy方法隻會在Servlet建立後(初始化Servlet)和銷毀前執行執行一次 四、Servlet生命周期(整個生命周期都是由Servlet容器負責)

1、加載和執行個體化  

2、初始化 

3、提供服務、請求處理(多線程響應)

4、銷毀 五、使用Servlet的步驟:

1、采用繼承HttpServlet類的方法建立一個Servlet類,重寫其中的doGet和doPost方法 。分别對應get和post請求 。

2、配置Web.xml ,在Web.xml中添加以下配置:

 <servlet>

   <servlet-name>MyServlet</servlet-name>           <!--自定義Servlet名字-->

   <servlet-class>com.pb.servlet.MyServlet</servlet-class>  <!--Servlet對應的全限定類名-->

   <init-param>                  <!--初始化Servlet的參數,可以沒有通過初始化方法中的ServletConfig類型參數的getInitParameter(String paramName)方法可以獲得-->

    <param-name>author</param-name>   

    <param-value>zzl</param-value>

   </init-param>

  </servlet>

  <servlet-mapping>

   <servlet-name>MyServlet</servlet-name>  <!--和上面的Servletname要對應-->

   <url-pattern>/MyServlet</url-pattern>   <!--以下是url-pattern的多種寫法,可以同時存在,優先順序是精确比對到模糊比對-->

  </servlet-mapping>

  <servlet-mapping>

   <servlet-name>MyServlet</servlet-name>

   <url-pattern>/demo/MyServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

   <servlet-name>MyServlet</servlet-name>

   <url-pattern>/demo/*</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

   <servlet-name>MyServlet</servlet-name>

   <url-pattern>*.do</url-pattern>

  </servlet-mapping>

3、啟動tomcat,在位址欄上輸入http://localhost:8080/ServletProject/MyServlet 即可調用調用對應的servlet進行處理,當然除了/MyServlet外,其它幾種形式的url-pattern都是可以的 。 六、Servlet類中如何獲得頁面參數和進行頁面跳轉

1、獲得頁面參數可以使用HttpServletRequest的getParameter(String paramName)來獲得,paramName與頁面中的元素的name要一緻。

2、跳轉頁面可以使用HttpServletRequest對象的轉發方法(getRequestDispatcher(String url))或者是HttpServletResponse對象的重定向方法(sendRedirect(String url))。

繼續閱讀