(假設你已經裝好了jdk)css
1.1 安裝一個eclipse或者MyEclipse(本文以eclipse爲例),其實所謂的安裝就是網上去下載一個eclipse,而後解壓一下就行了。html
1.2安裝tomcat,網上下載一個,而後解壓一下。我此次使用的tomcat容器配的是8080端口。java
JavaWeb項目就是一個應用程序,你不要覺得它有多麼神祕。你天天打開的QQ就一個應用程序,你在手機上打開的微信,百度地圖等等,這些都是應用程序。linux
而Web項目是什麼呢?css3
它也是一個應用程序,只不過它的客戶端是運行在瀏覽器上的。web
咱們打開瀏覽器,訪問一個地址,好比 http://www.jianshu.com/小程序
有了web,我只須要有一個瀏覽器,而後就能經過互聯網獲取我想要的資源了。這樣不是很美妙嗎?api
近幾年H5很是流行,尤爲是移動端,由於手機瀏覽器基本上都支持css3。同樣的道理,咱們確定也不但願在手機上安裝一大堆應用,卡都卡死了,若是能直接訪問一個網頁,就能得到我想要的服務就行了。瀏覽器
並且如今WIFI也廣泛了,若是之後流量能沒有限制,那麼APP的熱度極可能會逐漸被web取代。tomcat
如今,爲了說明服務器和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