三 Servlet Infterface and demo

在我上篇關於Servlet API 的文章中,我說明了在創建任何Servlet時你必須直接或間接地實現Servlet接口(間接地實現就是通過擴張那些實現了Servlet接口的類,這些類是GenericServlet和HttpServlet).

 

如果想創建協議相關的servlet,例如htt servlet,那麼就應該擴展HttpServlet類,對於協議不相關的servlet就以應該擴展Genericervlet類。 在這裏我不會詳細解釋GenericServlet,HttpServlet,因爲我會在其他獨立章節解釋他們。

 

簡單來說有三種方式創建servlet

1) 擴展HttpServlet 類

2)擴展GenericSerlet類

3)通過擴展Servlet接口

注意:但是,您應該始終選擇創建servlet的第一種方式,即通過擴展HttpServlet類。

 

接口SErvlet 接口中的方法

 

這裏是在Servlet接口中的清單:

1)void destory(): 該方法在Servlets壽命週期最後面被servlet容器調用。與service()方法在生命週期被多次調用不同,這個方法在生命週期完成是被容器調用一次。一旦destory()被容器調用就不會在調用servlet的service()方法。

2)void init(ServletConfig config): 當Servlet容器啓動時(當web服務器啓動時開啓)載入所有的servlet並實例化它們。在每個servlet實例調用init()後,這個方法就會初始化servlet。

3) void service(SerevletRequest req,ServletResponse res): 這是唯一的在servlet生命週期中被多次調用的方法。這個方法處理客戶端的請求,在服務器接受一次用戶請求就調用一次此方法。

4)ServletConfig getServletConfig(): 返回一個ServletConfig對象,包含此servlet初始化和啓動參數。

5)java.lang.String getServletInfo(): 返回關於此servlet的信息,例如作者,版本和版權。

 

 

例子:

在這個例子中,我們通過擴展Servlet接口創建一個servlet類。

 

index.html

 

<a href="welcome">Click here to call the servlet</a>

 

DemoServlet.java


 

mport java.io.*;

import javax.servlet.*;

public class DemoServlet implements Servlet{

ServletConfig config=null;

public void init(ServletConfig config){

this.config=config;

System.out.println("Initialization complete");

}



public void service(ServletRequest req,ServletResponse res)

throws IOException,ServletException{

res.setContentType("text/html");

PrintWriter pwriter=res.getWriter();

pwriter.print("<html>");

pwriter.print("<body>");

pwriter.print("<h1>Servlet Example Program</h1>");

pwriter.print("</body>");

pwriter.print("</html>");

}

public void destroy(){

System.out.println("servlet life cycle finished");

}

public ServletConfig getServletConfig(){

return config;

}

public String getServletInfo(){

return "A Demo program written by Chaitanya";

}

}

web.xml

<web-app>

<servlet>

<servlet-name>Beginnersbook</servlet-name>

<servlet-class>DemoServlet</servlet-class>

</servlet>



<servlet-mapping>

<servlet-name>Beginnersbook</servlet-name>

<url-pattern>/welcome</url-pattern>

</servlet-mapping>

</web-app>

 

 

 

 

具體操作:

提前安裝好jdk和tomcat,我這裏安裝的是jdk8 和tomcat7.

1) 將tomcat 中lib文件夾下的servlet.jar 複製到jdk的jre/lib/ext目錄下,方便我們後面的編譯。

cp ./lib/servlet.jar /opt/jdk8/jre/lib/ext/

2) 在tomcat 的webapps 文件夾中創建我們的目錄demoservlet,在此目錄中創建WEB-INF,在WEB-INF中創建classes文件夾用來保存我們將來的servlet的class文件,在WEB—INF 下創建web.xml文件

mkdir demoservlet

mkdir ./demoservlet/classes

touch ./demoservlet/web.xml

3)複製我們的DemoServlet.java 到上面的classes文件夾下,並編譯,填充web.xml內容

javac DemoServlet.java

4) 啓動tomcat並驗證,瀏覽器輸入:http://localhost:8080/demoservlet/welcome

如果看到大寫黑體的“Servlet Example Program”

那麼則證明成功了。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章