第一個Javaweb應用程序


第一個Javaweb應用程序

一、Javaweb應用程序結構

  一個 web 應用程序是由一組 Servlet,HTML 頁面,類,以及其它的資源組成的運行在 web 服務器上的完整的應用程序,以一種結構化的有層次的目錄形式存在

  組成 web 應用程序的這些文件要部署在相應的目錄層次中,根目錄代表整個 web 應用程序的”根”

  通常將 web 應用程序的目錄放在 webapps 目錄下,在 webapps 目錄下的每一個子目錄都是一個獨立的 web 應用程序,子目錄的名字就是 web 應用程序的名字,也就是 web 應用程序的“根”。用戶通過 web 應用程序的”根”來訪問 web 應用程序中的資源

  Servlet 規范中定義了 web 應用程序的目錄層次:

  兩點說明:

  ①WEB-INF目錄下的classes和lib目錄都可以存放Java的類文件,在Servlet容器運行時,Web應用程序的類加載器將首先加載classes目錄下的,其次才是lib目錄下的類。如果這兩個目錄下存在同名的類,起作用的將是classes目錄下的類
  ②WEB-INF 是一個特殊的目錄(所有字母都要大寫)。這個目錄並不屬於Web應用程序可以訪問的上下文路徑的一部分,對客戶端來說,這個目錄是不可見的。但該目錄下的內容對於Servlet代碼是可見的 

二、部署並啟動 tomcat 服務器

  1. 解壓 apache-tomcat-6.0.16.zip 到一個非中文目錄下

  2. 配置一個環境變量. java_home(指向 JDK 安裝的根目錄) 或 jre_home

  3. 通過雙擊 apache-tomcat-6.0.16\bin 目錄下的 startup.bat, 啟動服務器

  4. 可以在瀏覽器中輸入 localhost:8080 來檢驗 Tomcat 安裝是否正確.

  5. 若已經啟動了一個 Tomcat 應用, 若再啟動同一個 Tomcat 應用, 會拋出異常:  java.net.BindException: Address already in use: JVM_Bind:8080,因為端口已經被占用了,可以通過修改 server.xml 文件中的配置信息來修改 Tomcat 服務器的端口號:

  <Connector port="8989" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />

  把 port 的值改為其他的端口號即可.

  6. 為了可以在任意目錄下啟動 Tomcat 服務器,可以把 D:\apache-tomcat-6.0.16\bin 添加到 path 下添加成功后, 若在任意目錄下通過 startup 啟動 Tomcat 服務器, 會有提示:
  The CATALINA_HOME environment variable is not defined correctly This environment variable is needed to run this program
  即: 要求設置 CATALINA_HOME 這個環境變量

  7. 設置 CATALINA_HOME 環境變量:通過閱讀 startup.bat 批處理文件, 可知 CATALINA_HOME 環境變量下有一個 bin 目錄,而 bin 目錄又有一個 catalina.bat 文件, 由此可知 CATALINA_HOME 指向的應該是 Tomcat 安裝的根目錄,於是把 Tomcat 的根目錄設為CATALINA_HOME 環境變量.,此時即可以在 任意 目錄下通過 startup.bat、shutdown.bat 啟動、關閉 Tomcat 服務器.

  8.繼續閱讀 startup.bat 文件, 發現啟動 tomcat 服務器的是 catalina.bat 文件,在命令行窗口直接輸入 catalina, 提示如下:
  commands:
  debug             Start Catalina in a debugger
  debug -security   Debug Catalina with a security manager
  jpda start        Start Catalina under JPDA debugger
  run               Start Catalina in the current window
  run -security     Start in the current window with security manager
  start             Start Catalina in a separate window
  start -security   Start in a separate window with security manager
  stop              Stop Catalina
  version           What version of tomcat are you running?
  catalina 命令有如上的可選參數.
  run: 在 catalina 同一個命令行窗口下啟動服務器.
  start: 開啟一個新窗口啟動服務器
  stop: 關閉服務器.

