JSP開發web應用程序

第1章 動態網站開發基礎

1.         動態網頁是指服務器端運行的程序或者網頁,它們會隨不同客戶,不同時間,返回不同的內容。

 

2.         隨着Internet技術的興起,B/S結構是對C/S結構的一種變化或者改進的結構。在這種結構下,程序完全放在應用服務器上,並通過應用服務器同數據庫服務器進行通信。

 

3.         開發JSP動態網站的步驟如下:

a)         創建一個Web項目

b)        設計Web項目的目錄結構

c)        編寫Web項目的代碼

d)        部署Web項目

e)         運行Web項目

 

4.         做Web程序開發時,要避免如下錯誤:

a)         未啓動Tomcat服務,或者沒有在預期的端口中啓動Tomcat服務。

b)        未部署Web應用,就試圖運行Web程序

c)        運行時,URL輸入錯誤。

d)        存放文件的目錄無法對外引用,如文件放入了Web-INF、Mate-inf等文件夾中。

 

 

第2章 用集合存儲對象

1.         集合框架

由於數組在存放元素時必須要確定初始元素的個數。所以引入使用集合存儲。

 

2.         Java集合框架包含的內容

java集合框架 提供了一套性能優良、使用方便的接口和類。完整的Java集合框架位於java.uril包中,包含衆多的接口和類。

a)         接口

Collection是最基本的集合接口,一個Collection代表一組元素。

List接口繼承自Collection接口。List是有序集合,允許有相同的元素。

Map提供key(鍵)到value(值)的映射。一個Map中不能包含 相同的key,每個key只能映射一個value。

b)        具體類

實現List接口的常用的類有ArrayList和LinkedList。它們都可以容納所有類型的對象,包括null。

ArrayList實現了可變大小的數組。它的優點在於遍歷元素和隨機訪問元素的效率比較高。

LinkedList可以在其首部或尾部進行插入或者刪除操作。

HashMap是Map接口的實現類,實現了一個鍵到值的映射的哈希表。

 

3.         List接口和ArrayList類

 

List接口中定義的各種常用方法

返回類型

方  法

說  明

boolean

add(Object o)

在列表的末尾順序添加元素,起始 索引位置從0開始

int

size()

返回列表中的元素個數

Object

get(int index)

返回指定索引位置處的元素

注意:取出的元素是Object類型,使用前需要進行強制類型轉換

void

add(int index; Object o)

在指定的索引位置添加元素

注意:索引位置必須介於0和列表中元素個數之間

boolean

contains(Object o)

判斷列表中是否存在指定元素

boolean

remove(Object o)

從列表中刪除元素

 

4.         List接口和LinkedList類

LinkedList的一些特殊方法

返回類型

方  法

說   明

void

addFirst(Object o )

在列表的首部添加元素

void

addList(Object o)

在列表的末尾添加元素

Object

getFirst()

返回列表中的第一個元素

Object

getLast()

返回列表中的最後一個元素

Object

removeFirst()

刪除並返回列表中的第一個元素

Object

removeLast()

刪除並返回列表中的最後一個元素

 

5.         Map接口和HashMap類

HashMap的常用方法

返回類型

方  法

說  明

Object

put(Object key,Object value)

以“鍵-值對”的方式進行存儲

注意:鍵必須是唯一的,值可以重複。如果試圖添加重複的鍵,那麼最後加入的鍵-值對將替換掉原先的鍵-值對

Set

keySet()

返回鍵的集合

Collection

values()

返回值的集合

boolean

containsKey(Object key)

如果存在由指定的鍵映射的“鍵-值對”,返回true

Object

get(Object key)

根據檢返回相關聯的值,如果不存在指定的鍵,返回null

Object

remove(Object key)

刪除由指定的鍵映射的“鍵-值對”

 


第3章 訪問數據庫

1.         JDBC API

JDBC API可做三件事:與數據庫建立連接、發送SQL語句、處理結果。

JDBC API工作的4個環節:

(1)DriverManager類:依據數據庫的不同,管理JDBC驅動。

(2)Connection接口:負責連接數據庫並擔任傳送數據的任務。

(3)Statement接口:由Connection產生,負責執行SQL語句

(4)ResultSet接口:負責保存Statement執行後所產生的查詢結果。

 

2.         JDBC程序的代碼模塊

