隨筆-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 閱讀(1733) 評論(0)  編輯  收藏 所屬分類: 達內學習總結
          主站蜘蛛池模板: 伊宁县| 周宁县| 板桥市| 洞头县| 石嘴山市| 龙川县| 桐梓县| 建湖县| 五大连池市| 进贤县| 阜城县| 奉贤区| 子长县| 陕西省| 宁南县| 金湖县| 晋中市| 鹤庆县| 全椒县| 达拉特旗| 仁布县| 元朗区| 池州市| 厦门市| 普兰县| 淳化县| 微博| 肥乡县| 赞皇县| 静安区| 漠河县| 营山县| 盈江县| 长沙市| 安龙县| 孟津县| 重庆市| 万盛区| 栾川县| 五台县| 宾川县|