websphere編譯jsp生成的java類放在Tomcat的安裝目錄的“Tomcat 6.0\work\Catalina\localhost”目錄下,里面存放的均是由jsp轉(zhuǎn)換成的java文件,具體的存放位置是“項(xiàng)目名\org\apache\jsp”該目錄下存放的是項(xiàng)目中所有jsp所轉(zhuǎn)換的java文件。
成都創(chuàng)新互聯(lián)服務(wù)緊隨時(shí)代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過10余年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對(duì)網(wǎng)站進(jìn)行網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶網(wǎng)站對(duì)外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。
在jsp和class文件中調(diào)用的相對(duì)路徑不同。 在jsp里,根目錄是WebRoot 在class文件中,根目錄是WebRoot/WEB-INF/classes 當(dāng)然你也可以用System.getProperty("user.dir")獲取你工程的絕對(duì)路徑。
另:在Jsp,Servlet,Java中詳細(xì)獲得路徑的方法。
1.jsp中取得路徑:
以工程名為TEST為例:
(1)得到包含工程名的當(dāng)前頁面全路徑:request.getRequestURI()
結(jié)果:/TEST/test.jsp
(2)得到工程名:request.getContextPath()
結(jié)果:/TEST
(3)得到當(dāng)前頁面所在目錄下全名稱:request.getServletPath()
結(jié)果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp
(4)得到頁面所在服務(wù)器的全路徑:application.getRealPath("頁面.jsp")
結(jié)果:D:\resin\webapps\TEST\test.jsp
(5)得到頁面所在服務(wù)器的絕對(duì)路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
結(jié)果:D:\resin\webapps\TEST
2.在類中取得路徑:
(1)類的絕對(duì)路徑:Class.class.getClass().getResource("/").getPath()
結(jié)果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路徑:System.getProperty("user.dir")
結(jié)果:D:\TEST
3.在Servlet中取得路徑:
(1)得到工程目錄:request.getSession().getServletContext().getRealPath("") 參數(shù)可具體到包名。
結(jié)果:E:\Tomcat\webapps\TEST
(2)得到IE地址欄地址:request.getRequestURL()
結(jié)果:
(3)得到相對(duì)地址:request.getRequestURI()
結(jié)果:/TEST/test
可能大多數(shù)Jsp開發(fā)員在寫完程序測試通過后,不太會(huì)關(guān)注Jsp生成的Java文件,其實(shí),通過Java代碼,更能體現(xiàn)程序代碼的真正含義,對(duì)進(jìn)一步研究程序代碼的后臺(tái)運(yùn)行情況是非常有幫助的。例如,用Jsp編寫代碼時(shí),有時(shí)候用%!?? %,有時(shí)候用%?? %,加不加感嘆號(hào),(Jsp代碼加感嘆號(hào)與不加感嘆號(hào)的區(qū)別)這類問題在教程里一般不會(huì)涉及到,從這里找到問題的突破口——Jsp生成的Java文件!所以,對(duì)于Jsp開發(fā),有必要知道這點(diǎn)技能。
(1):對(duì)于Tomcat而言,JSP頁面生成的Java文件放在work路徑對(duì)應(yīng)的Web應(yīng)用下。例如:
D:/Tomcat5.5/webapps/test/test.jsp
生成對(duì)應(yīng)的java文件
D:/Tomcat5.5/work/Standalone/localhost/test/
對(duì)于Resin而言,JSP頁面生成的Java文件放在WEB-INF/work路徑對(duì)應(yīng)的Web應(yīng)用下。例如:
D:/Resin3.1.6/webapps/test/demo/test.jsp
生成對(duì)應(yīng)的java文件
D:/Resin3.1.6/WEB-INF/work/_demo/_test.java/
(2):Jsp與Servlet的關(guān)系
1、?JSP文件必須在JSP服務(wù)器內(nèi)運(yùn)行。
2、?JSP文件必須生成Servlet才能執(zhí)行。
3、?每個(gè)JSP頁面的第一個(gè)訪問者速度很慢,因?yàn)楸仨毜却齁SP編譯成Servlet。
4、?JSP頁面的訪問者無須安裝任何客戶端,甚至不需要可以運(yùn)行Java的運(yùn)行環(huán)境,因?yàn)镴SP頁面輸送到客戶端的是標(biāo)準(zhǔn)HTML頁面。
5、?JSP頁面的靜態(tài)內(nèi)容、JSP腳本都會(huì)轉(zhuǎn)換成Servlet的xxxService()方法,類似于自行創(chuàng)建Servlet時(shí)service()方法。
6、?JSP聲明部分,轉(zhuǎn)換成Servlet的成員部分。所有JSP聲明部分可以使用private,protected,public,static等修飾符,其他地方則不行。
7、?JSP的輸出表達(dá)式(%= ..%部分),輸出表達(dá)式會(huì)轉(zhuǎn)換成Servlet的xxxService()方法里的輸出語句。
8、?九個(gè)內(nèi)置對(duì)象要么是xxxService()方法的形參,要么是該方法的局部變量,所以九個(gè)內(nèi)置對(duì)象只能在JSP腳本和輸出表達(dá)式中使用。
從上述第5、6點(diǎn),其實(shí)就可以解釋Jsp代碼加感嘆號(hào)與不加感嘆號(hào)的區(qū)別的問題。
(3):在Tomcat下指定Jsp生成的Java文件路徑:
當(dāng)需要自定義Jsp生成的Java文件位置時(shí),可以通過如下兩種方法來實(shí)現(xiàn):
方法1.在tomcat的配置文件server.xml(路徑:tomcat路徑\conf下面)里,找到:Context docBase="D:/workspace/icinfo/trunk/web" path="" reloadable="false" debug="0" crossContext="true" workDir="D:/workspace/icinfo/trunk/web/WEB-INF/lib/CommonPKI/META-INF/work"/,添加如上的workDir=""屬性,""里寫你的要看到.java/.class的路徑.
方法2.到conf/Catalina/localhost下找到你項(xiàng)目的.xml培植文件,找到方法1中的代碼,后續(xù)操作同方法1.
(4):保留Weblogic 中Jsp編譯后生成的Java文件:
在weblogic.xml中加入:
即可。如果沒有,在WEB-INF中建立一個(gè)weblogic.xml文件。增加
看看web應(yīng)用在Weblogic中生成臨時(shí)文件中,有Java文件了。