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

為了賬號安全,請及時綁定郵箱和手機立即綁定

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>

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

src--|

?| ? ? ?servlet--|

?| ? ? ? ? ? ? ? ? TheServlet

WebRoot--|

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

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

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

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

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

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

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


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

正在回答

4 回答

其實老師講的內(nèi)容有一定的誤解。

先回答斜杠的問題:

jsp頁面中有相對路徑和絕對路徑的問題是因為jsp頁面其實是一個網(wǎng)頁,通過超文本或者action的方式可以連接到任何url,這里的任何url指的是可以是本項目的,或者另外項目的,或者甚至是外部鏈接,比如你這么寫: action =“http://www.baidu.com”,那么這個form的數(shù)據(jù)就提交給百度了,所以一定要區(qū)分相對和絕對路徑,默認不加斜杠就是相對路徑:當前主機+端口+上下文(項目)+當前目錄,那么剩下的就是絕對路徑了,你加上斜杠以后web服務(wù)器不知道你要把這個form或者url鏈接到什么地方(萬一你要鏈接同一臺服務(wù)器上的另外一個工程ServletLoginDemo2)所以web服務(wù)器就把/表示主機的根目錄,所以你要是寫成action="/servlet/Servlet"的話就會讓你去訪問localhost:8080/servlet/Servlet目錄,其實這里還是一個相對路徑(是相對于本主機的一個絕對路徑)。

而servlet是不能夠鏈接到別的項目的servlet的,所以這里面沒有一個相對路徑和絕對路徑的概念,一定是本項目下的,所以在tomcat得servlet容器的代碼里面就是這么實現(xiàn)的,url-patten一定要加上/:host+port+context+servlet-patten組成這個servlet的訪問地址,否則啟動的時候檢查xml就會報錯不能啟動。


另外你問的url-patten是否一定要指向某個類,這個也是老師為了講解方便把url-patten直接寫成實際的目錄結(jié)構(gòu)給你產(chǎn)生的誤導(dǎo),url-patten并不需要指向具體的類,你可以理解成一個別名,他主要的作用是用來匹配路徑和隱藏一些內(nèi)部實現(xiàn),url-patten有三種匹配規(guī)則你可以搜索下,舉個例子url-patten可以模糊匹配,你如說你可以寫成這樣

<url-pattern>/test/*</url-pattern>那么所有訪問host+port+context/test/后面跟任何內(nèi)容的地址都會去訪問這個servlet。

同時你可以寫成/login.do這樣可以隱藏你的內(nèi)部實現(xiàn),你甚至可以寫成/login.jsp或者/login/login/login(除了第一個/表示當前目錄,后面的/不代表任何目錄的意思,他就是一個符號).

所以servelt的url-pattern你可以隨意寫。

0 回復(fù) 有任何疑惑可以回復(fù)我~

url-pattern具體設(shè)置時沒有限制,只是你在訪問這個servlet的時候用你設(shè)定的url-pattern的那個訪問名。

0 回復(fù) 有任何疑惑可以回復(fù)我~

web.xml配置文件中的好像只是映射路徑,具體的與JSP跳轉(zhuǎn)沒關(guān)系

0 回復(fù) 有任何疑惑可以回復(fù)我~

因為你建的jsp本來就和你下載的jsp都在一個文件夾里面

而你新建的servlet是在src這個文件夾里所有要..回到上級目錄在查詢用"../加上你要跳轉(zhuǎn)的jsp文件"

而你說的xml文件要配置那是servlet必須要的啊 和jsp跳轉(zhuǎn)好像沒關(guān)系

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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