1. 程式人生 > >jsp 簡介+環境搭建

jsp 簡介+環境搭建

JSP 簡介

什麼是Java Server Pages?

JSP全稱Java Server Pages,是一種動態網頁開發技術。它使用JSP標籤在HTML網頁中插入Java程式碼。標籤通常以<%開頭以%>結束。

JSP是一種Java servlet,主要用於實現Java web應用程式的使用者介面部分。網頁開發者們通過結合HTML程式碼、XHTML程式碼、XML元素以及嵌入JSP操作和命令來編寫JSP。

JSP通過網頁表單獲取使用者輸入資料、訪問資料庫及其他資料來源,然後動態地建立網頁。

JSP標籤有多種功能,比如訪問資料庫、記錄使用者選擇資訊、訪問JavaBeans元件等,還可以在不同的網頁中傳遞控制資訊和共享資訊。

 


為什麼使用JSP?

JSP程式與CGI程式有著相似的功能,但和CGI程式相比,JSP程式有如下優勢:

  • 效能更加優越,因為JSP可以直接在HTML網頁中動態嵌入元素而不需要單獨引用CGI檔案。
  • 伺服器呼叫的是已經編譯好的JSP檔案,而不像CGI/Perl那樣必須先載入直譯器和目標指令碼。
  • JSP基於Java Servlets API,因此,JSP擁有各種強大的企業級Java API,包括JDBC,JNDI,EJB,JAXP等等。
  • JSP頁面可以與處理業務邏輯的servlets一起使用,這種模式被Java servlet 模板引擎所支援。

最後,JSP是Java EE不可或缺的一部分,是一個完整的企業級應用平臺。這意味著JSP可以用最簡單的方式來實現最複雜的應用。


JSP的優勢

以下列出了使用JSP帶來的其他好處:

  • 與ASP相比:JSP有兩大優勢。首先,動態部分用Java編寫,而不是VB或其他MS專用語言,所以更加強大與易用。第二點就是JSP易於移植到非MS平臺上。
  • 與純 Servlets相比:JSP可以很方便的編寫或者修改HTML網頁而不用去面對大量的println語句。
  • 與SSI相比:SSI無法使用表單資料、無法進行資料庫連結。
  • 與JavaScript相比:雖然JavaScript可以在客戶端動態生成HTML,但是很難與伺服器互動,因此不能提供複雜的服務,比如訪問資料庫和影象處理等等。
  • 與靜態HTML相比:靜態HTML不包含動態資訊。

JSP 開發環境搭建

JSP開發環境是您用來開發、測試和執行JSP程式的地方。

本節將會帶您搭建JSP開發環境,具體包括以下幾個步驟。


配置Java開發工具(JDK)

這一步涉及Java SDK的下載和PATH環境變數的配置。

您可以從Oracle公司的Java頁面中下載SDK:Java SE Downloads

Java SDK下載完後,請按照給定的指示來安裝和配置SDK。最後,通過設定PATH和JAVA_HOME環境變數來指明包括java和javac的資料夾路徑,通常是java_install_dir/bin和java_install_dir。

假如您用的是Windows系統並且SDK的安裝目錄為C::\jdk1.5.0_20,那麼您就需要在 C:\autoexec.bat 檔案中新增以下兩行:

set PATH=C:\jdk1.5.0_20\bin;%PATH%
set JAVA_HOME=C:\jdk1.5.0_20

或者,在Windows NT/2000/XP下,您可以直接右擊我的電腦圖示,選擇屬性,然後高階,然後環境變數,接下來您就可以很方便地設定PATH變數並且確定退出就行了。

在Linux/Unix系統下,如果SDK的安裝目錄為/usr/local/jdk1.5.0_20並且使用的是C shell,那麼您就需要在.cshrc檔案中新增以下兩行:

setenv PATH /usr/local/jdk1.5.0_20/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.5.0_20

或者,假如您正在使用類似於Borland JBuilder、Eclipse、IntelliJ IDEA和Sun ONE Studio這樣的整合開發環境,可以試著編譯並執行一個簡單的程式來確定IDE(整合開發環境)是否已經知道 SDK的安裝目錄。

本步驟你也可以參考本站Java開發環境配置章節的教程。


設定Web伺服器:Tomcat

目前,市場上有很多支援JSP和Servlets開發的Web伺服器。他們中的一些可以免費下載和使用,Tomcat就是其中之一。

Apache Tomcat是一個開源軟體,可作為獨立的伺服器來執行JSP和Servlets,也可以整合在 Apache Web Server中。以下是Tomcat的配置方法:

  • 下載最新版本的Tomcat:http://tomcat.apache.org/
  •  
  • 下載完安裝檔案後,將壓縮檔案解壓到一個方便的地方,比如Windows下的C:\apache-tomcat-5.5.29目錄或者Linux/Unix下的/usr/local/apache-tomcat-5.5.29目錄,然後建立CATALINA_HOME環境變數指向這些目錄。

在Windows機器下,Tomcat可以通過執行以下命令來啟動:

%CATALINA_HOME%\bin\startup.bat
或者
C:\apache-tomcat-5.5.29\bin\startup.bat

在Linux/Unix機器下,Tomcat可以通過執行以下命令來啟動:

$CATALINA_HOME/bin/startup.sh
或者
/usr/local/apache-tomcat-5.5.29/bin/startup.sh

成功啟動Tomcat後,通過訪問http://localhost:8080/便可以使用Tomcat自帶的一些web應用了。假如一切順利的話,您應該能夠看到以下的頁面:

更多關於配置和執行Tomcat的資訊可以在Tomcat提供的文件中找到,或者去Tomcat官網查閱:http://tomcat.apache.org。

