JavaEEDay39 Tomcat

JavaEEDay39 Tomcat

@toc

一、Tomcat從入門到熟悉

(一) B/S 和 C/S

  • B/S:瀏覽器和服務器架構
    www.baidu.com www.taobao.com
    • 好處:
      1 . 不需要符合各種平臺環境的客戶端,有瀏覽器就可以
      2 . 更新方便,服務器更新,瀏覽器只要刷新就可以獲取到最新的信息
  • C/S: 客戶端和服務器架構
    QQ 微信 快手 LOL PUBG
    • 好處:
      1 . 用戶體驗比B/S略好
    • 弊端:
      1 . 如果要使用服務,必須裝軟件
      2 . 服務器更新之後,要求客戶端頁隨之更新

      對於中小企業更多的會選擇使用B/S
      HTML CSS JavaScript JavaEE MySQL/Oracle Tomcat Nginx

(二) 什麼是服務器

計算機:CPU 內存 硬盤 帶寬
流量(帶寬)最重要:

服務器除了硬件之外,還有軟件:
這個軟件是用來提供共享資源能力的,讓網絡端的電腦能夠訪問服務器 。例如 Tomcat Nginx apche 組織
產品有:
WebLogic:BEA公司,收費的,完全支持JavaEE規範
WebSphere:IBM公司,收費的,完全支持JavaEE規範
JBoss: RedHat公司,收費的,完全支持JavaEE規範
Tomcat:Apche組織,完全免費開源的,支持我們能夠使用到的JavaEE 部分規範,例如 Servlet JSP JDBC

數據庫服務器:安裝了數據庫軟件的一個電腦,MySQL Oracle SQLServer
WEB服務器:提供WEB服務器的一臺電腦,安裝WEB服務器軟件

二、Tomcat的基本使用

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,它早期的名稱爲catalina,後來由Apache、Sun 和其他一些公司及個人共同開發而成,並更名爲Tomcat。Tomcat 是一個小型的輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選,因爲Tomcat 技術先進、性能穩定,成爲目前比較流行的Web 應用服務器。Tomcat是應用(java)服務器,它只是一個servlet容器,是Apache的擴展,但它是獨立運行的。目前最新的版本爲Tomcat 8.0.24 Released。

Tomcat不是一個完整意義上的Jave EE服務器,它甚至都沒有提供對哪怕是一個主要Java EE API的實現;但由於遵守apache開源協議,tomcat卻又爲衆多的java應用程序服務器嵌入自己的產品中構建商業的java應用程序服務器,如JBoss和JOnAS。儘管Tomcat對Jave EE API的實現並不完整,然而很企業也在漸漸拋棄使用傳統的Java EE技術(如EJB)轉而採用一些開源組件來構建複雜的應用。這些開源組件如Structs、Spring和Hibernate,而Tomcat能夠對這些組件實現完美的支持。

  • 1 . 從官網下載Tomcat服務器軟件: https://tomcat.apache.org/download-80.cgi#8.0.48

  • 2 . 下載Tomcat 8.0.48:這裏建議使用壓縮版:64-bit window.zip

  • 3 . 下載完成:解壓,解壓之後的文件夾放到一個完全沒有中文的目錄下

  • 4 . 啓動Tomcat服務器

    • 安裝路徑下/bin/startup.bat 雙擊,彈出黑框:黑框如果存在,表示Tomcat服務器正在運行
      要求:絕對不允許用右上角的X號關閉黑框
    • 在瀏覽器上輸入http://localhost:8080
    • 頁面可以加載表示Tomcat服務器啓動成功
  • 5 . 關閉Tomcat服務器:在安裝路徑/bin/shutdown.bat

  • Tomcat使用常見問題:

    • 1 . 閃退
      考慮JDK環境變量的配置
      Tomcat服務器使用Java寫的,需要JVM支持
      需要配置 JAVA_HOME CLASSPATH Path

    • 2 . 端口被佔用
      [以下操作,請先關閉Tomcat服務器]
      修改Tomcat服務器的端口號
      修改Tomcat的配置文件,Tomcat配置文件在安裝路徑/conf/server.xml
      <Connector port="8080" protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443" />
      例如:修改爲8081,保存修改,重啓Tomcat服務器就可以使用了

  • Tomcat的目錄結構

    • bin:存放Tomcat程序的二進制文件 目錄
    • conf: 存放Tomcat的配置信息,主要操作對象是server.xml
    • lib: 存放Tomcat運行需要的JAR包,這裏面有一個需要關注的是servlet-api.jar
    • logs: 存放運行時日誌的臨時文件夾
    • webapps:共享資源路徑,WEB應用保存的目錄
    • work: Tomcat的運行目錄, JSP運行的臨時目錄。JSP生成的臨時文件都會放在這裏
  • Tomcat共享文件演示示例:
    主要操作的是webapps這個文件夾

    • 首先在webapps這個文件下創建一個目錄:mywebs 【在 Tomcat 沒有啓動的狀態下】
    • 其次在mywebs下寫一個html文件: index.html
    • 最後在瀏覽器輸入:http://10.8.156.34:8080/mywebs/index.html就可以訪問
      http: 這是HTTP協議
      10.8.156.34: 服務器的IP地址
      8080:服務器Tomcat軟件的端口號
      mywebs:在Tomcat服務器下共享目錄webapps裏面的一個JavaWEB項目目錄名
      index.html 是一個HTML文件
      小知識:
      index.html 因爲他的名字是index,在沒有確定申請訪問哪一個文件時,會默認打開index.html

