當前位置:首頁 » 密碼管理 » 通過url訪問servlet

通過url訪問servlet

發布時間: 2022-07-11 17:50:52

A. JSP 如何通過URL向SERVLET 傳值

直接在url地址後面加上「?」然後後面寫上你的參數就行了多個參數之間用'&',給你舉個例子哈:
<a href="/myServlet?param1=aa&m2=bb" ,在後台你直接用request.getParameter("param1")得到aa的值

B. Myeclipse中新建一個Servlet,瀏覽器訪問Servlet路徑URL,謝謝

web.xml里有 <url-pattern></url-pattern>標簽,標簽中間就是你這個servlet的訪問路徑

C. 超鏈接跳轉到servlet url跟怎麼寫

代碼應該有一段geturl函數,geturl用法是geturl("url","窗口","方法")
url為鏈接的地址
windows為打開窗口的方式,_selt:在當前的瀏覽器窗口打開;_blank:在新的窗口打開
如geturl("
www..com
","_self")意思是在當前窗口打開
www..com
參數說明:
[1]url參數:url用來獲得文檔的統一定位資源。注意填寫的時候要書寫完整比如
www.sina.com.cn
可以在ie地址欄里直接書寫,但在這里,我們必須寫成
http://www.sina.com.cn
才可以,當然ftp地址、cgi腳本等也都可以作為其參數。
以上是絕對地址,它完整書寫了統一定位資源。其實這里也可以使用相對地址:如果swf與要打開的資源屬於同一目錄下,可直接書寫要打開的文件名及後綴。如geturl("aaa.swf);
如果資源在下一層目錄,就以/開頭,如geturl("/aaa.swf");如果資源在上層目錄,就以../開頭,如gerurl("../aaa.swf)";以上說的目錄是指swf文件存放的目錄為基準。
[2]windows參數:設置所要訪問鏈接的網頁窗口打開方式。可自己輸入貞或窗口名稱(配合dreamweaver里框架的設置)。也可以通過下拉列表選擇
_self:在當前的瀏覽器打開鏈接。
_blank:在新窗口打開網頁。
_parent:在當前位置的上一級瀏覽器窗口打開鏈接。若有多個相互嵌套的框架,而又想所鏈接的url只替換影片自身所在的頁面時,可以使用這一選項。_top:在當前瀏覽器上方新開一個鏈接。如果你在dreamweaver里設置了一些框架,本影片位於某一框架中,當你希望鏈接的url不替代任何框架而出現在所有框架之上時,ok,選它好了。
[3]variable參數:規定參數的傳輸方式。大多數情況下,其默認參數為don't
send。如果要將內容提交給伺服器的腳本,就要選send
using
get或者send
using
post。"。"get"表示將參數列表直接添加到url之後,與之一起提交,一般適用與參數較少且簡單的情況,"post"表示將參數列表單獨提交,在速度上會慢一些,但不容易丟失數據,適用與參數較多較復雜的情況。

D. 如何通過URLConnection向HttpServlet發送信息

針對JDK中的URLConnection連接Servlet的問題,網上有雖然有所涉及,但是只是說明了某一個或幾個問題,是以FAQ的方式來解決的,而且比較零散,現在對這個類的使用就本人在項目中的使用經驗做如下總結:
1:> URL請求的類別:
分為二類,GET與POST請求。二者的區別在於:
a:) get請求可以獲取靜態頁面,也可以把參數放在URL字串後面,傳遞給servlet,
b:) post與get的不同之處在於post的參數不是放在URL字串裡面,而是放在http請求的正文內。
2:> URLConnection的對象問題:
URLConnection的對象,如下代碼示例:
// 下面的index.jsp由<servlet-mapping>映射到
// 一個Servlet(com.quantanetwork.getClientDataServlet)
// 該Servlet的注意點下邊會提到
URL url = new URL("http://localhost:8080/TestHttpURLConnectionPro/index.jsp");
URLConnection rulConnection = url.openConnection();// 此處的urlConnection對象實際上是根據URL的
// 請求協議(此處是http)生成的URLConnection類
// 的子類HttpURLConnection,故此處最好將其轉化
// 為HttpURLConnection類型的對象,以便用到
// HttpURLConnection更多的API.如下:
HttpURLConnection httpUrlConnection = (HttpURLConnection) rulConnection;
3:> HttpURLConnection對象參數問題
// 設置是否向httpUrlConnection輸出,因為這個是post請求,參數要放在
// http正文內,因此需要設為true, 默認情況下是false;
httpUrlConnection.setDoOutput(true);
// 設置是否從httpUrlConnection讀入,默認情況下是true;
httpUrlConnection.setDoInput(true);
// Post 請求不能使用緩存
httpUrlConnection.setUseCaches(false);
// 設定傳送的內容類型是可序列化的java對象
// (如果不設此項,在傳送序列化對象時,當WEB服務默認的不是這種類型時可能拋java.io.EOFException)
httpUrlConnection.setRequestProperty("Content-type", "application/x-java-serialized-object");
// 設定請求的方法為"POST",默認是GET
httpUrlConnection.setRequestMethod("POST");
// 連接,從上述第2條中url.openConnection()至此的配置必須要在connect之前完成,
httpUrlConnection.connect();
4:> HttpURLConnection連接問題:
// 此處getOutputStream會隱含的進行connect(即:如同調用上面的connect()方法,
// 所以在開發中不調用上述的connect()也可以)。
OutputStream outStrm = httpUrlConnection.getOutputStream();

5:> HttpURLConnection寫數據與發送數據問題:
// 現在通過輸出流對象構建對象輸出流對象,以實現輸出可序列化的對象。
ObjectOutputStream objOutputStrm = new ObjectOutputStream(outStrm);
// 向對象輸出流寫出數據,這些數據將存到內存緩沖區中
objOutputStrm.writeObject(new String("我是測試數據"));
// 刷新對象輸出流,將任何位元組都寫入潛在的流中(些處為ObjectOutputStream)
objOutputStm.flush();
// 關閉流對象。此時,不能再向對象輸出流寫入任何數據,先前寫入的數據存在於內存緩沖區中,
// 在調用下邊的getInputStream()函數時才把准備好的http請求正式發送到伺服器
objOutputStm.close();
// 調用HttpURLConnection連接對象的getInputStream()函數,
// 將內存緩沖區中封裝好的完整的HTTP請求電文發送到服務端。
InputStream inStrm = httpConn.getInputStream(); // <===注意,實際發送請求的代碼段就在這里
// 上邊的httpConn.getInputStream()方法已調用,本次HTTP請求已結束,下邊向對象輸出流的輸出已無意義,
// 既使對象輸出流沒有調用close()方法,下邊的操作也不會向對象輸出流寫入任何數據.
// 因此,要重新發送數據時需要重新創建連接、重新設參數、重新創建流對象、重新寫數據、
// 重新發送數據(至於是否不用重新這些操作需要再研究)
objOutputStm.writeObject(new String(""));
httpConn.getInputStream();

總結:a:) HttpURLConnection的connect()函數,實際上只是建立了一個與伺服器的tcp連接,並沒有實際發送http請求。
無論是post還是get,http請求實際上直到HttpURLConnection的getInputStream()這個函數裡面才正式發送出去。
b:) 在用POST方式發送URL請求時,URL請求參數的設定順序是重中之重,
對connection對象的一切配置(那一堆set函數)
都必須要在connect()函數執行之前完成。而對outputStream的寫操作,又必須要在inputStream的讀操作之前。
這些順序實際上是由http請求的格式決定的。
如果inputStream讀操作在outputStream的寫操作之前,會拋出例外:
java.net.ProtocolException: Cannot write output after reading input.......

