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

          javax.servlet
          Interface Servlet

          是規范的接口,為了深入了解Servlet原理,要實際開發一個實現該接口的類,來作為第一個Servlet。

          public void init(ServletConfig config)
                    throws ServletException

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

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

          這個方法,是我們實現業務邏輯的方法,req和res就是由Web服務器對于請求和相應的有效封裝。

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

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

          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后,會被調用。

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

          一旦調用它,就不會再提供服務。

          public ServletConfig getServletConfig()

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

          public java.lang.String getServletInfo()

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


          編譯注意事項:

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

          所以最好先準備好tomcat服務器,以便利用它內置的jar文件。

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

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

          編譯好后,是一個帶包結構的.class文件目錄層次。

          如何部署呢?

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

          這時就可以將靜態網頁放入該文件夾了,然后要按照java web 應用的規范,建立一個WEB-INF的文件夾,然后里面放置一個標準的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的目錄,然后,將帶目錄結構的.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構造的。

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



          posted on 2006-02-09 00:01 北國狼人的BloG 閱讀(1738) 評論(0)  編輯  收藏 所屬分類: 達內學習總結
          主站蜘蛛池模板: 南投市| 内丘县| 秦安县| 桦南县| 盘山县| 兴山县| 鸡东县| 石渠县| 清丰县| 申扎县| 桦川县| 周口市| 察隅县| 芦山县| 内乡县| 临猗县| 灌云县| 林甸县| 富川| 昭苏县| 务川| 申扎县| 绥阳县| 攀枝花市| 赣州市| 晋城| 化隆| 青川县| 集贤县| 麟游县| 东阳市| 泾川县| 朝阳区| 惠来县| 陇南市| 金山区| 武城县| 宁夏| 康定县| 青河县| 合肥市|