1. 程式人生 > >JSP中的:request.getScheme()+"://"+request.getServerName()+":"+request.getServer

JSP中的:request.getScheme()+"://"+request.getServerName()+":"+request.getServer

eight 其中 相對 刪除 har post string 語句 ges

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

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

<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屬性指定的根路徑一致。(只是一致,千萬不要以為是絕對相等~)

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

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

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

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

所以 struts 中的action 的path路徑是指/classesMan/classesAdd。

大家可以看著瀏覽器的地址欄加以配置。祝大家晚上睡覺快樂。

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

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

使用方法如:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>404</title>
<meta http-equiv="refresh" content="60;url=index.jsp">
<!-- content="600,即600秒後返回主頁,可根據需要修改或者刪除這段代碼 -->
<link href="css/error.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- 代碼 開始 -->
<div id="container"><img class="png" src="images/404.png" /> <img class="png msg" src="images/404_msg.png" />
  <p><a href="index.jsp"><img class="png" src="images/404_to_index.png" /></a> </p>
</div>
<div id="cloud" class="png"></div>
<!-- 代碼 結束 -->

 
</body>
</html>

JSP中的:request.getScheme()+"://"+request.getServerName()+":"+request.getServer