c:) http請求實際上由兩部分組成,
一個是http頭,所有關於此次http請求的配置都在http頭裡面定義,
一個是正文content。
connect()函數會根據HttpURLConnection對象的配置值生成http頭部信息,因此在調用connect函數之前,
就必須把所有的配置准備好。
d:) 在http頭後面緊跟著的是http請求的正文,正文的內容是通過outputStream流寫入的,
實際上outputStream不是一個網路流,充其量是個字元串流,往裡面寫入的東西不會立即發送到網路,
而是存在於內存緩沖區中,待outputStream流關閉時,根據輸入的內容生成http正文。
至此,http請求的東西已經全部准備就緒。在getInputStream()函數調用的時候,就會把准備好的http請求
正式發送到伺服器了,然後返回一個輸入流,用於讀取伺服器對於此次http請求的返回信息。由於http
請求在getInputStream的時候已經發送出去了(包括http頭和正文),因此在getInputStream()函數
之後對connection對象進行設置(對http頭的信息進行修改)或者寫入outputStream(對正文進行修改)
都是沒有意義的了,執行這些操作會導致異常的發生。
6:> Servlet端的開發注意點:
a:) 對於客戶端發送的POST類型的HTTP請求,Servlet必須實現doPost方法,而不能用doGet方法。
b:) 用HttpServletRequest的getInputStream()方法取得InputStream的對象,比如:
InputStream inStream = httpRequest.getInputStream();
現在調用inStream.available()(該方法用於「返回此輸入流下一個方法調用可以不受阻塞地
從此輸入流讀取(或跳過)的估計位元組數」)時,永遠都反回0。試圖使用此方法的返回值分配緩沖區,
以保存此流所有數據的做法是不正確的。那麼,現在的解決辦法是
Servlet這一端用如下實現:
InputStream inStream = httpRequest.getInputStream();
ObjectInputStream objInStream = new ObjectInputStream(inStream);
Object obj = objInStream.readObject();
// 做後續的處理
// 。。。。。。
// 。。。 。。。
而客戶端,無論是否發送實際數據都要寫入一個對象(那怕這個對象不用),如:
ObjectOutputStream objOutputStrm = new ObjectOutputStream(outStrm);
objOutputStrm.writeObject(new String("")); // 這里發送一個空數據
// 甚至可以發一個null對象,服務端取到後再做判斷處理。
objOutputStrm.writeObject(null);
objOutputStrm.flush();
objOutputStrm.close();
注意:上述在創建對象輸出流ObjectOutputStream時,如果將從HttpServletRequest取得的輸入流
(即:new ObjectOutputStream(outStrm)中的outStrm)包裝在BufferedOutputStream流裡面,
則必須有objOutputStrm.flush();這一句,以便將流信息刷入緩沖輸出流.如下:
ObjectOutputStream objOutputStrm = new ObjectOutputStream(new BufferedOutputStream(outStrm));
objOutputStrm.writeObject(null);
objOutputStrm.flush(); // <======此處必須要有.
objOutputStrm.close();

