Servlet調用流程

原文:http://blog.csdn.net/lovesummerforever/article/details/8980325



首先說說我們的Tomcat7.0的目錄結構

       包括目錄:
       bin

       conf

       lib

       logs

       temp

       webapps

       work

 

       bin文件:

                   存放各種平臺下啓動和關閉Tomcat的腳本文件。

                   startup.bat是windows下啓動tomcat的文件。

                   shutdown.bat是關閉tomcat的文件。

      conf目錄:

                   Tomcat的各種配置文件,tomcat啓動時需要讀取的配置文件:server.xml

      lib目錄:

                 存放Tomcat所需的各種jar文件。

      logs目錄:
                 存放Tomcat的日誌文件。

      temp目錄:

                  臨時文件目錄,用於存放Tomcat運行時的臨時文件。

      webapps目錄:

                  web應用的發佈目錄,把java編寫的web應用或打包成的war格式的web應用文件放入該目錄下,就能通過Tomcat服務器訪問了。

       work目錄:

                Tomcat把JSP文件編譯生成Servlet文件存放在這個目錄下。

 

數據傳送流程:

       

  

java servlet

        我們要在webapps目錄下建立一個我們javaweb項目的目錄結構test_servlet:

        WEB-INF/classes web.xml lib 

        lib文件:存放java包,數據庫驅動程序等等。

        classes文件:存放已編譯好的類。

        Web.Xml:配置一些信息,例如Servlet的配置,名字,路徑等,告訴我們的Tomcat我們使用的哪個Servlet。

        我們依次來寫:

        servlet代碼:

      

  1. <span style="font-size:14px;">//引入java的包。  
  2. import javax.servlet.http.*;  
  3. import java.io.*;  
  4. import javax.servlet.*;  
  5. //第一個Servlet程序。  
  6. public class LoginServlet extends HttpServlet  
  7. {  
  8.     //指定調用哪個servlet。  
  9.     //get提交和post提交兩種方式。  
  10.     public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException  
  11.     {  
  12.         //取得客戶端的數據。  
  13.         String username = request.getParameter("username");  
  14.         String password = request.getParameter("password");  
  15.           
  16.         System.out.println("username" + username);  
  17.         System.out.println("password" + password);  
  18.         //向瀏覽器上寫數據。可以有流。字符流。  
  19.         //setContext設置響應的內容類型。設置爲html類型或者中文。  
  20.         response.setContentType("text/html;charset=GB18030");  
  21.         //response.getWriter().println("Login Success!!!");  
  22.         //response.getWriter().println("登錄成功!!!");  
  23.         response.getWriter().println("<html>");  
  24.           
  25.         response.getWriter().println("<head>");  
  26.         response.getWriter().println("<title>登錄信息</title>");  
  27.           
  28.         response.getWriter().println("</head>");  
  29.         response.getWriter().println("<body>");  
  30.         response.getWriter().println("歡迎【" + username + "】登錄成功!!!");  
  31.           
  32.         response.getWriter().println("</body>");  
  33.         response.getWriter().println("</html>");  
  34.           
  35.     }  
  36.     //採用post的提交方式。  
  37.     public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException  
  38.     {  
  39.         doGet(request,response);  
  40.     }  
  41. }</span>  


         雖然我們引入了jar包,但是程序是否能從找到tomcat的servlet  jar包,我們需要配置一下用戶的環境變量,把lib\servlet-api.jar包配置到classpath變量。當然tomcat也是java編碼的,所以我們也配置一下JAVA_HOME變量,可以在tomcat的批處理命令startup.bat中進行配置,set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_43。

         然後把這個java文件編譯成.class 文件,放到classes文件夾中。

         html代碼:

       

  1. <span style="font-size:14px;"><html>  
  2.     <head>  
  3.         <title>登錄</title>  
  4.     </head>  
  5.     <body>  
  6.         <!--這是絕對路徑-->  
  7.         <!--相對路徑寫法:action="LoginServlet"-->  
  8.         <form action="http://127.0.0.1:8080/test_servlet/LoginServlet">  
  9.             用戶:<input type="text" name="username"><br>  
  10.             密碼:<input type="password" name="password"><br>  
  11.             <input type="submit" value="登錄">  
  12.         </form>  
  13.     </body>  
  14. </html></span>  

         Web.Xml :

         

  1. <span style="font-size:14px;"><?xml version="1.0" encoding="ISO-8859-1"?>  
  2.   
  3. <web-app xmlns="http://java.sun.com/xml/ns/javaee"  
  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  6.                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  7.   version="3.0"  
  8.   metadata-complete="true">  
  9.           
  10.     <servlet>  
  11.         <servlet-name>MyServlet</servlet-name>  
  12.         <servlet-class>LoginServlet</servlet-class>  
  13.     </servlet>  
  14.       
  15.     <servlet-mapping>  
  16.         <servlet-name>MyServlet</servlet-name>  
  17.         <url-pattern>/LoginServlet</url-pattern>  
  18.     </servlet-mapping>  
  19. </web-app></span>  


         啓動Tomcat就可以執行成功。

         下面是servlet的調用過程,也可以用HTTPLook軟件來跟蹤:

          

         

       作爲一個java的初學者來說,開始一個servlet讓我很模糊,什麼是servlet呢?有道上說是servlet(小服務程序),學過了發現,也是26個英文字母的組合,其實說白了就是java代碼,但是因爲他的用途,人們給他抽象總結了一個層次,叫做servlet,。就相當於縣長首先是人,再是縣長~,貌似搞得這兒複雜~不也是個幹活的麼~

      同樣是網頁,.net開發的網頁和java開發的有什麼區別呢?.net中有沒有servlet?據說.cs文件寫“servlet”就相當於servlet了。呵呵,有待更深的研究,加油!


發佈了12 篇原創文章 · 獲贊 21 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章