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}:專案名路徑