詳解servlet調(diào)用的幾種簡單方式總結(jié)
servlet調(diào)用的幾種簡單方式
這里總結(jié)的是我在學(xué)習(xí)web開發(fā)的過程中需要用到的幾種比較常見的用于轉(zhuǎn)發(fā)和調(diào)用servlet的方式,這些方式的使用率非常高。在網(wǎng)上總結(jié)了相關(guān)的方法,大多對于初學(xué)者不是特別的友好,自己總結(jié)了一下。
1.servlet直接轉(zhuǎn)發(fā)到另一個servlet
我們在進(jìn)行jsp頁面點擊按鈕進(jìn)行登錄的時候,首先需要登錄到進(jìn)行登錄檢查的servlet,但是在下個jsp頁面,我們需要那個頁面通過servlet進(jìn)行轉(zhuǎn)發(fā),所以需要從servlet直接跳轉(zhuǎn)到另一個servlet,其實寫法很簡單,只要保證映射地址正確即可.
response.sendRedirect("xxxxx");
xxxx: 是你需要轉(zhuǎn)發(fā)的servlet的映射地址
2.使用a標(biāo)簽跳轉(zhuǎn)到servlet的兩種情況
1.第一種情況
每一個功能對應(yīng)一個servlet的時候,這時我們用標(biāo)簽直接調(diào)用servlet的時候,語法如下:
<a href="product?&cid=${cid}&page=${status.index}" rel="external nofollow" >${status.index}</a>
其中product是對應(yīng)的servlet的映射地址,用?問好隔開,& + 參數(shù)名+ = + 參數(shù)值,參數(shù)值可以用el表達(dá)式去表示。
2.第二種情況
當(dāng)我們把多個servlet進(jìn)行合并的時候,對應(yīng)的每一個servlet肯定都會有相應(yīng)的描述的方法,這種情況下使用a標(biāo)簽進(jìn)行servlet的調(diào)用語法如下:
<a href="product?method=productList&cid=${cid}&page=${status.index}" rel="external nofollow" >${status.index}</a>
其中product是對應(yīng)的servlet的映射地址,中間使用?問好隔開,method+ = 方法 即 productList,后面的參數(shù)和參數(shù)名稱和第一種情況的表示方式一樣。
3.最簡單的一種用表單調(diào)用
直接在表單的action中添加servlet的映射地址,同時表明該提交servlet的方法是get還是post,兩種區(qū)別還是比較大的。
<form action="servlet" method="get"> <input type="submit" value="test"> </form>
4.通過腳本編寫函數(shù)的方式調(diào)用servlet
首先我們先些一個按鈕,即button,這里要特別主題該按鈕需要放在表單里面才會有效果,即相當(dāng)于一個提交的效果。
//這里為按鈕添加了onclick的時間,并鏈接到一個函數(shù)上 <input type="button" value="button" "test();"> //這里是函數(shù)部分,用于跳轉(zhuǎn)到需要使用的servlet上 function test() { var f=document.forms[0]; f.action="servlet"; //這里填寫的是servlet的映射地址 f.submit(); }
這里的本質(zhì)是把button按鈕賦予了submit的功能。
5. 通過ajax請求servlet
因為ajax的優(yōu)點不僅在于可以在不轉(zhuǎn)發(fā)servlet的情況下進(jìn)行頁面的更新
通過ajax實現(xiàn)請求:
function Test(id) { $.ajax({ type:"get", url:"${pageContext.request.contextPath }/Servlet", data:{"id":id} }); }
這里的路徑URL有固定的格式,后面跟的servlet是需要調(diào)用的servlet的映射地址
再舉一個例子,也掌握一下ajax的具體用法
//以下是js中的ajax <script type="text/javascript"> function ajaxFun(){ $.ajax({ type: "POST", //傳數(shù)據(jù)的方式 url: "TestServlet", //servlet地址 data: $('#form').serialize(), //傳輸?shù)氖莊orm表單里面的數(shù)據(jù) success: function(result){ //傳數(shù)據(jù)成功之后的操作 result是servlet傳回來的數(shù)據(jù) 這個函數(shù)對result進(jìn)行處理,讓它顯示在 輸入框中,也就是回調(diào)一個函數(shù),但是概念不同 $("#result").val(result); //根據(jù)id找到輸入框 并且將result的值傳進(jìn)去 } }); } </script> //下面是html的代碼和表單 <div align="center"><form id="form"> first:<input type="text" name="first" id="first"> second:<input type="text" name="second" id="second"> //這里給按鈕添加了點擊的事件 <button type="button" "ajaxFun()">button</button> //提交按鈕 </form> // 用來顯示result的文本框 <input type="text" id="result"> </div> //上面的請求需要返回result 那么這個值由servlet去返回 部分代碼如下 String first = request.getParameter("first"); //從頁面獲取數(shù)據(jù)first String second = request.getParameter("second"); //從頁面獲取數(shù)據(jù)second String result=first+second; System.out.println(result); //用于測試打印是否有數(shù)據(jù); out.println(result); //將數(shù)據(jù)傳到前端,這步非常重要
到此這篇關(guān)于詳解servlet調(diào)用的幾種簡單方式總結(jié)的文章就介紹到這了,更多相關(guān)servlet調(diào)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java常用數(shù)字工具類 數(shù)字轉(zhuǎn)漢字(1)
這篇文章主要為大家詳細(xì)介紹了Java常用數(shù)字工具類,數(shù)字轉(zhuǎn)漢字,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05Springboot項目長時間不進(jìn)行接口操作,提示HikariPool-1警告的解決
這篇文章主要介紹了Springboot項目長時間不進(jìn)行接口操作,提示HikariPool-1警告的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Java 3種方法實現(xiàn)進(jìn)制轉(zhuǎn)換
這篇文章主要介紹了Java 3種方法實現(xiàn)進(jìn)制轉(zhuǎn)換,幫助大家利用Java處理數(shù)據(jù),感興趣的朋友可以了解下2020-09-09SpringBoot整合Redis哨兵模式的實現(xiàn)示例
Redis哨兵模式是Redis高可用方案的一種實現(xiàn)方式,通過哨兵來自動實現(xiàn)故障轉(zhuǎn)移,從而保證高可用,本文主要介紹了SpringBoot整合Redis哨兵模式的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-02-02Java使用黑盒方式模擬實現(xiàn)內(nèi)網(wǎng)穿透
這篇文章主要介紹了Java使用黑盒方式模擬實現(xiàn)內(nèi)網(wǎng)穿透,內(nèi)網(wǎng)穿透,也即 NAT 穿透,進(jìn)行 NAT 穿透是為了使具有某一個特定源 IP 地址和源端口號的數(shù)據(jù)包不被 NAT 設(shè)備屏蔽而正確路由到內(nèi)網(wǎng)主機(jī),需要的朋友可以參考下2023-05-05Java日期操作方法工具類實例【包含日期比較大小,相加減,判斷,驗證,獲取年份等】
這篇文章主要介紹了Java日期操作方法工具類,結(jié)合完整實例形式分析了java針對日期的各種常見操作,包括日期比較大小,相加減,判斷,驗證,獲取年份、天數(shù)、星期等,需要的朋友可以參考下2017-11-11