隨筆-159  評論-114  文章-7  trackbacks-0

          javax.servlet
          Interface Servlet

          是規(guī)范的接口,為了深入了解Servlet原理,要實際開發(fā)一個實現(xiàn)該接口的類,來作為第一個Servlet。

          public void init(ServletConfig config)
                    throws ServletException

          這個方法,是由容器在實例化一個Servlet實例后,確切會調(diào)用該方法一次。通過判斷是否拋出異常來確認(rèn)Servlet是否被正確初始化。

          public void service(ServletRequest req,
                              ServletResponse res)
                       throws ServletException,
                              java.io.IOException

          這個方法,是我們實現(xiàn)業(yè)務(wù)邏輯的方法,req和res就是由Web服務(wù)器對于請求和相應(yīng)的有效封裝。

          沒有什么神秘的,java網(wǎng)絡(luò)編程中,ServerSocket的accept方法返回之后,會獲得相應(yīng)的一個Socket對象,通過該對象可以進而獲得對應(yīng)客戶端的輸入流和輸出流。在對其進行封裝就進而到Request和Response對象。

          傳入service方法,req可以獲得請求的頭部信息,res.getWriter,獲得一個輸出,進行輸出信息,作為真正響應(yīng)。

          public void destroy()

           This method is only called once all threads within the servlet's service method have exited or after a timeout period has passed.

          只有在service方法運行完,或者一個timeout后,會被調(diào)用。

          After the servlet container calls this method, it will not call the service method again on this servlet.

          一旦調(diào)用它,就不會再提供服務(wù)。

          public ServletConfig getServletConfig()

          返回傳入init方法的那個ServletConfig,也就是服務(wù)器的ServletConfig。這個方法主要為了其他實例來使用ServletConfig實例。

          public java.lang.String getServletInfo()

          好比普通的toString()方法,返回注冊信息。


          編譯注意事項:

          要在環(huán)境變量的classpath中將servlet-api.jar的路徑加上,這樣編譯才能通過。

          所以最好先準(zhǔn)備好tomcat服務(wù)器,以便利用它內(nèi)置的jar文件。

          D:\jakarta-tomcat-5.0.19\common\lib\servlet-api.jar

          ======================================

          編譯好后,是一個帶包結(jié)構(gòu)的.class文件目錄層次。

          如何部署呢?

          很簡單,在D:\jakarta-tomcat-5.0.19\webapps中建立一個自己的應(yīng)用文件夾,例如:imshark

          這時就可以將靜態(tài)網(wǎng)頁放入該文件夾了,然后要按照java web 應(yīng)用的規(guī)范,建立一個WEB-INF的文件夾,然后里面放置一個標(biāo)準(zhǔn)的web.xml文件,就可以訪問了。

          web.xml

          <?xml version="1.0" encoding="ISO-8859-1"?>

          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
              version
          ="2.4">
              

          </web-app>


          然后部署servlet,在WEB-INF文件夾中,建立一個classes的目錄,然后,將帶目錄結(jié)構(gòu)的.class文件放入該文件夾,然后修改web.xml

          <?xml version="1.0" encoding="ISO-8859-1"?>

          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
              version
          ="2.4">
              
               
          <servlet>
                  
          <servlet-name>TimeServlet</servlet-name>
                  
          <servlet-class>imshark.servlet.basic.TimeServlet</servlet-class>
              
          </servlet>
              
               
          <servlet-mapping>
                  
          <servlet-name>TimeServlet</servlet-name>
                  
          <url-pattern>/getTime.jsp</url-pattern>
              
          </servlet-mapping>

          </web-app>

          1.gif

          http://localhost:8080/imshark/getTime.jsp

          所以可看出getTime.jsp是一個虛擬的路徑地址,并不實際存在,完全有web.xml構(gòu)造的。

          以上就是最基本的Servlet的知識點。



          posted on 2006-02-09 00:01 北國狼人的BloG 閱讀(1738) 評論(0)  編輯  收藏 所屬分類: 達(dá)內(nèi)學(xué)習(xí)總結(jié)
          主站蜘蛛池模板: 江阴市| 伽师县| 泰兴市| 寿光市| 随州市| 弋阳县| 穆棱市| 金秀| 马鞍山市| 阿拉善盟| 肇州县| 富川| 昔阳县| 当涂县| 灵山县| 正定县| 达拉特旗| 确山县| 凤山县| 德州市| 广汉市| 嘉黎县| 崇州市| 长兴县| 余江县| 朝阳区| 治多县| 龙口市| 栾城县| 武功县| 来凤县| 拉萨市| 南靖县| 靖边县| 大连市| 堆龙德庆县| 湘潭县| 简阳市| 彩票| 佛学| 枣阳市|