三、第一個 WEB 應用程序開發, 並部署到 Tomcat 服務器下運行

  1. 在 Eclipse 新建一個 Java Project

  2. 在 Java 項目下創建 WEB 開發的目錄結構
   -WebContent
       -WEB-INF
          -classes (編譯后的 class 文件必須放在該目錄下.)
          -lib
          -web.xml (從 apache-tomcat-6.0.16\webapps\docs\WEB-INF 中復制過來,可以不做修改)
      html 頁面
      JSP 頁面
      圖片...

  3. 在 src 下新建一個 Person 類
  package com.atguigu.test;
  public class Person {
      public String getPersonInfo(){
          return "person info...";
      }
  }

  4. 手工的 Person 類對應的 class 文件(含包)復制到 classes 目錄下,可以通過修改默認的輸出目錄達到自動把編譯好的 class 放到 classes 目錄下

  5. 在 WebContent 目錄下新建一個 JSP 文件:
  <%@page import="me.test.Person"%>
  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
      pageEncoding="ISO-8859-1"%>

  <%
      Person person = new Person();
      System.out.print(person.getPersonInfo());
  %>

  6. 把 WebContent 目錄復制到 Tomcat 的 webapps 目錄下, 並改名為: helloworld

  7. 在瀏覽器的地址欄中輸入: http://localhost:8989/helloworld/hello.jsp 即可看到命令行的打印信息

四、配置任意目錄下的Web應用程序

  在Web服務器中可以配置虛擬目錄,而虛擬目錄所對應的真實目錄可以在任何路徑下。

  在Tomcat服務器中,主要在 XML 配置文件中通過<Context>元素的設置來完成的。一個<Context>元素就表示一個Web應用程序,運行在特定的虛擬主機中。

  <Context>元素是<Host>元素的子元素,可以在conf\server.xml文件中設置Context元素。

<Context>元素的常用屬性

  <Context>元素是<Host>元素的子元素,可以在conf\server.xml文件中設置Context元素。

  使用docBase屬性指定Web應用程序的真實路徑。將屬性reloadable設置為true,Tomcat在運行時會自動監測Servlet類的改動,如果發現有類被更新,Tomcat服務器將自動重新加載該Web應用程序。這樣,在開發時,就不需要頻繁重啟Tomcat了

  還可以在conf目錄下依次創建Catalina\localhost目錄,然后在localhost目錄下為 test 這個Web應用程序建立 test.xml 文件,編輯這個文件輸入以下內容

  從Tomcat 5開始,不建議直接在server.xml文件中配置<Context>元素,因為server.xml文件作為Tomcat的主要配置文件,一旦Tomcat啟動后,將不會再讀取這個文件,因此無法在Tomcat服務器啟動時發布Web應用程序。如果在其他地方配置<Context>元素,那么在Tomcat運行時,也可以發布Web應用程序。

  從Tomcat 5.5開始,在\conf\Catalina\localhost目錄下創建XML配置文件來配置Web應用程序,Tomcat將以XML文件的文件名將作為Web應用程序的上下文路徑,而不理會在<Context>元素的path屬性中指定的上下文路徑是什么。由於Tomcat 5.5之后的版本是以XML配置文件的文件名作為Web應用程序的上下文路徑的,因此在配置<Context>元素時,可以不使用path屬性。 

  因此,我們可以在 conf 目錄下依次創建 catalina\localhost 目錄,然后在 localhost 目錄下為 test 這個Web應用程序建立 test.xml 文件,編輯這個文件輸入以下內容

  <?xml version="1.0" encoding="UTF-8"?>
  <Context docBase="E:\\Java\\Source\\hello\\java-1\\firstWebApp\\WebContent" reloadable="true"/>

如果,您對我的這篇博文有什么疑問,歡迎評論區留言,大家互相討論學習。
如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。
如果,您希望更容易地發現我的新博客,不妨點擊一下左下角的【關注我】。
如果,您對我的博文感興趣,可以關注我的后續博客,我是【AlbertRui】。

轉載請注明出處和鏈接地址,歡迎轉載,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM