程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JavaWeb學習----JSP簡介及入門(含Eclipse for Java EE及Tomcat的配置),javaweb----jsp

JavaWeb學習----JSP簡介及入門(含Eclipse for Java EE及Tomcat的配置),javaweb----jsp

編輯:JAVA綜合教程

JavaWeb學習----JSP簡介及入門(含Eclipse for Java EE及Tomcat的配置),javaweb----jsp


【前言】

JSP本身是JavaWeb中的知識,但是在學習Android網絡時,必然要涉及到與服務器之間的交互,所以學一下JSP以及其他JavaWeb的內容還是很有必要的,至少能明白程序在訪問服務器時,整個過程的原理。

其實,在學習Android之前,Java和JavaWeb的知識都是要先學習的。本人是在2014年7月正式開始Android方向的研究學習,在這之前沒有接觸任何和計算機軟件相關的知識(唯一相關的是,本科學過一門C語言課程,不過現在已經忘光了)。

我們來看下面的這張圖就知道了:

兩張圖拼起來看就對了,借鑒的是李剛的“瘋狂Java學習路線圖”,手機像素渣,圖片不是很清晰,將就一下吧。說白了,在學習Android之前要具備一定的Java基礎(Java SE 、JavaWeb、數據庫等)。而如果要學的扎實並且有個好的就業崗位,以下基礎知識需要全部具備:計算機基礎知識(操作系統、計算機網絡、數據結構、數據庫、設計模式等)、C/C++、Java、Android、Linux

所以,考慮到時間的因素,像我這種初學者,只能在邊學Android的時候邊學其他的知識。我學到了哪裡,我的博客就會寫哪裡,也希望能和其他初學者一起共勉,一起見證!

 

【正文】

一、JSP簡介

JSP:Java Server Pages。在傳統的HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag),就構成了JSP網頁。

 

二、學習重點:

  • JSP語法(腳本、指令、動作)
  • JSP的內置對象
  • 創建動態的內容
  • 用戶會話跟蹤

 

三、使用tomcat軟件在本地搭建服務器:

Tomcat是Apache組織的Jakarta項目中的一個重要子項目,是Sun公司推薦的運行Servlet和JSP的容器(引擎),其源代碼完全公開。

有了這個服務器,就相當於在本地的計算機有了一個網站,然後我們可以通過浏覽器來訪問這個網站。

tomcat軟甲是apache旗下的一個開源項目。軟件下載鏈接:http://tomcat.apache.org/

下載之後,將壓縮包解壓:

注意目錄名不能有中文和空格。目錄介紹如下:

  • bin:二進制執行文件。裡面最常用的文件是startup.bat
  • conf:配置目錄。裡面最核心的文件是server.xml。可以在裡面改端口號等。默認端口號是8080,也就是說,此端口號不能被其他應用程序占用。
  • lib:庫文件。tomcat運行時需要的jar包所在的目錄
  • logs:日志
  • temp:臨時產生的文件,即緩存
  • webapps:web的應用程序。web應用放置到此目錄下浏覽器可以直接訪問
  • work:編譯以後的class文件。

軟件運行之前要保證Java環境變量已經配置:

上圖中,變量名為JAVA_HOME,變量值為:JDK安裝的絕對路徑。

注:Catalina_Home環境變量:指定tomcat在啟動時啟動哪個tomcat,一般不推薦配置。

回到tomcat的bin目錄中, 雙擊startup.bat:

之後彈出如下界面:

這個時候,本地的服務器就已經搭建起來了。如果想關閉服務器,可以直接關閉上面的窗口,或者在裡面輸入Ctrl+C禁止服務。

首先查看自己電腦的ip地址,我的計算機的ip地址為:192.168.1.112。

在浏覽器中輸入http://192.168.1.112:8080/(或者輸入http://localhost:8080/也是可以的)。如果彈出如下界面,進入本地服務器的首頁,表示tomcat安裝成功並且啟動起來了:

上方圖片中,顯示我的Tomcat的版本為:8.0.14。它的版本號是跟著JDK的版本走的,所以,建議JDK的版本為1.8。

我們現在在浏覽器上測試一下它吧:

