javaWeb快速入門

 實驗環境準備

(假設你已經裝好了jdk)css

1.1 安裝一個eclipse或者MyEclipse(本文以eclipse爲例),其實所謂的安裝就是網上去下載一個eclipse,而後解壓一下就行了。html

1.2安裝tomcat,網上下載一個,而後解壓一下。我此次使用的tomcat容器配的是8080端口。java

什麼是JavaWeb項目,它能幹嗎?

JavaWeb項目就是一個應用程序,你不要覺得它有多麼神祕。你天天打開的QQ就一個應用程序,你在手機上打開的微信,百度地圖等等,這些都是應用程序。linux

而Web項目是什麼呢?css3

它也是一個應用程序,只不過它的客戶端是運行在瀏覽器上的。web

咱們打開瀏覽器,訪問一個地址,好比 http://www.jianshu.com/小程序

有了web,我只須要有一個瀏覽器,而後就能經過互聯網獲取我想要的資源了。這樣不是很美妙嗎?api

近幾年H5很是流行,尤爲是移動端,由於手機瀏覽器基本上都支持css3。同樣的道理,咱們確定也不但願在手機上安裝一大堆應用,卡都卡死了,若是能直接訪問一個網頁,就能得到我想要的服務就行了。瀏覽器

並且如今WIFI也廣泛了,若是之後流量能沒有限制,那麼APP的熱度極可能會逐漸被web取代。tomcat

手工搭建web項目

如今,爲了說明服務器和web項目的概念,咱們先不用eclipse,來手工搭建一個web項目。

服務器,正常狀況下就是一臺配置高一點的電腦,除非是那種大型的專用服務器。

通常來講,所謂的服務器,就是電腦。

好比我如今有一臺電腦,給他裝了一個linux系統或者windos系統,而後我說,好了,從今之後,這就是服務器了。如今服務器通常都是用linux系統的。

那麼tomcat又是什麼?

tomcat其實也是一個應用程序,你網上下載的tomcat每每是一個壓縮包,而後咱們解壓之後就至關於安裝好了。

能夠這麼理解:

服務器就是一臺電腦,而tomcat是一個容器,專門存放web項目的容器。

如下我都將tomcat稱爲tomcat容器。

咱們看到在tomcat容器根目錄下,有一個webapps文件夾

裏面是這樣的:

好的,如今我要發佈一個項目了,我只須要把一個已經作好的web項目往裏面一丟就好了。

除了webapps,咱們還發現一個bin目錄。通常來講,可執行的文件都放在bin目錄下。

 

 

打開bin,找到一個startup.bat文件。這就是啓動tomcat的東西,雙擊它,tomcat就被啓動了。

而後,瀏覽器能夠訪問tomcat裏面的項目。在瀏覽器輸入http://127.0.0.1:8080/

如今咱們來手工搭建一個web項目,首先,在webapps目錄下新建一個文件夾,是的,就是文件夾,無論你項目是什麼,確定仍是放在文件夾裏面的。

項目名稱就叫作webapp。

打開webapp,根據web項目的規範,咱們須要有一個WEB-INF文件夾。

 

而後,在WEB-INF文件夾裏面,必需要有一個web.xml文件。

xml文件,就是一個描述性的文件,我如今的觀點以下:

XML = JavaBean = Json = HashMap

它無非就是描述一些東西,保存一些數據而已。

好的,咱們在裏面新建一個web.xml。這個文件很是重要,正由於它的存在,tomcat容器纔會知道這個文件夾裏面居然是一個web項目。

不然,tomcat容器是不知道這個web項目的,它只會將myapp文件夾看作是一個文件夾而已。

 咱們用記事本打開web.xml,將如下代碼拷貝進去。

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <display-name>web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

XML的一個做用就是配置文件,web.xml自己就是一個配置文件。在web項目中,咱們應用xml最多的也就是配置一些參數。

