1.Tomcat概述:
Tomcat是Apache 軟件基金會中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。是由一些HTML頁面,JAVA類,JSP頁面和一些其他資源構成的。他可以在實現了Servlet規範的各種廠商的Web容器中運行。是一個使得HTML或者JSP頁面能用過瀏覽器運行的容器(環境)。
2. 啓動Tomcat:
如果是安裝包,可以找到安裝的指定路徑中找到bin文件夾,雙擊Tomcat*.exe運行。如果是zip壓縮包,則在bin文件夾下雙擊startup.bat啓動服務。
Tomcat啓動成功後,如圖:
然後在瀏覽器地址欄輸入:http://localhost:8081或者http://localhost:8080,訪問本機的Tomcat首頁。(PS:8080與8081的區別是安裝時的端口設置不同造成的)。
Tomcat下載地址:【http://tomcat.apache.org/】。
輸入無誤後,如下圖:
3. Eclipse與Tomcat的配置:
(1):打開Eclipse -> Window -> Preferences -> Server -> Runtime Enviroments-> Add -> 選擇【Apache Tomcat v7.0】(筆者安裝爲7.0) -> Next -> Browse… ->選擇之前安裝Tomcat的路徑目錄 -> Finish。
(2):指定JSP頁面的編碼格式:
打開Eclipse -> Window -> Preferences -> Web -> JSP Files -> 將Encoding 由默認格式:“ISO-8859-1”在下拉列表中改爲:“ISO 10646/Unicode(UTF-8)”。
4. 簡單網頁的製作(實例):
(1):Eclipse -> File -> new ->Dynamic Web Project -> 在”Target runtime”下拉列表中選擇【Apache Tomcat v7.0】-> 在Dynamic Web module version 下拉列表中選擇3.0-> 在Configuration下拉列表中選擇已經配置好的Tomcat服務器,筆者爲7.0。
(2):單擊“Next”-> 單擊“Next”-> Finish。
(3):在資源管理器中,選中當前工程文件夾,然後選擇下拉,選中WebContent 文件夾,單擊鼠標右鍵 -> new -> JSP File -> 在文件名中輸入:index -> Finish。
(4):隨後在工作區出現示例代碼如下:
<%@ 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>
注意,這段代碼不能刪除<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">,否則,當程序編寫涉及到中文時,運行會出現亂碼。
(5):然後,在這裏加入如下代碼:
<body>
長春大學,計算機科技八班,17號,XXX
</body>
然後運行。結果如圖:
5. 關於部分JSP語法:
(1):<body>標籤中的<% %>內部包含的是Java代碼。
JSP中包含三個指令標籤:Page ,include,taglib 他們的語法結構相同,定義如下:
<%@ 指令名 屬性1 = ”屬性值1“ 屬性2 = ”屬性值2“……%>Eg:<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
(2):JSP表達式:
<%= 表達式 %> 注意:“<%”和 “=”之間不能留有空格,否則會編譯錯誤。
Eg:<%= name %>,<%= sex %>。
(3):聲明標識:
<%!聲明變量或方法的代碼%>
(4):註釋:
①:基本HTML註釋:<!-- 註釋內容 -->
②:隱藏註釋:<%-- 註釋內容 --%>
其餘註釋方法與Java代碼一樣。
6.常用JSP動作標識:
⑴.包含動作標識<jsp:include>:
<jsp:include page = “url”flush = “false | true”/>
⑵.請求轉發動作標識<jsp:forward>:
<jsp:forward page = "url"/>
注意:使用<jsp:forward>請求轉發被轉向到的目標必須與當前的JSP代碼頁面處於同一上下文環境中,否則,會出現頁面不存在的錯誤。
代碼示例:
<body>
<jsp:forward page = "login.jsp"/></jsp:forward>
</body>
運行後,會自動跳轉到login頁面。
⑶.子動作標識<jsp:param>:
<jsp:param name = “參數名” value =“參數值”/>
例如,通過<jsp:param>標識爲<jsp:forward>標識指定參數,可以如下實現:
<jsp:forward page = “update.jsp”>
<jsp:param name = “userId” value = “1”/>
</jsp:forward>
⑷.動作標識<jsp:useBean>:
<jsp:useBean
id = “變量名”
scope = “page | request | session | application”{
class = “package.className” | type = “數據類型” |
beanName = “package.className” | type = “數據類型”}/>
<jsp:setProperty name = “變量名” property = “*”/>
/* 另外在javaBean中,<jsp:getProperty> 是用於從Bean中讀取指定的屬性,並且輸出到頁面中,該Bean必h須有getXXX( )方法
而相對應的,<jsp:setProperty>則是用於通過調用Bean中的setXXX( )方法將請求的參數一一對應地賦值給由<jsp;javaBean>標識創建的JavaBean中的簡單屬性。*/
7.九大內置對象:
⑴.概述:
可以不加聲明和創建就可以在JSP頁面腳本(Java程序片和Java表達式)中使用的成員變量,一共有9個:request , response , session , application , out , page , confing , exception , pageContext。
①:request請求對象:
該對象封裝了用戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息,即使用該獲取用戶提交的信息。當通過超鏈接的形式發送請求,請求傳遞參數時,可以通過此對象的getParameter( )獲取傳遞的參數值。
作用:壹:獲取請求參數 貳:解決中文亂碼問題
叄:獲取客戶端數據 肆:應用request對象域
②:response對象:
對客戶的請求做出動態的響應,向客戶端發送數據。它封裝了JSP產生的響應,response對象在JSP頁面內有效。
作用:壹:操作HTTP頭信息
貳:設置MIME類型 -> response.setContentType(String type)
叄:實現頁面重定向
③:out輸出對象:
JSP通過out對象向客戶端瀏覽器輸出信息並且管理頁面中的輸出緩衝區,及時清除緩衝區的殘餘數據。
④:session會話對象:
Session對象是一個JSP內置對象,它在第一個JSP頁面被裝載時自動創建,完成會話期管理。從一個客戶打開瀏覽器並連接到服務器開始,到客戶關閉瀏覽器離開這個服務器結束,被稱爲一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間切換,服務器應當通過某種辦法知道這是一個客戶,就需要Session對象。所以session對象一直在整個會話中存在,無論瀏覽器存在有多少個頁面的跳轉,session對象一般在關閉瀏覽器後纔會消失。
作用:壹:創建與獲取會話
貳:移除對話中的數據
叄:設置會話的有效時間
⑤:application應用對象:
application應用對象用於保存所有應用程序中的公有數據,與session對象相比,其生命週期更長。application應用對象在服務器啓動時自動創建,在服務器停止時銷燬,當application應用對象還未被銷燬時,所有用戶都可以共享它。
作用:壹:操作application應用對象中的數據。
貳:配置Web應用的初始化參數。
⑥:page對象:
page對象代表JSP本身,只在JSP頁面內才合法。
⑦:pageContext對象:
pageContext對象可以獲取JSP頁面的request , response , session , application , exception 等對象。
⑧:confing對象:
confing對象主要用於取得服務器的配置信息。
⑨:exception對象:exception對象用來處理JSP文件執行時所發生的所有錯誤和異常,只有在page指令中設置 isErrorPage 屬性值爲 true 的頁面中才能被使用,在一般的JSP頁面中使用該對象將無法編譯。
exception對象的常用方法:
方法 |
說明 |
getMessage( ) |
返回exception對象的異常信息字符串 |
getLocalizedmessage( ) |
返回本地化的異常錯誤 |
toString( ) |
返回關於異常的簡單信息描述 |
fillInStackaTrace( ) |
重寫異常錯誤的棧執行軌跡 |
8.JavaBean技術(簡單學習):
⑴.概述:
用戶可以使用JavaBean將功能、處理、值、數據庫訪問和其他任何可以用java代碼創造的對象進行打包,並且其他的開發者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用戶可以認爲JavaBean提供了一種隨時隨地的複製和粘貼的功能,而不用關心任何改變。
JavaBean可分爲兩種:一種是有用戶界面(UI,User Interface)的JavaBean;還有一種是沒有用戶界面,主要負責處理事務(如數據運算,操縱數據庫)的JavaBean。JSP通常訪問的是後一種JavaBean。
⑵.作用:
降低HTML與Java代碼之間的耦合度。
⑶.創建方法:
Eclipse -> File -> new -> Dynamic Web Project -> Finish -> 打開當前工程文件夾
-> 選定Java Resources:src,單擊鼠標右鍵 -> new -> class -> Finish。
⑷.部分示例代碼:
1.Produce.java:
package com.fgf;
public class Produce {
private String name = "小猿大D";
private double price = 298;
private int count = 10;
private String factoryAdd = "小猿大DXXX公司";
public void setName(String name) {this.name = name;}
public void setPrice(double price) {this.price = price;}
public void setCount(int count) {this.count = count;}
public void setFactoryAdd(String factoryAdd) {this.factoryAdd = factoryAdd;}
public String getName() {return name;}
public double getPrice() {return price;}
public int getCount() {return count;}
public String getFactoryAdd() {return factoryAdd;}
}
2.Index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<jsp:useBean id="produce" class="com.fgf.Produce"></jsp:useBean>
<jsp:setProperty property="name" name="produce" value="手機"/>
<jsp:setProperty property="price" name="produce" value="29999.235"/>
<jsp:setProperty property="count" name="produce" value="1"/>
<jsp:setProperty property="factoryAdd" name="produce" value="DAD公司"/>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>顯示商品信息</title>
</head>
<body>
<div>
<ul><li>商品名稱:<jsp:getProperty property="name"name="produce"/></li>
<li>價格:<jsp:getProperty property="price" name="produce"/>(元)</li>
<li>數量:<jsp:getProperty property="count" name="produce"/></li>
<li>廠址:<jsp:getProperty property="factoryAdd" name="produce"/></li>
</ul></div>
</body></html>
參考信息資料來源:百度百科(機械工業出版社)《JavaWeb入門經典》