web工程中URL地址的推薦寫法

weixin_34391854發表於2018-06-28

在Javaweb開發中,只要寫URL地址,建議以“/”開頭,也就是使用絕對路徑的方式。

“/”:如果是給伺服器的,代表當前的web工程。給瀏覽器的,代表webapps目錄

 

代表web工程

1,ServletContext.getRealPath(String path)獲取資源的絕對路徑

2,在伺服器端forward到其他頁面

 /**
 * 2.forward
  * 客戶端請求某個web資源,伺服器跳轉到另外一個web資源,這個forward也是給伺服器用的,
 * 那麼這個"/"就是給伺服器用的,所以此時"/"代表的就是web工程
*/ this.getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);

3,使用include指令或者<jsp:include>標籤引入頁面

<jsp:include page="/jspfragments/demo.jsp" />
<%@include file="/jspfragments/head.jspf" %> 代表的都是web工程

代表webapps目錄

1,使用sendRedirect實現請求重定向
使用request.getContextPath()代替"/專案名稱",推薦使用這種方式,靈活方便!
2,使用超連結跳轉

<a href="${pageContext.request.contextPath}/index.jsp">跳轉到首頁</a>

3,Form表單提交

 <form action="/JavaWeb_HttpServletResponse_Study_20140615/servlet/CheckServlet" method="post">    
         <input type="submit" value="提交">
 </form>
改進:
 <form action="${pageContext.request.contextPath}/servlet/CheckServlet" method="post">
          <input type="submit" value="提交">
 </form>

${pageContext.request.contextPath}的效果等同於request.getContextPath(),兩者獲取到的都是"/專案名稱"

4,js指令碼和css樣式檔案的引用

  <%--使用絕對路徑的方式引用js指令碼--%>
  <script type="text/javascript" src="${pageContext.request.contextPath}/js/index.js"></script>
  <%--使用絕對路徑的方式引用css樣式--%>
  <link rel="stylesheet" href="${pageContext.request.contextPath}/css/index.css" type="text/css"/>
 <%--${pageContext.request.contextPath}與request.getContextPath()寫法是得到的效果是一樣的--%> 
<script type="text/javascript" src="<%=request.getContextPath()%>/js/login.js"></script>

 

相關文章