E. jsp怎麼和後台servlet連接

在JSP頁面用form標簽即可實現:
<form method="get" action="servletOfDownload">
當該頁面跳轉的時候,即跳轉到servletOfDownload所指定的頁面

F. 超鏈接跳轉servlet

在執行請求Servlet過程,它會根據你的需要選擇doget()或doPost()。所以一般只需要在一個之中寫處理邏輯,然後在另一個裡面調用即可。
關於路徑問題,如果出現404錯誤說明請求的資源不存在,你可以嘗試著去修改路徑測試(一般從兩個方面入手:相對於工程根目錄、相對於當前所在目錄),增強你的排查錯誤能力。

G. 怎麼通過超鏈接調用servlet

通過紅色框中的路

勁訪問。特別提醒你的nyself要繼承extendsHttpServlet,並重寫方法,

H. servlet怎樣輸入URL用瀏覽器訪問

<servlet-name>這里填寫你定義的該servlet標簽的名稱,可以隨便填寫,但要與下面的標簽名稱保持一致</servlet-name>
<servlet-class>這里填寫你想要讓提交路徑響應的servlet類的路徑,要完整的路徑(包括servlet所在的報名)</servlet-class>
<servlet-name>這里與上面的隨便填寫的名稱保持一致</servlet-name>
<url-pattern>這里填寫你的form表單中的action屬性(提交路徑)<url-pattern>

I. 如何通過地址欄訪問servlet,地址要怎麼填

地址欄要用http://地址:埠/項目名稱+web.xml的servlet-mapping中url-partner,如果後面有參數的話,再加上?參數名=參數值&[參數名=參數值]

熱點內容
安卓qq邀請碼在哪裡尋找 發布:2025-05-15 00:02:04 瀏覽:33
三菱fx編程口 發布:2025-05-15 00:01:23 瀏覽:809
醫院招商引資宣傳片腳本 發布:2025-05-15 00:01:21 瀏覽:367
linuxcftp伺服器 發布:2025-05-14 23:58:18 瀏覽:717
探岳什麼配置才有駕駛模式選擇 發布:2025-05-14 23:53:17 瀏覽:144
如何在手機上看無限流量密碼 發布:2025-05-14 23:43:31 瀏覽:114
19投籃腳本 發布:2025-05-14 23:36:57 瀏覽:513
編譯器怎麼處理c變長數組 發布:2025-05-14 23:31:46 瀏覽:663
存摺每天可以輸錯多少次密碼 發布:2025-05-14 23:22:06 瀏覽:909
安卓手機怎麼找微信隱藏對話 發布:2025-05-14 23:07:47 瀏覽:338