java怎么配置tomcat 項(xiàng)目在tomcat部署后,如何獲取項(xiàng)目的根目錄?
項(xiàng)目在tomcat部署后,如何獲取項(xiàng)目的根目錄?實(shí)現(xiàn)思路就是先獲取到類路徑,之后再類路徑中截取出相應(yīng)的項(xiàng)目根路徑(因?yàn)槭侵李惡晚?xiàng)目的相對(duì)位置的)??梢酝ㄟ^“類名.class.getResource(
項(xiàng)目在tomcat部署后,如何獲取項(xiàng)目的根目錄?
實(shí)現(xiàn)思路就是先獲取到類路徑,之后再類路徑中截取出相應(yīng)的項(xiàng)目根路徑(因?yàn)槭侵李惡晚?xiàng)目的相對(duì)位置的)??梢酝ㄟ^“類名.class.getResource("").getPath()”方法實(shí)現(xiàn)獲取到當(dāng)前的路徑。舉例:”Stringpath=XMLS.class.getResource("").getPath()“.解釋:以上語句就是獲取到XMLS編譯后的絕對(duì)路徑(無法獲取到j(luò)ava文件路徑的,因?yàn)閖ava運(yùn)行的都是class文件),之后根據(jù)實(shí)際情況截取任意位置的路徑都可以。
奇怪,Tomcat啟動(dòng)成功,訪問卻一直404,該怎么解決?
如果從tomcat/bin目錄中啟動(dòng)后,就能夠正常訪問首頁,由此分析應(yīng)該是eclipse/JAVA EE配置錯(cuò)誤。正確配置如下: 雙擊Server中配置的Tomcat服務(wù)器會(huì)彈出如下界面: 在Server Locations配置中選擇第二個(gè)選項(xiàng),use tomcat installation ,保存,重新啟動(dòng)Tomcat服務(wù)
Java官方?jīng)]有實(shí)現(xiàn)Servlet類,那在服務(wù)器運(yùn)行過程中,Servlet類的代碼是怎么起作用的?
謝邀。
首先問題主一個(gè)問題,如果Servlet被實(shí)現(xiàn)了,那應(yīng)該怎么實(shí)現(xiàn)?實(shí)現(xiàn)什么邏輯?你的業(yè)務(wù)代碼又該寫到哪里?
其次對(duì)于Servlet的執(zhí)行,這里不直接給出答案,只從表象來引導(dǎo)思考,由題主自行去找到答案:
- Servlet剛出來的時(shí)候是需要通過web.xml進(jìn)行配置的,3.0開始支持基于注解的方式配置。這里需要的知識(shí)點(diǎn)有Java讀取xml,Java注解(注解的執(zhí)行原理,不是使用)。
- 無論配置web.xml還是注解,都配置了url。作用是什么?
- 通過url找到Servlet,怎么去執(zhí)行,也就是題主關(guān)心的問題。涉及知識(shí)點(diǎn):Java如何動(dòng)態(tài)的執(zhí)行一個(gè)類?
下面給個(gè)完整的大致流程(題主看之前最好先自己思考下):
- 你訪問服務(wù)地址,瀏覽器發(fā)送HTTP請(qǐng)求
- 服務(wù)端接收到請(qǐng)求后,解析HTTP消息,根據(jù)web.xml的配置,或注解上面的配置找到URL對(duì)應(yīng)的Servlet
- 通過反射來執(zhí)行Servlet
- 結(jié)果組裝為HTTP響應(yīng)返回
- 瀏覽器渲染響應(yīng),你看到了結(jié)果
tomcat啟動(dòng)原理?
tomcat服務(wù)器的工作原理可以概括為以下幾點(diǎn):
1、Tomcat是運(yùn)行在JVM中的一個(gè)進(jìn)程。它定義為“中間件”,顧名思義是一個(gè)在Java項(xiàng)目與JVM之間的中間容器。
2、Web項(xiàng)目的本質(zhì),是一大堆的資源文件和方法。Web項(xiàng)目沒有入口方法(即main方法),這意味著Web項(xiàng)目中的方法不會(huì)自動(dòng)運(yùn)行起來。
Web項(xiàng)目部署進(jìn)Tomcat的webapp中的目的是很明確的,那就是希望Tomcat去調(diào)用寫好的方法去為客戶端返回需要的資源和數(shù)據(jù)。
3、Tomcat可以運(yùn)行起來,并調(diào)用寫好的方法。那么,Tomcat一定有一個(gè)main方法。對(duì)于Tomcat而言,它并不知道用戶會(huì)有什么樣的方法,這些都只是在項(xiàng)目被部署進(jìn)webapp下后才確定的。
由此,可知Tomcat用到了Java的反射來實(shí)現(xiàn)類的動(dòng)態(tài)加載、實(shí)例化、獲取方法、調(diào)用方法。但是部署到Tomcat的中的Web項(xiàng)目必須是按照規(guī)定好的接口來進(jìn)行編寫,以便進(jìn)行調(diào)用。