Tomcat、Web入門

fan_rockrock發表於2016-11-16

Tomcat

伺服器軟體的引入

web服務軟體的作用就是把本地的資源共享給外部訪問,安裝有伺服器軟體的機器叫做Web伺服器,Tomcat就是一個web伺服器軟體。

常見web服務軟體:

  • WebLogic: BEA公司的產品。 收費的。支援JavaEE規範。
  • WebSphere: IBM公司的產品。收費的。支援JavaEE規範
  • JBoss: Redhat公司的產品。收費的。支援JavaEE規範
  • Tomcat: 開源組織Apache的產品。免費的。支援部分的JavaEE規範
    (servlet、jsp。jdbc,但ejb, rmi不支援)

下面模擬一個web服務功能:

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * socket伺服器端程式
 * @author APPle
 *
 */
public class Server {
    public static void main(String[] args) throws Exception {
        //1.建立ServerSocket
        ServerSocket server = new ServerSocket(8080);
        System.out.println("伺服器已經啟動成功....");
        while(true){
            //2.接收客戶端的連線
            Socket socket = server.accept();
            //3.讀取本地的test.html檔案
            FileInputStream in = new FileInputStream(new File("e:/contact.xml"));

            //4.構建資料輸出通道
            OutputStream out = socket.getOutputStream();

            //5.傳送資料
            byte[] buf = new byte[1024];
            int len = 0;
            while( (len=in.read(buf))!=-1 ){
                out.write(buf, 0, len);
            }   
            //6.關閉資源
            out.close();
            in.close();
        }
    }
}

啟動該程式,然後在瀏覽器中輸入http://localhost:8080便可以在瀏覽器上輸出資訊。
程式:叫做服務端程式
瀏覽器:叫做客戶端程式
這裡服務端程式使用Java寫的,而瀏覽器並不一定是Java寫的,但是網路通訊的原理最終會轉成二進位制程式碼來執行,因此與語言無關。

Tomcat的使用

1、到apache官網下載解壓
2、啟動

  • a)找到%tomcat%/bin/startup.bat ,雙擊這個檔案
  • b)彈出視窗,顯示資訊(不要關閉次視窗)
  • c)開啟瀏覽器,輸出以下地址http://localhost:808
  • d)看到一隻貓畫面,證明軟體啟動成功!

3、關閉
- 找到%tomcat%/bin/shutdown.bat,雙擊這個檔案即可!

安裝Tomcat常出現的問題

閃退

  1. 原因:
    tomcat軟體是java語言開發的。 tomcat軟體啟動時,會預設到系統的環境變數中查詢一個名稱叫JAVA_HOME的變數。這個變數的作用找到tomcat啟動所需的jvm。
  2. 解決辦法
    到環境變數中設定JAVA_HOME的變數

埠占用的錯誤

  1. 原因:
    tomcat啟動所需的埠(預設是8080)被其他軟體佔用了!
  2. 解決辦法
    第一種:關閉其他軟體程式,釋放所需埠
    第二種:修改tomcat軟體所需埠
    找到並修改%tomcat%/conf/server.xml檔案
<Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

Tomcat目錄結構

Tomcat目錄結構

更多Tomcat學習

請點我

web入門

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

靜態資源: 當使用者多次訪問這個資源,資源的原始碼永遠不會改變的資源。(用js頁面改變但是html原始碼不會變,因此不是靜態資源)
動態資源:當使用者多次訪問這個資源,資源的原始碼會發生改變。

動態資源開發技術

Servlet : 用java語言來編寫動態資源的開發技術。
Servlet特點:
1)普通的java類,繼承HttpServlet類,覆蓋doGet方法
2)Servlet類只能交給tomcat伺服器執行!!!!(開發者自己不能執行!!!)

Tomcat支援一個web應用的預設目錄

Tomcat預設目錄
注意:
1)WEB-INF目錄裡面的資源不能通過瀏覽器直接訪問
2)如果希望訪問到WEB-INF裡面的資源,就必須把資源配置到一個叫web.xml的檔案中。

手動開發一個web應用

1、 編寫一個servlet程式,繼承HttpServlet

package gz.itcast.servlet;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 第一個servlet程式
 * @author APPle
 *
 */
public class HelloServlet extends HttpServlet{//需要手動匯入Tomcat的servlet.jar包,因為這是ee規範,se包裡面沒有這個類

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //解決中文亂碼問題
        resp.setContentType("text/html;charset=utf-8");
        //向瀏覽器輸出內容
        resp.getWriter().write("這是第一個servlet程式。當前時間為:"+new Date());
    }
}

2、找到HelloServlet類的class位元組碼,然後把拷貝到tomcat的一個web應用中WEB-INF/classes目錄下。(將編譯好的.class檔案及其目錄一起拷過去)

3、在當前web應用下的web.xml檔案配置Servlet。

<!-- 配置一個servlet程式 -->
    <servlet>
        <!-- servlet的內部名稱 ,可以自定義-->
        <servlet-name>HelloServlet</servlet-name>
        <!-- servlet類名: 包名+簡單類名-->
        <servlet-class>gz.itcast.d_servlet.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <!-- servlet的內部名稱,和上面的名稱保持一致!!!-->
        <servlet-name>HelloServlet</servlet-name>
        <!-- servlet的訪問名稱: /名稱 -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

4、啟動tomcat伺服器,執行訪問http://localhost:8080/myweb/hello

web應用在Tomcat中的目錄

工具開發

使用myeclipse建立如上的一個web工程如下:
myeclipse建立web工程
index.jsp直接刪去即可

相關文章