在Windows機器下,Tomcat可以通過執行以下命令來停止:

%CATALINA_HOME%\bin\shutdown
或者
C:\apache-tomcat-5.5.29\bin\shutdown

在Linux/Unix機器下,Tomcat可以通過執行以下命令來停止:

$CATALINA_HOME/bin/shutdown.sh
或者
/usr/local/apache-tomcat-5.5.29/bin/shutdown.sh

設定CLASSPATH環境變數

由於servlets不是Java SE的一部分,所以您必須標示出servlet類的編譯器。

假如您用的是Windows機器,您需要在C:\autoexec.bat檔案中新增以下兩行:

set CATALINA=C:\apache-tomcat-5.5.29
set CLASSPATH=%CATALINA%\common\lib\jsp-api.jar;%CLASSPATH%

或者,在Windows NT/2000/XP下,您只要右擊我的電腦,選擇屬性,然後點選高階,然後點選環境變數,接下來便可以設定CLASSPATH變數並且確定退出即可。

在Linux/Unix機器下,假如您使用的是C shell,那麼您就需要在.cshrc檔案中新增以下兩行:

setenv CATALINA=/usr/local/apache-tomcat-5.5.29
setenv CLASSPATH $CATALINA/common/lib/jsp-api.jar:$CLASSPATH

注意:如果您的開發路徑是C:\JSPDev (Windows)或者 /usr/JSPDev (Linux/Unix),那麼您就需要將這些路徑新增進CLASSPATH變數中。

 

Eclipse JSP/Servlet 環境搭建

本文假定你已安裝了 JDK 環境,如未安裝,可參閱 Java 開發環境配置 

我們可以使用 Eclipse 來搭建 JSP 開發環境,首先我們分別下載一下軟體包:


Tomcat 下載安裝

你可以根據你的系統下載對應的包(以下以Window系統為例):

下載之後,將壓縮包解壓到D盤(你可以自己選擇):

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

 

  • bin:二進位制執行檔案。裡面最常用的檔案是startup.bat,如果是 Linux 或 Mac 系統啟動檔案為 startup.sh
  • conf:配置目錄。裡面最核心的檔案是server.xml。可以在裡面改埠號等。預設埠號是8080,也就是說,此埠號不能被其他應用程式佔用。
  • lib:庫檔案。tomcat執行時需要的jar包所在的目錄
  • logs:日誌
  • temp:臨時產生的檔案,即快取
  • webapps:web的應用程式。web應用放置到此目錄下瀏覽器可以直接訪問
  • work:編譯以後的class檔案。

接著我們可以雙擊 startup.bat 啟動 Tomcat,彈出如下介面:

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

接著我們在瀏覽器中輸入 http://localhost:8080/,如果彈出如下介面,表示tomcat安裝成功並且啟動起來了:

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

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

test.jsp 檔案程式碼如下:

<%@ page contentType="text/html;charset=UTF-8" %>
<%
out.print("w3cschool教程 : http://www.w3cschool.cn");
%> 

接著在瀏覽器中訪問地址 http://localhost:8080/test.jsp, 輸出結果如下:


將 Tomcat 和 Eclipse 相關聯

Eclipse J2EE下載後,解壓即可使用,我們開啟Java EE ,選擇選單欄Windows-->preferences(Mac 系統為 Eclipse-->偏好設定),彈出如下介面:

上圖中,點選"add"的新增按鈕,彈出如下介面:

在選項中,我們選擇對應的 Tomcat 版本,接著點選 "Next",選擇 Tomcat 的安裝目錄,並選擇我們安裝的 Java 環境:

點選 "Finish",完成配置。

建立例項

選擇 "File-->New-->Dynamic Web Project",建立 TomcatTest 專案:

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

注意如果已預設選擇了我們之前安裝的 Tomcat 和 JDK 則可跳過此步。

然後,單擊finish, 繼續:

工程檔案結構:

上圖中各個目錄解析:

  • deployment descriptor:部署的描述。
  • Web App Libraries:自己加的包可以放在裡面。
  • build:放入編譯之後的檔案。
  • WebContent:放進寫入的頁面。

在WebContent資料夾下新建一個test.jsp檔案。在下圖中可以看到它的預設程式碼:

<%@ 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>

</body>
</html>

接著我們修改下test.jsp檔案程式碼如下所示:

<%@ 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>w3cschool教程</title>
</head>
<body>
<%
    out.println("Hello World!");
%>
</body>
</html>

程式執行之前,我們先修改一下瀏覽器選項:

未標題-1(1)

接著我們執行該專案:

未標題-1

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

原因是,我們之前點選了Tomcat安裝包中的​startup.bat,這樣一來就手動打開了Tomcat伺服器,這明顯是多餘的,因為程式執行時,eclipse會自動開啟Tomcat伺服器。所以我們先手動關掉tomcat軟體,再次執行程式,就行了。控制檯資訊如下:

瀏覽器訪問 http://localhost:8080/TomcatTest/test.jsp, 即可輸出正常結果:


Servlet 例項建立

我們也可以使用以上環境建立 Servlet 檔案,選擇 "File-->New-->Servlet":

位於 TomcatTest專案的 /TomcatTest/src 目錄下建立 "HelloServlet" 類,包為 "com.youj.test":

未標題-2

HelloServlet.java 程式碼如下所示:

package com.youj.test;

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

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 使用 GBK 設定中文正常顯示
		response.setCharacterEncoding("GBK");
		response.getWriter().write("w3cschool教程:http://www.w3cschool.cn");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

接著重啟 Tomcat,瀏覽器訪問 http://localhost:8080/TomcatTest/HelloServlet