第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

jsp中的請求servlet操作的跳轉(zhuǎn)<a href = 地址與xml中servlet注冊的url-pattern到底有什么要求?

在reg.jsp文件中是

<a?href?=?"servlet/TheServlet">gotoServlet</a>

在配置文件中是

??????<servlet>
??????<servlet-name>TheServlet</servlet-name>
??????<servlet-class>servlet.TheServlet</servlet-class>
??????<load-on-startup>1</load-on-startup>
??????</servlet>
??????<servlet-mapping>
??????<servlet-name>TheServlet</servlet-name>
??????<url-pattern>/servlet/TheServlet</url-pattern>
??????</servlet-mapping>

而在工程里面的位置也如視頻內(nèi)提示的一樣

src--|

?| ? ? ?servlet--|

?| ? ? ? ? ? ? ? ? TheServlet

WebRoot--|

?| ? ? ? ? ? ? ? WEB-INF--|

?| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? web.xml

?| ? ? ? ? ? ? ? reg.jsp

這樣整個(gè)的流轉(zhuǎn)流程是怎么樣的,在1-4節(jié)中的說明中,似乎由reg.jsp的超鏈接,獲得的請求地址進(jìn)入web.xml進(jìn)行匹配判斷,得到了對應(yīng)的servlet,再由servlet定義的Class去進(jìn)行相應(yīng)的doget()方法。所以1-4節(jié)好像在說明:reg.jsp的超鏈接無論指向何處都沒關(guān)系,只需要與在web.xml注冊的servlet的url-pattern匹配即可?

但在1-13節(jié)的講解中,說明了這個(gè)reg.jsp的超鏈接是直接鏈接到了項(xiàng)目虛擬地址/servlet/TheServlet,而在web.xml注冊的servlet的url-pattern,是指項(xiàng)目中的這個(gè)servlet的地址(這里存在問題,這個(gè)屬于地址么?如果是地址,指示一個(gè)TheServlet的文件,那么不需要后綴么?),在修改了url-pattern之后,在啟動項(xiàng)目都無法進(jìn)行了,是否相當(dāng)于url-pattern要綁定(或者說鏈接)一個(gè)servlet.java?如果這樣那么還需要所謂的servlet-class來指示類文件么?

所有主要的問題就兩個(gè):1、Jsp文件中的這個(gè)get方式的請求的超鏈接,到底是要指向什么?是一個(gè)確實(shí)的文件?還是一個(gè)隨意的地址,只要servlet能接收這個(gè)超鏈接請求并返回信息即可?

2、在web.xml配置注冊的servlet的url-pattern屬性到底是什么東西,為什么沒有首/就會出現(xiàn)連服務(wù)都無法啟動的情況,是因?yàn)樗?strong>確實(shí)指向一個(gè)確實(shí)存在的servlet實(shí)現(xiàn)類嗎?還是一個(gè)為了和Jsp超鏈接請求相互匹配進(jìn)行處理的匹配數(shù)據(jù)信息,只是因?yàn)樵趈sp中使用的時(shí)候有默認(rèn)添加上下文地址之類的操作,才導(dǎo)致必須添加首/,而在jsp中不能添加首/?


我的問題可能有些亂,初學(xué)JSP,不理解servlet,希望能得到指導(dǎo)


正在回答

1 回答

你好

先說你的第一個(gè)問題 我的理解是請求的地址,你可以把里面的測試路徑隨便更改為"?會發(fā)現(xiàn)直接跳轉(zhuǎn)到百度首頁了.?因?yàn)槲沂褂玫氖荌DE是IDEA,所以使用了JAVA EE 6的注解功能,并沒有添加文件到web.xml,所以理解角度可能和你不一樣了,我的是這樣的,在Servlet文件的開始有如下:

@WebServlet(name?=?"TestServlet",urlPatterns?=?{"/servlet/TestServlet"})

假如沒有urlPatterns這個(gè)參數(shù),無論你的href寫什么都會是404;

在回答你第一個(gè)問題的時(shí)間就牽扯到你第二個(gè)問題了,

在web.xml配置注冊的servlet的url-pattern屬性到底是什么東西

然后你問

這里存在問題,這個(gè)屬于地址么?如果是地址,指示一個(gè)TheServlet的文件,那么不需要后綴么?

那么我們是不是可以理解為?url-pattern 就是路徑參數(shù),因?yàn)檫@個(gè)就是Servlet的參數(shù),所以是不需要后綴的,也就是說我們的Servlet類文件會注冊一個(gè)路徑(注意我說的是路徑.)

然后就回到我們最開始的 1-13中老師有講相對和絕對對吧.

<%--使用相對路徑訪問--%>
<%--?/servlet/HelloServlet?第一個(gè)/?表示服務(wù)器的根目錄?--%>
<a?href="servlet/HelloServlet">訪問HelloServlet!</a><br>
<%--使用絕對路徑訪問?可以使用path變量:path變量表示項(xiàng)目的根目錄--%>
<a?href="<%=path%>/servlet/HelloServlet">訪問HelloServlet使用Path</a><br>

------分割線------

我剛才做了一個(gè)測試?

@WebServlet(name?=?"TestServlet",urlPatterns?=?{"/servlet/TestServlet"})

你可以把urlPatterns的參數(shù)改為任意名稱,與你的Servlet文件名完全無關(guān),然后在?<a href="servlet/HelloServlet">中改為相同的一樣可以跳轉(zhuǎn).

所以我們可以不可以這樣理解呢,?url-pattern/urlPatterns 只是給你的Servlet文件起了一個(gè)路徑,就好像我們每個(gè)人都有用戶名一樣.

只要兩處一致,即可跳轉(zhuǎn)訪問,這大概也是老師一開始說的注冊Servlet的意思呢.


寫了這么多可能有點(diǎn)亂,現(xiàn)在重新回答你的兩個(gè)問題:

1、Jsp文件中的這個(gè)get方式的請求的超鏈接,到底是要指向什么?是一個(gè)確實(shí)的文件?還是一個(gè)隨意的地址,只要servlet能接收這個(gè)超鏈接請求并返回信息即可?

A:超鏈接就是路徑,路徑當(dāng)然指向的還是文件. 所以最終還是文件.

2、在web.xml配置注冊的servlet的url-pattern屬性到底是什么東西,為什么沒有首/就會出現(xiàn)連服務(wù)都無法啟動的情況,是因?yàn)樗_實(shí)指向一個(gè)確實(shí)存在的servlet實(shí)現(xiàn)類嗎?還是一個(gè)為了和Jsp超鏈接請求相互匹配進(jìn)行處理的匹配數(shù)據(jù)信息,只是因?yàn)樵趈sp中使用的時(shí)候有默認(rèn)添加上下文地址之類的操作,才導(dǎo)致必須添加首/,而在jsp中不能添加首/?

A:url-pattern這個(gè)屬性就是一個(gè)名字,而且與實(shí)際路徑無關(guān)(可以理解為虛擬路徑或者別名),并不是文件真實(shí)路徑(這樣回答會不會與第一個(gè)問題的回答沖突),因?yàn)檫@里的首/表示為項(xiàng)目的根目錄,沒有就會出現(xiàn)找不到加載路徑所以無法啟動吧.結(jié)論無論在普通的Java類中還是Servlet還是JSP,我們都需要一個(gè)明確且唯一的路徑.(無論相對還是絕對,肯定是唯一的)


舉報(bào)

0/150
提交
取消

jsp中的請求servlet操作的跳轉(zhuǎn)<a href = 地址與xml中servlet注冊的url-pattern到底有什么要求?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號