首先在D:\apache-tomcat-8.0.14\webapps\ROOT目錄中新建一個jsp文件:

jsp文件中填入如下內容:

復制代碼
<%

String name = request.getParameter("name");
String pwd = request.getParameter("password"); 

out.print("name:" + name + ",password:" + pwd); //在浏覽器上顯示輸入地址中的用戶名與密碼

%> 
復制代碼

現在我們隨便起一個用戶名和密碼的賬號,比如用戶名smyhvae,密碼為smyh,然後在浏覽器中輸入如下內容:

http://192.168.1.112:8080/test.jsp?name=smyhvae&password=smyh

輸入這個鏈接之後,回車,出現如下界面:

上圖中表示,我們向服務器發送這樣一個請求,鏈接中,問號前面的內容代表請求的路徑,問號後面是我們要傳送的參數(鍵是固定不變的,值是用戶自己填寫的),然後服務器返還給我們這樣的數據。

 

三、將Tomcat和eclipse相關聯:

打開eclipse for Java EE ,選擇菜單欄Windows-->preferences,彈出如下界面:

上圖中,點擊“add”的添加按鈕,彈出如下界面:

上圖中,選擇對應的Tomcat版本,繼續:

上圖中,選擇Tomcat的路徑,以及JRE,點擊“完成”,配置完畢。

新建java工程,建一個動態的工程:

注:對“動態”的理解:html是靜態的,寫成什麼,就是什麼。動態指的是根據服務器端返回的數據動態地生成頁面。比如張三登陸可以看到張三的信息;換成李四登陸,可以看到李四的信息。

點開上圖中的紅框部分,彈出如下界面:

按照上圖進行配置,其中,第三個紅框中,是加載自己的jdk的安裝路徑即可:

然後,單擊finish。繼續:

 

工程文件結構:

上圖中,deployment descriptor:部署的描述。Web App Libraries:自己加的包可以放在裡面。build:放入編譯之後的文件。WebContent:放進寫入的頁面。

在WebContent文件夾下新建一個jsp文件。在下圖中可以看到它的默認代碼:

上圖中,這種編碼方式不支持中文。我們來修改一下JSP文件的編碼方式,按上圖所示,鼠標右擊,選擇"Preferences",彈出如下對話框:

上圖中,將編碼方式改為UTF-8。

同樣,我們還需要將文本內容的編碼方式改為UTF-8(這個編碼和程序無關),選擇菜單欄Windows--preferences,打開如下界面,將編碼方式改為UTF-8,並點擊update:

以後每次新建一個jsp文件,默認的編碼方式就是UTF-8了。默認代碼如下:

復制代碼
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 
11 </body>
12 </html>
復制代碼

我們在hello.jsp中修改一下,將上方的第7行的標題改一下,並在第10行添加輸出語句。最終代碼如下:

復制代碼
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>hello JSP</title>
 8 </head>
 9 <body>
10     <%
11         out.println("hello,JSP");
12     %>
13 </body>
14 </html>
復制代碼

上方的第11行,out指的是輸出流。通過頁面獲取這個輸出流,並打印在頁面中。以前學的System.out.println()指的是向控制台輸出。

程序運行之前,我們先修改一下浏覽器選項:

現在我們開始運行程序:

運行時,彈出如下錯誤:(如果沒有此錯誤,請忽略)

原因是,我們之前點擊了Tomcat安裝包中的​startup.bat,這樣一來就手動打開了Tomcat服務器,這明顯是多余的,因為程序運行時,eclipse會自動開啟Tomcat服務器。所以我們先手動關掉tomcat軟件,再次運行程序,就行了。控制台信息如下:

浏覽器會自動打開,網頁信息如下:

現在來解釋一下上方網址的名稱為什麼顯示的是 http://localhost:8080/TomcatTest/

我們選中項目,右鍵選擇“properties”,彈出如下對話框:

上圖顯示,我們所部署的路徑是根目錄,根目錄的名稱默認為我們新建的項目名,所以網址才會顯示為:主機名+端口號+項目名。

網頁顯示的錯誤為404,即找不到網頁,可見網頁中並沒有看到我們新建的jsp文件,我們再來找一下原因。打開工程文件中,WEB-INF目錄下的web.xml文件:

