獲取應用的IP,端口等

String path = request.getContextPath(); 
String basePath = request.getScheme()
+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
    <base href=" <%=basePath%>"> 
web

這個語句是用來拼裝當前網頁的相對路徑的。 

<base href="...">是用來代表當前頁面的相對路徑所使用的根路徑的。 
好比,頁面內部有一個鏈接,完整的路徑應該是 http://localhost:80/myblog/authen/login.do 
其中http://
server/是服務器的基本路徑,myblog是當前應用程序的名字,那麼,個人根路徑應該是那麼http://localhost:80/myblog/。 

有了這個 <base ... >之後,個人頁面內容的鏈接,我不想寫全路徑,我只要寫 authen/login.do就能夠了。服務器會自動把 <base ...>指定的路徑和頁面內的相對路徑拼裝起來,組成完整路徑。 
若是沒有這個 <base...>,那麼我頁面的連連接就必須寫全路徑,不然服務器會找不到。 

request.getSchema()能夠返回當前頁面使用的協議,就是上面例子中的「http」 
request.getServerName()能夠返回當前頁面所在的服務器的名字,就是上面例子中的「localhost" 
request.getServerPort()能夠返回當前頁面所在的服務器使用的端口,就是80, 
request.getContextPath()能夠返回當前頁面所在的應用的名字,就是上面例子中的myblog 
這四個拼裝起來,就是當前應用的跟路徑了
瀏覽器

最近在自學struts,被裏面struts中action 的path與form表單的action屬性弄迷糊了。服務器

struts-config.xml 文件中,action元素中的path屬性表示的是瀏覽器地址欄中相對於應用程序根目錄的請求路徑,與form 中提交表單之後有誰處理的action屬性指定的根路徑一致。(只是一致,千萬不要覺得是絕對相等~)post

例如:form表單的提交處理請求是classesAdd.do,其在ie地址欄中的路徑以下所示,spa

http://localhost:9000/Struts_study/classesMan/classesAdd.doorm

紅色部分表示的根路徑,因此,action中的classesAdd.do請求的完整路徑是classesMan/classesAdd.doserver

<form name="form1" action="classesAdd.do" method=post>xml

因此 struts 中的action 的path路徑是指/classesMan/classesAdd。blog

你們能夠看着瀏覽器的地址欄加以配置。祝你們晚上睡覺快樂。get

 

補充一下吧,form中的action的默認路徑就是當前路徑,

而struts中的action 的path屬性默認路徑爲根路徑,因此要加上所在的文件夾得路徑。

相關文章
相關標籤/搜索