三、WEB應用目錄結構

  • WebRoot :WEB項目/應用的根目錄(這個名字沒有中文即可)。裏面有兩大列
    • 靜態資源 (例如 HTML CSS JavaScript img vedio audio)文件;名字是 WEB-INF:【固定寫法】
      • classes: 存放二進制字節碼文件的目錄 放入.class文件【固定寫法,可選】
      • lib: 存放當前WEB項目運行需要的JAR包 【固定寫法,可選】
    • web.xml 非常重要【現在非常重要】

      注意事項:
      1 . WEB-INF目錄的下內容不能通過瀏覽器目錄方式訪問
      2 . 如果需要訪問WEB-INF裏面的資源內容,需要配置web.xml

四、Servlet入門

(一)Servlet 含義

  • 靜態資源和動態資源的區別

    • 靜態資源:
      用戶在多次訪問的情況下,但是每一次頁面的源代碼沒有發生任何的改變
    • 動態資源:
      用戶每一次訪問,申請到的頁面源代碼都是不一樣的
  • Servlet是Java語言實現動態資源的開發技術
    要求:
    1 . Servlet程序只能在Tomcat服務器上運行 【記住】
    2 . Servlet其實是一個非常普通的類,只不過繼承了HttpServlet,覆蓋了doGet和doPost方法

(二)手動書寫一個Servlet程序

  • 1 . 定義一個類,要求繼承HttpServlet
    HttpServlet並不存在於當前我們使用的JDK1.8中,因爲 Servlet程序是要交給Tomcat運行的,所以Tomcat是支持HttpServlet,那麼在Tomcat下必須有HttpServlet當前這個代碼,在Tomcat安裝路徑/lib/servlet-api.jar
    其次需要把添加 servlet-api.jar

  • 2 . 書寫Servlet程序

    • HttpServletRquest 是 servlet請求

    • HttpServletResponse 是 servlet響應

    • 因爲當前是使用響應給瀏覽器發送數據:
      要求是:設置響應在瀏覽器上展示的方式和編碼集 使用HTML展示,字符集爲utf-8
      resp.setContentType(“text/html;charset=utf-8”);
      PrintWrite resp.getWriter(); 專門用來給瀏覽器寫入數據的對象 基於IO流的

  • 3 . 執行Servlet程序
    這裏servlet程序不能再交給Eclipse執行了,而是要在Tomcat服務器上執行Servlet程序
    在Tomcat服務器軟件根目錄下webapps中創建一個Web項目文件夾,要按照Web項目要求創建

    • 項目目錄如下:

    WEB-INF:【固定寫法】
    classes: 找到當前Servlet程序的class文件,要把這個文件放入到classes文件中
    【注意】要求放入的class文件要帶有完整的包名
    web.xml 按照Servlet程序的規範書寫XML文件

# 這裏還有其他的文件
<!--4 . WEB.xml文件中的內容 -->
 <servlet>
     <!-- servlet的內部名稱 這個名字可以自定義-->
     <servlet-name>HelloServlet</servlet-name>
     <!-- servlet程序的class文件 要求是完整的類名,也就是包名.類名 -->
     <servlet-class>a_firstServlet.HelloServlet</servlet-class>
 </servlet>
<servlet-mapping>
     <!-- servlet的名字 【要求和上邊的名字必須一模一樣】-->
     <servlet-name>HelloServlet</servlet-name>
     <!-- servlet的訪問名稱: http://localhost:8080/mywebs/訪問名 -->
     <url-pattern>/hello</url-pattern>
 </servlet-mapping>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章