1)        把JDBC驅動類裝載入Java虛擬機中。

Class.forName(“JDBC驅動類的名稱”)

2)        加載驅動,並與數據庫建立 連接。

Connection con = DriverManager.getConnection(數據連接字符串,數據庫用戶名,密碼)

3)        發送SQL語句,並得到結果集

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(“select a,b,c from table1”);

4)        處理結果

while(rs.next()){

       int x = rs.getInt(“a”);

       String s = rs.getString(“b”);

       float f = rs.getFloat(“c”);

}

3.         Statement語句

Statement接口中執行SQL命令的三個方法:

a)         ResulSet executeQuery(String sql):可以執行SQL查詢並獲取到ResultSet對象。

b)        int executeUpdate(String sql):可以執行插入、刪除、更新等操作,返回值是執行該操作所影響的行數。

c)        boolean execute(String sql ):這是一個最爲一般的執行方法,可以執行任意SQL語句,然後獲得一個布爾值,表示是否返回ResultSet。

 

4.         PreparedStatement語句

PreparedStatement接口繼承自Statement接口,PreparedStatement比普通的Statement對象使用起來更加靈活、更有效率。

 

PreparedStatement實例包含已編譯的SQL語句,SQL語句可具有一個或多個輸入參數。這些輸入參數的值在SQL語句創建時未被指定,而是爲每個輸入參數保留一個問號(“?”)作爲佔位符。

PreparedStatement pstmt = con.prepareStatement(“update table set a= ? where b = ? ” );

 

在執行時:pstmt.setLong(1.123456789);    pstmt.setInt(2,10);

PreparedStatement對象的executeUpdate()方法 可以執行對數據的增、刪、改的操作。返回一個int類型的值。

executeQuery()方法 可以執行對數據的查詢。返回一個結果集。

 

 

第4章 JSP簡介

1.         JSP的頁面組成

JSP是通過在HTML中嵌入Java腳本語言來響應頁面動態請求。

JSP頁面由靜態內容、指令、表達式、小腳本、聲明、標準動作、註釋等元素構成。

 

a)         指令

JSP指令一般也“<%@”開始,以“%>”結束。

例:

<%@ page language=”java” import=”java.util.*,java.text.*” contextType=”text/html; charset = GBK”%>

 

b)        小腳本

小腳本可以包含任意的Java片段,編寫方法就是將Java程序片斷插入到<% %>標記中。

 

例:

<%

       //使用預定格式將日期轉換爲字符串

       SimpleDateFormat formater = new SimpleDateFormat(“yyyy年MM月dd日”);

       String strCurrentTime = formatter.format(new Date());

%>

c)        表達式

當需要在頁面中獲取一個Java變量或者表達式值時,可以使用表達式。基本語法是:<%=Java表達式%>

例:

<%=strCurrentTime%>

d)        註釋

<!--這是HTML註釋(客戶端可以看到源代碼)-->

<%--這是JSP註釋(客戶端不可以看到源代碼)--%>

<%  /* 多行註釋 */  %>

<%

       //使用預定格式將日期轉換爲字符串

%>


 

2.         Web容器處理JSP文件請求需要經過三個階段

l         翻譯(translation)階段。JSP文件會被Web容器中的JSP引擎轉換成Java源碼。

l         編譯(compilation)階段。Java源碼會被編譯成可執行的字節碼。

l         執行階段。容器接受了客戶端的請求後,執行編譯成字節碼的JSP文件。處理完請求後,容器把生成德頁面反饋個給客戶端進行顯示。

 

第5章 JSP指令和腳本元素

 

1.         page指令  就是通過設置內部的多個屬性來定義JSP文件中的全局特性。page指令只能對當前自身頁面進行設置。即每個頁面都有自身的page指令。

page指令常用屬性

屬   性

描   述

language

指令JSP頁面使用的腳本語言,默認爲Java

import

通過該屬性來引用腳本語言中使用到的類文件

contentType

用來指定JSP頁面所採用的編碼方式,默認爲text/html

1)        language屬性

page指令中的language屬性用來指定當前JSP頁面所採用的腳本語言。

例:<%@page language=”java”%>

2)        import屬性

通過import屬性可以在JSP文件的腳本片段中引用外在的類文件。如果一個import屬性引入多個類文件時,需要在多個類文件之間用逗號隔開。

