1. 程式人生 > >javaWeb中使用URL的情況總結(相對路徑)

javaWeb中使用URL的情況總結(相對路徑)

request.getRequestDispatcher("sign").forward(request,response);

request.getRequestDispatcher("jsp/register.jsp").forward(request, response);

request.getRequestDispatcher("/jsp/register.jsp").forward(request,response);

注意:路徑只能如上寫相對路徑,並且這個相對路徑只除去專案名路徑(最後有例項說明什麼是專案名路徑)和"/",不能寫以“專案名路徑”開始的相對路徑!

下面的虛擬碼就是錯誤的!!

request.getRequestDispatcher("/zuoye/sign").forward(request,response);

3、JS程式碼中實現頁面跳轉:(虛擬碼如下)

window.location.href='http://127.0.0.1:8080/zuoye/welcome.html';

response.getWriter().write("<scripttype='text/javascript'>window.location.href='/zuoye/sign.html';</script>");

註釋:第一行虛擬碼為JS檔案裡的程式碼,裡面用的是絕對路徑;

第二行虛擬碼是servlet檔案裡的程式碼,裡面有的是相對路徑。

4、JSP實現定時重新整理:(真實程式碼如下)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var num = 2;
function time(){
if(num ==0){
/* window.location.href="/sign_JSP_EL_JSTL/jsp/welcome.jsp"; */
<%
response.setHeader("refresh", "3;/sign_JSP_EL_JSTL/jsp/welcome.jsp");
%>
}
document.getElementsByTagName("font")[0].innerHTML= num;
num--;
}
setInterval("time()",1000);
</script>
</head>
<body>
<h2>你好,你所訪問的資源已經丟失,請訪問其他資源,<font>3</font>秒後將轉到welcome畫面!!</h2>
</body>
</html>

注意:

上面程式碼中的紅色部分為常用的兩種方式,下面列出另一種方式(只需要寫出檔名字,並且不能以“/”開頭)

response.setHeader("refresh","3;welcome.jsp");

下面這種方式是錯誤的:

response.setHeader("refresh", "5;${pageContext.request.contextPath}/jsp/welcome.jsp");

註釋:請求轉發和定時重新整理,其本質實現是一樣的,只是表現不一樣,一個可以實現定時的功能而已!

5、超連結標籤:(虛擬碼如下)

<a href="/ssign/sign.html">登入</a>

<a href=" http://127.0.0.1:8080/ssign/sign.html">登入</a>

注意:呼叫HTML檔案的路徑可以寫絕對路徑,也可以在工作空間找其相對與專案名的相對路徑(java專案則在workspace中找,web專案在Tomcat中找)

6、表單:(虛擬碼如下)

<form action="/zuoye/register" method="get">

<form action="register" method="post">

註釋:這裡的路徑寫的是servlet檔案的路徑,也可以寫HTML檔案的路徑,可以參照上面兩行程式碼進行手寫。

注意:

使用第二種方式時,當前檔案就在根目錄下(Eclipse中看到直接在WebContent檔案下)則是正確的,但是如果不在根目錄下則會報錯!!

原因是因為第二種方式會自動補全路徑,而補充的路徑為該檔案相對根目錄的路徑

例:我們這裡需要訪問的register檔案的相對路徑為"/zuoye/register",而如果我們的檔案是在WebContent/HTML下,則系統會把第二種的路徑補全為"/zuoye/HTML/register",然後你就不喜歡看到的404頁面就來了!!!

7、javaWeb專案中的web.xml配置檔案:(具體配置資訊如下)

<servlet-class>com.wq.servlet.Servlet_register</servlet-class>

注意:右擊java類名 選擇“Copy Qualified Name”就能得到這個類的全限定名 (全限定名:包名+類名)

8、驅動介面路徑:(具體路徑如下)

driverClass=com.mysql.jdbc.Driver

注意:驅動介面的路徑就是jar包中的Driver介面類的路徑(mysql-connector-java-5.1.7-bin.jar

9、連線mysql資料庫的路徑:(mysql的路徑)

url=jdbc:mysql://localhost:3306/test

url=jdbc:mysql://127.0.0.1:3306/test

註釋:localhost可以換成任何可以連線的mysql資料庫所在的電腦的IP地址!!

10、類路徑:(虛擬碼如下)

InputStream in =JDBC_Util.class.getResourceAsStream("/com/wq/config/DB.properties");

注意:

       getResourceAsStream(“/..”):

“/”:表示根目錄,必須是以"/"為開頭才行!!!!!!!

java專案中的是src為根目錄

javaWeb專案中的是WEB-INF/classes為根目錄

注意:

在javaWeb專案中獲取".properties"檔案只能使用類路徑的方法,不能使用流的方式!

11、外部連結css檔案:

<link href="../css/a.css" rel="stylesheet" type="text/css"/>

12、外部連結js檔案:

<script type="text/javascript" src="../js/mydate.js">  </script>

13、圖片標籤:

<imgsrc="../img/mm.jpg" />

14、javaWeb專案中的匯入的jar包路徑:

web專案中jar包放在這個路徑下!!

“\WebContent\WEB-INF\lib ”


總結:以上總結的幾點用處,除了一些特例外不能用絕對路徑,都可以使用絕對路徑(以上有些沒有寫絕對路徑)

另外補充兩點:(JSP中獲得專案名路徑和專案全路徑的方法)

JSP表示式:
<%=request.getContextPath() %>:專案名路徑(/zuoye)

<%=request.getRealPath("/") %>:專案全路徑(C:/...../zuoye)(此處用五個點表示中間路徑)

EL表示式:

${pageContext.request.contextPath}:專案名路徑