配置參數,就是給屬性賦值嘛,沒什麼神祕的。

包括咱們學習JavaSE,歸根到底,一直在作的一件事就是new對象,而後調用方法,調用方法的目的一方面是作一些事情,另外一方面不仍是給屬性賦值嘛。

你能夠把web.xml看作是一個java類,類名叫作 webApp。它裏面有兩個屬性,分別是display-name和welcome-file-list。

display-name是發佈名稱,也就是項目的名字。
welcome-file-list 是歡迎頁面,就是說,當你在瀏覽器直接訪問這個myapp項目,默認跳轉的頁面。

想象一下,應該會變得很是好理解。

XML就是一個數據描述語言,咱們經過web.xml描述這個項目的構成和配置。

好的,接下來,咱們是否是要給他一個歡迎頁啊。嗯,咱們在webapp目錄下添加一個簡單的歡迎頁,裏面就打印一個HelloWorld。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

這是一條JSP的page指令,若是你用面向對象的思惟來看待這個玩意,就是new了一個page對象,而且給它裏面的language,contentType,charset,pageEncoding屬性分別賦了值。

language表示JSP頁面所用的語言,默認是java,其實你寫不寫都沒有關係,由於目前來講JSP它只支持Java。

contentType="text/html; charset=UTF-8":設置頁面的內容是文本或者html頁面,字符設置爲UTT-8。

pageEncoding="UTF-8":頁面編碼設置爲UTF-8。

好的,如今咱們在bin目錄,雙擊運行startup.bat

啓動完畢。

打開瀏覽器,在地址欄輸入http://localhost:8080/myapp/

回車

 

哇,是否是出來了。

太棒了。

這就是手工搭建一個web項目的過程。

只要你符合web項目的規範,包括文件夾的名字,文件的名字,就會被tomcat容器識別爲一個web項目。

接下來,咱們來寫服務器代碼。

在WEB-INF下面新建一個文件夾,名字叫作classes,這個也是規範,就叫這個名字,不然tomcat容器識別不了。

 

 

 

 裏面在建立一個java文件,名字就叫Hello吧

 

 用記事本打開,將下面的代碼拷貝進去。

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Hello extends HttpServlet {
       
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("已經進入服務器...");
    }

}

  

這是一個比較簡單的HttpServlet 程序,說到servlet,他的意思就是服務器小程序。

原來,在英文中,但凡是let結尾的單詞,都有微小的意思。好比servlet,server是服務器,let結尾,那麼就是服務器小程序。

servlet是Server Applet的縮寫,咱們再來看Applet,app是應用程序,又是let結尾,因此應該就是小的應用程序。

咱們用命令行的方式將java文件編譯成class文件。

在編譯以前,咱們先去tomcat容器的lib目錄找一個jar:

 

 

找到servlet-api.jar,複製一份,拷貝到classes目錄下。

 

 

而後,咱們在該classes目錄下,按住shift,鼠標右鍵,選擇在此處打開命令行窗口。

輸入javac -classpath servlet-api.jar Hello.java

class文件就出來了

 

再次打開web.xml,咱們還須要把這個servlet配上去,否則tomcat怎麼知道這個servlet須要加入咱們的web項目呢?

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <display-name>web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>Hello</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

</web-app>

  

雙擊startup.bat,啓動tomcat容器

而後,在瀏覽器的地址欄輸入http://localhost:8080/myapp/hello

發現網頁上一片空白,回顧咱們的servlet程序,按理說控制檯會打印一句話的

看看控制檯:

你應該也已經發現了,咱們手工搭建web項目的話,是否是很麻煩呀?因此,這也是爲何咱們如今都用eclipse,或者MyEclipse來開發項目了。

這些IDE工具就是爲了解決手工編譯的麻煩而出現的。

 

補充:參考自https://www.cnblogs.com/skyblue-li/p/5966311.html

相關文章
相關標籤/搜索