還記得年前在看尚學堂教程時候馬先生曾經說過“JavaScript在客戶端無所不能,而Servlet在服務器端無所不能”。這句話讓我感覺Servlet深不可測。
              而在后來知道JSP,JSF,還有一系列WEB開發框架也是基于Servlet的時候更是對它懷有憧憬之神往。所以從今天起,開始繼續重新整理下Servlet。
              自己看的東西,面上話就不說了,概念的東西網上一搜都有。
              J2EE就是一系列標準,Servlet屬于它所以也不例外。一些WEB容器符合這標準規范,就可以在其中使用Servlet。只用過TOMCAT所以別的就不說了。
              在TOMCAT中,WEB程序都在“webapps”這個文件夾中。要符合Servlet標準,就有類似與這樣的一個結構:1、在項目目錄下必須存在“WEB-INF”這個目錄。2、“WEB-INF”下必須有一個“web.xml”文件,這個文件符合J2EE規范。3、如果要跑Servlet在“WEB-INF”下存在一個“classes”文件夾里面存放編譯好的Servlet文件(*.class)。4、“WEB-INF”下包含一個“lib”文件夾來存放所用到的“jar包”。
             
          Servlet是一個接口,Servlet是在服務器端運行的程序,也可以在除HTTP服務器外的其他服務器端運行,一般情況來說我們要實現Servlet這個接口就實現它的子類,GenericServle直接實現Serlvet但是個抽象類,所以直接實現GenericServle的子類HttpSerlvet。
              當客戶端請求服務器的時候所制定的Servlet會被調用。doGet和doPost方法,直接在url訪問是調用doGet只有在通過Form提交時候并且Form的action屬性為post時候才調用doPost方法。
              這兩個方法里都有兩個參數“request”和“response”request是取得從客戶端拿來的數據,而response是對客戶端發送數據。
              新建一個Servlet,名字為“HelloWorld.java”我把代碼貼下面。(建的時候如果IDE是不支持Servlet的話就先吧Servlet-api.jar這個包導入工程中,比如在用Eclipse做開發的時候。)
          import java.io.IOException;
          import java.io.PrintWriter;

          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;


          public class HelloWorld extends HttpServlet {


              
          public void doGet(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException {
                 
                  response.setContentType(
          "text/html");//文件類型
                 
                  PrintWriter out 
          = response.getWriter();//拿到“out”
                 
                  // 簡單,不說了,一系列的客戶端輸出
                  
               
                  out.println(
          "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
                  out.println("<HTML>");
                  out.println(
          "  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
                  out.println(
          "  <BODY>");
                  out.print(
          "HelloWorld!");
                  out.println(
          "  </BODY>");
                  out.println(
          "</HTML>");
                  out.flush();
                  out.close();
              }

          }
              建好這個文件之后編譯它,然后把它放在剛才說的“WEB-INF/classes/”下面

          這樣我就差配web.xml了,這個“web.xml”是web項目的配置核心。
          下面在WEB-INF下建立個文件,改名成"web.xml"
          把下面代碼寫到里面:
          <?xml version="1.0" encoding="UTF-8"?> 

          <web-app version="2.4" 
          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"
          > 
          <servlet> //Servlet配置
              
          <servlet-name>Hello</servlet-name>       //這里是設置剛才寫的servlet的名字可以隨便起
              
          <servlet-class>HelloWorld</servlet-class>  //這里是class文件的名字,建立從classes目錄下HelloWorld.class文件把文件名字拷貝過來,不要后綴。。。。
          </servlet> 

          <servlet-mapping> //Servlet映射
              
          <servlet-name>Hello</servlet-name> //這里是指要訪問這個URL的時候對應需要調用哪個 Servlet。注意跟上面的“servlet名字”一直,而不是類名。
              
          <url-pattern>/Hello</url-pattern> //設置需要訪問的url是跟在你webapps下面項目名字后的記得以“/”開頭
          </servlet-mapping> 
          </web-app>
          都配完了。
          現在開啟tomcat服務器。這么簡單的程序,應該不出錯的,如果出錯,最多的應該是web.xml文件的錯誤,配置問題,請自己檢查。而且注意,servlet-class里“HelloWorld”要與你的HelloWorld.class名字大小寫一致。
          打開瀏覽器。如果你跟我的目錄一模一樣的話,就應該輸入 http://localhost:8080/TestServlet/Hello

              今天心情不好,就寫到這里吧。


          posted on 2008-06-04 22:15 leweslove 閱讀(282) 評論(0)  編輯  收藏 所屬分類: J2EE

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          Copyright@2008-2009 By Evan
          主站蜘蛛池模板: 雷州市| 梅河口市| 巴彦县| 融水| 象山县| 洛阳市| 离岛区| 新乡市| 临夏县| 阜城县| 汉寿县| 普洱| 景泰县| 宣化县| 嘉鱼县| 咸宁市| 巴南区| 濮阳市| 繁昌县| 宝山区| 吉首市| 福州市| 衢州市| 新闻| 黔南| 平江县| 新乐市| 甘洛县| 鞍山市| 高台县| 延寿县| 华宁县| 镶黄旗| 内黄县| 巴青县| 玉屏| 肇源县| 永吉县| 宣城市| 北安市| 高安市|