上圖解釋:當程序運行時,Tomcat會首先讀取工程的配置文件,且名字必須為web.xml。當系統默認進入的鏈接為:主機名+端口+工程名時,服務器就會找上圖中<welcome-file-list>標簽裡的頁面(有好幾個頁面的話,就依次往下找);而標簽<welcome-file-list>中並沒有hello.jsp文件。所以,我們需要在浏覽器地址欄輸入:http://localhost:8080/TomcatTest/hello.jsp,才會將hello.jsp頁面顯示出來。效果如下:

四、程序運行的原理:

我們現在來分析一下上面的程序運行的原理。

當在服務器上運行後,會生成與工程文件並列的一個文件夾:Servers。如下:(如果刪掉了Servers文件夾,當重新運行時,文件夾又會自動生成)

這個文件夾是Tomcat服務器的一個基本的配置。

上圖中表明,我們新建的項目已經部署到Tomcat服務器上去了,也就是看到了TomcatTest這個工程被發布出去了(發布的過程即:將寫的工程打包以後放到Tomcat裡)。

其實eclipse for EE已經包含了Tomcat服務的插件,但其也必須依賴Tomcat來啟動。我們雙擊上圖的紅框部分,顯示如下信息:

上圖的紅框部分表明,服務的部署是在eclipse裡面(默認是放在工作空間裡的.metadata文件夾下),而不是在Tomcat裡面。我們來改一下,前提是工程並沒有發布到Tomcat中去,那我們先把之前發布的版本刪了吧(稍後重新發布):

然後就可以修改部署的路徑了:

上圖中,使用Tomcat的安裝目錄作為部署的位置,並修改部署的路徑Deploy path(建議改成Tomcat的webapps目錄下),然後保存即可。這時,重新運行程序。現在來到Tomcat的webapps目錄下,發現多了一個TomcatTest文件夾(即工程文件名),並且文件夾下包含了工程文件中WebContent的內容:

上圖說明,說明這才是真正將程序發布到服務器上。

我們再來到Tomcat的work目錄中,看一下編譯之後的文件:

上圖表明,Tomcat會先將jsp文件轉為java文件,然後再把java文件編譯為class文件,最終執行的是class文件

jsp 其實是被翻譯成為了servlet,現在來看一下JSP運行的原理。

 

四、JSP的運行原理:

  • 只有當客戶端第一次請求JSP時,才需要將其轉換、編譯(所以第二次浏覽同樣的網頁時,速度會更快)
  • Web服務器在遇到訪問JSP網頁的請求時,首先執行其中的程序片段,然後將執行結果以HTML格式返回給客戶。
  • 程序片段可以操作數據庫、重新定向網頁以及發送email等等,這就是建立動態網站所需要的功能。
  • 所有程序操作都在服務器端執行,網絡上傳送給客戶端的僅是得到的結果,對客戶浏覽器的要求最低。

總結:本文的整個過程,讓我們學會了如何配置Tomcat和部署工程文件,明白了jsp文件是怎樣發布到服務器上並最終顯示出來。關於JSP的進一步學習,將在後面呈現。

 

 

 

五、Tomcat的其他問題:

1、端口占用問題:

在cmd中輸入netstat -ano命令,查看占用端口的進程pid,再用任務管理器關閉相應進程即可。

我們在浏覽器中輸入"www.baidu.com",但是並沒有輸入端口號依然能進入網頁,這是因為浏覽器默認的端口號為80,如果對方服務器是監聽在80端口上,則在浏覽器中輸入網址時,可以不用輸入端口號。

Tomcat默認監聽的端口號是8080(server.xml文件的第63行),可以在配置文件conf/server.xml中修改

【備注】Tomcat關聯幫助文檔Javadoc

我們以後如果要使用到Servlet類,但是想查看裡面的源碼和幫助文檔,發現看不到:

按住ctrl點進去之後,是下面的界面:

我們下載的tomcat中自帶了源碼,但是幫助文檔需要另外下載:

 

 

 

文章原始出處→_→ 

生命壹號:http://www.cnblogs.com/smyhvae/

文章來源:http://www.cnblogs.com/smyhvae/p/4046862.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved