詳解servlet調(diào)用的幾種簡(jiǎn)單方式總結(jié)
servlet調(diào)用的幾種簡(jiǎn)單方式
這里總結(jié)的是我在學(xué)習(xí)web開(kāi)發(fā)的過(guò)程中需要用到的幾種比較常見(jiàn)的用于轉(zhuǎn)發(fā)和調(diào)用servlet的方式,這些方式的使用率非常高。在網(wǎng)上總結(jié)了相關(guān)的方法,大多對(duì)于初學(xué)者不是特別的友好,自己總結(jié)了一下。
1.servlet直接轉(zhuǎn)發(fā)到另一個(gè)servlet
我們?cè)谶M(jìn)行jsp頁(yè)面點(diǎn)擊按鈕進(jìn)行登錄的時(shí)候,首先需要登錄到進(jìn)行登錄檢查的servlet,但是在下個(gè)jsp頁(yè)面,我們需要那個(gè)頁(yè)面通過(guò)servlet進(jìn)行轉(zhuǎn)發(fā),所以需要從servlet直接跳轉(zhuǎn)到另一個(gè)servlet,其實(shí)寫(xiě)法很簡(jiǎn)單,只要保證映射地址正確即可.
response.sendRedirect("xxxxx");
xxxx: 是你需要轉(zhuǎn)發(fā)的servlet的映射地址
2.使用a標(biāo)簽跳轉(zhuǎn)到servlet的兩種情況
1.第一種情況
每一個(gè)功能對(duì)應(yīng)一個(gè)servlet的時(shí)候,這時(shí)我們用標(biāo)簽直接調(diào)用servlet的時(shí)候,語(yǔ)法如下:
<a href="product?&cid=${cid}&page=${status.index}" rel="external nofollow" >${status.index}</a>
其中product是對(duì)應(yīng)的servlet的映射地址,用?問(wèn)好隔開(kāi),& + 參數(shù)名+ = + 參數(shù)值,參數(shù)值可以用el表達(dá)式去表示。
2.第二種情況
當(dāng)我們把多個(gè)servlet進(jìn)行合并的時(shí)候,對(duì)應(yīng)的每一個(gè)servlet肯定都會(huì)有相應(yīng)的描述的方法,這種情況下使用a標(biāo)簽進(jìn)行servlet的調(diào)用語(yǔ)法如下:
<a href="product?method=productList&cid=${cid}&page=${status.index}" rel="external nofollow" >${status.index}</a>
其中product是對(duì)應(yīng)的servlet的映射地址,中間使用?問(wèn)好隔開(kāi),method+ = 方法 即 productList,后面的參數(shù)和參數(shù)名稱和第一種情況的表示方式一樣。

3.最簡(jiǎn)單的一種用表單調(diào)用
直接在表單的action中添加servlet的映射地址,同時(shí)表明該提交servlet的方法是get還是post,兩種區(qū)別還是比較大的。
<form action="servlet" method="get"> <input type="submit" value="test"> </form>
4.通過(guò)腳本編寫(xiě)函數(shù)的方式調(diào)用servlet
首先我們先些一個(gè)按鈕,即button,這里要特別主題該按鈕需要放在表單里面才會(huì)有效果,即相當(dāng)于一個(gè)提交的效果。
//這里為按鈕添加了onclick的時(shí)間,并鏈接到一個(gè)函數(shù)上
<input type="button" value="button" "test();">
//這里是函數(shù)部分,用于跳轉(zhuǎn)到需要使用的servlet上
function test()
{
var f=document.forms[0];
f.action="servlet"; //這里填寫(xiě)的是servlet的映射地址
f.submit();
}
這里的本質(zhì)是把button按鈕賦予了submit的功能。
5. 通過(guò)ajax請(qǐng)求servlet
因?yàn)閍jax的優(yōu)點(diǎn)不僅在于可以在不轉(zhuǎn)發(fā)servlet的情況下進(jìn)行頁(yè)面的更新
通過(guò)ajax實(shí)現(xiàn)請(qǐng)求:
function Test(id) {
$.ajax({
type:"get",
url:"${pageContext.request.contextPath }/Servlet",
data:{"id":id}
});
}
這里的路徑URL有固定的格式,后面跟的servlet是需要調(diào)用的servlet的映射地址
再舉一個(gè)例子,也掌握一下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傳回來(lái)的數(shù)據(jù) 這個(gè)函數(shù)對(duì)result進(jìn)行處理,讓它顯示在 輸入框中,也就是回調(diào)一個(gè)函數(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">
//這里給按鈕添加了點(diǎn)擊的事件
<button type="button" "ajaxFun()">button</button> //提交按鈕
</form>
// 用來(lái)顯示result的文本框
<input type="text" id="result">
</div>
//上面的請(qǐng)求需要返回result 那么這個(gè)值由servlet去返回 部分代碼如下
String first = request.getParameter("first"); //從頁(yè)面獲取數(shù)據(jù)first
String second = request.getParameter("second"); //從頁(yè)面獲取數(shù)據(jù)second
String result=first+second;
System.out.println(result); //用于測(cè)試打印是否有數(shù)據(jù);
out.println(result); //將數(shù)據(jù)傳到前端,這步非常重要
到此這篇關(guān)于詳解servlet調(diào)用的幾種簡(jiǎn)單方式總結(jié)的文章就介紹到這了,更多相關(guān)servlet調(diào)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java使用自定義注解+反射實(shí)現(xiàn)字典轉(zhuǎn)換代碼實(shí)例
這篇文章主要介紹了Java使用自定義注解+反射實(shí)現(xiàn)字典轉(zhuǎn)換代碼實(shí)例,注解是一種能被添加到j(luò)ava代碼中的元數(shù)據(jù),類、方法、變量、參數(shù)和包都可以用注解來(lái)修飾,注解對(duì)于它所修飾的代碼并沒(méi)有直接的影響,需要的朋友可以參考下2023-09-09
Eureka源碼閱讀解析Server服務(wù)端啟動(dòng)流程實(shí)例
這篇文章主要為大家介紹了Eureka源碼閱讀解析Server服務(wù)端啟動(dòng)流程實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄
這篇文章主要介紹了使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
springboot集成JWT實(shí)現(xiàn)身份認(rèn)證(權(quán)鑒)的方法步驟
本文主要介紹了springboot集成JWT實(shí)現(xiàn)身份認(rèn)證(權(quán)鑒)的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
聊聊SpringCloud和SpringCloudAlibaba的區(qū)別
這篇文章主要介紹了SpringCloud和SpringCloudAlibaba的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Springboot利于第三方服務(wù)進(jìn)行ip定位獲取省份城市
本文主要介紹了Springboot利于第三方服務(wù)進(jìn)行ip定位獲取省份城市,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

