Servlet傳遞資料方式

2021-09-07 15:49:33 字數 2811 閱讀 3207

servlet傳遞資料的方式有很多,這裡提供五種方式:

1、靜態變數

2、httpservletresponsesendredirect()方法

3、httpservletrequest的getrequestdispatch()方法

4、httpservletrequest的getsession()方法

5、httpservletrequest的setattribute()方法

通過建立乙個資料類來進行傳遞。

案例:public class mydata{

public static string data; //通過使用該類來實現資料傳遞

sendredirect()方法是讓瀏覽器重定向到另乙個鏈結。其內部原理是設定狀態碼為303,並設定相應的location響應頭。

基本語法:

response.sendredirect("/web應用名/資源名?uname="+username+"&pwd="+password);

response.sendredirect(「servlet的位址?引數名=引數值&引數名=引數值...」);

參照值是string , 引數名應當使用 字母組合

在接受資料的servlet中:

string 引數=request.getparameter(「引數名」);

基本原理圖

ps:使用重定向不能使用printwrite,servletoutputstream這樣的流。因為重定向已經將訊息返回給瀏覽器,其資料流也就沒必要使用了。

getrequestdispatch()方法是使web伺服器從當前servlet**到當前應用下的另乙個servlet。

基本語法:

request.getrequestdispatcher(資源位址).forward(request,response);

。基本原理圖

ps:getrequestdispatcher()請求**可以一直**下去,只要最終會處理並給伺服器相應內容就行了。而且請求**不會改變瀏覽器的url,sendredirect()會改變url。

注意事項:

1、使用forward不能**到該web應用外的url

2、因為forward發生在文字伺服器內,所以servlet1、servlet2等等,只要一直**,使用的都是相同的request和response

getsession()方法會獲取乙個會話,這個內容會在另一篇部落格會話技術中詳細說明。

基本語法:

1、放入session:request.getsession.setattribute("loginuser",username); 

2、取出session:request.getsession.getattribute("loginuser");

ps:該方法可以傳遞物件

案例:放入:

user user= new user();

user.setname(「zs」);

user.setpassword(「123」);

request.getsession.setattribute("userobj",userobj); 

取出:user user=(user)request.getsession.getattribute(「userobj」);

setattribute()方法可以設定乙個鍵值對,該鍵值對在該request的有效期內都可以使用。相應的還有removeattribute()登出鍵值對的方法。該方法經常和getrequestdispatch()一起使用。

基本語法:

setattribute(name, value);

ps:request的attribute在一次請求中有效。一次請求:沒有將響應訊息返回給瀏覽器就視為一次請求

1、sendredirect()重定向,forward()**

2、實際發生的位置不一樣

sendredirect 發生在瀏覽器

forward 發生在web伺服器

3、使用用法不一樣

request.getrequestdispatcher(「/資源uri」).forward(request,response)

response.sendredirect(「/web應用/資源uri」);

4、能夠去url範圍不一樣

sendredirect可以去任意url

forward 只能去當前的web應用的資源

參考:servlet傳遞資料方式 - csdn部落格

ApiView方式傳遞資料

安裝drf python 終端輸入 在 settings.py 檔案中匯入 aipview方法導包from rest framework.views import apiview from rest framework.response import response用apiview方法建立檢視類c...

servlet之間的資料傳遞 使用POST方法

用postmethod 模擬http post請求,需要解決傳遞字串,檔案等需求。httpclient對此,提供了對應實現,實現方法關鍵在 requestentity。示例 requestentity requestentity newstringrequestentity text post.se...

servlet之間的資料傳遞 使用POST方法

相關jar包 用postmethod 模擬http post請求,需要解決傳遞字串,檔案等需求。httpclient對此,提供了對應實現,實現方法關鍵在 requestentity。示例 requestentity requestentity newstringrequestentity text ...