1、 為什麼需要使用HTML表單
在動態網頁的開發中,HTML表單是與使用者互動資訊的主要手段。
2、HTML表單
一個表單至少應該包括說明性文字、表單控制項、提交和重填等內容。表單的首要標記是<form>,它有兩個重要參數:action和method。Action表示表單要提交到的地點,method表示表單發送的方法,有兩種:get(預設方法)和post。
<fotm name=”form1” method=”post” action=”xinxin.jsp”>
2.1、 get和post發送方式
post:post方式會將表單的內容通過http發送,在地址欄中看不到表單的提交資訊,比較安全,而且使用post方式發送資訊沒有字元長度的限制。
get方式:表單內容經過編碼之後,通過URL發送,可以在地址欄中看到表單資訊,不安全。使用get方式發送資訊時有255個字元的限制。get請求的頁面可以設定為書籤或使用郵件發送,而post不可以。
2.1.1、get方法提交時,亂碼問題解決:
String sex =request.getParameter(“xinxin”);
String tempSex = new String(sex.getBytes(“ISO-8859-1”));
……
2、 表單處理的編程模式
一般是這樣一種模式:首先,使用者通過表單控制項輸入並提交資訊。接著,JSP頁面擷取表單資料,進行邏輯處理。最後,JSP頁面根據處理結果,轉向不同的結果頁面。
3、 JSP內建對象
內建對象:內建對象就是由Web容器載入的一組類的執行個體,它不像一般的Java對象那樣用“new”去擷取執行個體,而是可以直接在JSP頁面使用的對象。
3.1、JSP內建對象out
Out對象用於在用戶端輸出資料,out對象常用的方法是:print(),這個方法用於在頁面中列印出字串資訊。
<%
out.print(“嗨。我叫新新。”);
%>
3.2、JSP內建對象request
request對象主要用於處理用戶端請求,可以在JSP頁面中通過調用request對象的方法來擷取請求的相關資料,其中包含有關瀏覽器請求的資訊。
request對象的幾個常用方法
方法名稱 |
說明 |
String getParameter(String name) |
根據頁面表單組件名稱擷取頁面提交資料 |
String[] getParameterValues(String name) |
擷取一個頁面表單組件對應多個值時的使用者的請求資料。例如:擷取多個複選框的值。 |
void setCharacterEncoding(String charset) |
指定每個請求的編碼,在調用request.getParameter()方法之前進行設定,可以用於解決中文亂碼問題。 |
request.getRequestDispatcher(String path) |
返回一個javax.servlet.RequestDispatchar對象,該對象的forward方法用於轉寄請求。 |
頁面跳轉
request.getRequestDispatcher(“success.jsp”).forward(request, response);
3.2.1、
<%
request..setCharacterEncoding(“GBK”);
String name = request.getParameter(“name”);
String pwd = request.getParameter(“pwd”);
String [] channels = request.getParameterValues(“channel”);
%>
request的getParameter()方法可以獲得上一頁面所提交的參數值。
channel所有複選框的名字,getParameterValues(“channel”)方法可以擷取到一個數組,這個數組中儲存的就是所有選中的複選框對應的值。
setCharacterEncoding()方法用來指定每個請求的編碼。
3.3、JSP內建對象response
response對象與request對象相對應,它用於響應客戶請求並向用戶端輸出資訊。
response常用方法:void sendRedirect(String location)。這個方法用來將請求重新導向到一個不同的URL。
例如:
response.sendRedirect(“xinxin.jsp”);
以上,用戶端重建立立連結,URL地址發生了改變。
使用request的getRequestDispatcher()方法進行頁面跳轉時,用戶端並沒有重建立立新的連結,用戶端的URL地址不會發生改變。