例:

<%@ page import=”java.util.*,java.text.*” %>

 

2.         JSP腳本元素

在JSP頁面中可以包含靜態內容、指令、表達式、小腳本、聲明、標準動作以及註釋。

其中,表達式(expression)、小腳本(scriptlet)、聲明(declaration)統稱爲Java腳本元素。用來嵌入Java代碼,實現頁面動態請求。

 

3.         JSP九個內置對象

1)        out

2)        page

3)        pageContent

4)        request

5)        response

6)        session

7)        application

8)        Exception

9)        config

 

第6章 使用JSP處理客戶端請求

 

一、HTML表單

表單的標記是<form>,它的兩個重要參數:action和method。

action表示表單要提交到的地點    method表示表單發送的方法。一般用post

 

二、JSP內置對象

1.         request對象

例:

<%

request.setCharacterEncoding(“GBK”);

String titleName=request.getParameter(“titlename”);

%>

request對象的幾個常用的方法

方法名稱

說   明

String getParameter(String name)

根據頁面表單組件名稱獲取頁面提交數據

String[] getParameterValues(String name)

獲取一個頁面表單組件對應多個值時的用戶的請求數據

void setCharacterEncoding(String charset)

指定每個請求的編碼,在調用request.getParameter()方法之前進行設定,可以用於解決中文亂碼問題

request.getRequestDispatcher(String path)

返回一個javax.servlet.RequestDispatcher對象,該對象的formard方法用於轉發請求

 

2.         out對象

例:

<%

out.print(“hello ACCP”);

%>

 

3.         response對象

response對象的常用方法void sendRedirect(String location),這個方法用來將請求重定向到一個不同的URL。

例:

String name = request.getParameter(“userName”);

String pwd = request.getParameter(“pwd”);

if(name.equal(“sa”) && pwd.equals(“sa”)){

       response.sendRedirect(“welcome.jsp”);

}

      

       當需要類型轉換時用Integer.parseInt(“獲取到的東西”);

       例:int parentTitleId = Integer.parseInt(request.getParameter(“parenttitle”));


 

第7章JSP頁面的訪問控制

一、JSP內置對象session

session對象用來存儲有關用戶會話的所有信息

session對象的常用方法:

a)         void setAttribute(String key,Object value):以鍵/值的方式,將一個對象的值存放到session中去。例如:session.setAttribute(“name”,”admin”); 含義是把字符串admin存放到session中去,它對應的鍵時name。

b)        Object getAttribute(String key):根據鍵去獲取session中存放的對象的值。

例: String name = (String) session.getAttribute(“name”);  通過名稱name的鍵獲取session中存放的對象的值。

 

每個session對象都與瀏覽器一一對應,也就是說,重新開啓一個瀏覽器窗口。相當於重新創建一個session對象。

 

二、include指令

include指令可以將一些共性的內容寫入一個單獨的文件中,然後通過include指令引用該文件,從而緩解代碼的冗餘問題。

例:

<%@ include file=”checklogin.jsp”%>

 

三、內置對象application

application對象的常用方法:

1.              void setAttribute(String key,Object value):以鍵/值的方式,將一個對象的值存放到application中。

2.              Object getAttribute(String key):根據鍵去獲取application中存放對象的值。

例:

if(rs.next()){

       User logineduser = new User(name,pass);

       session.setAttribute(“Logined_user”,logineduser);

 

List loginedUsers = new ArrayList();   //訪問者列表

//全局範圍內取出原有的訪問者列表

if(application.getAttribute(“Logined_user”) !=null){

       loginedUsers = (List)application.getAttribute(“Logined_user”);

}

//把新登錄用戶的信息存入訪問者列表中

loginedUsers.add(logineduser);

//在全局範圍內存入訪問者列表

application.setAttribute(“Logined_user”,loginedUsers);

}

 

JSP的幾個常用的內置對象

內置對象名稱

說   明

out對象

用於向客戶輸出數據

request對象

主要用於客戶端的請求處理

response對象

用於響應客戶請求並向客戶端輸出信息

session對象

用來存儲有關用戶會話的所有信息

application對象

類似於系統的全局變量,用於實現用戶之間的數據共享

page

 

Exception

 

pageContent

 

config

 

 

發佈了10 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章