使用JSP處理用戶端請求__JSP

來源:互聯網
上載者:User

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地址不會發生改變。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.