日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

web工程中的各种路径(eclipse开发)

發布時間:2025/6/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web工程中的各种路径(eclipse开发) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前遇到的 web 工程中要寫url和路徑的文件有?

  • webContent中.jsp/.html :action
  • src中的servlet類 : 映射地址、重定向、請求轉發、訪問資源文件(webContent中、src中)
  • src非servlet類的普通類 :訪問資源文件(webContent中、src中)

以下一一說明:

?

.jsp/.html中的路徑

  form表單提交的action中要寫servlet(jsp)的路徑

    1. 跳轉到.jsp

      action中使用相對路徑,相對于當前頁面。

    

?

<!-- from JSP1.jsp to JSP2.jsp --> <!-- JSP1.jsp中的form --> <form action="File/JSP2.jsp"> <!-- from JSP2.jsp to JSP1.jsp --> <!-- JSP2.jsp中的form --> <form action="../JSP1.jsp">

?

    2.跳轉到servlet1

    注意,路徑與package產生的目錄無關。

    

?

//Servlet1.java 的映射地址 @WebServlet(name = "Servlet1", urlPatterns = { "/Servlet1" }) <!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="../Servlet1">

?

改變servlet的映射地址,使servlet映射到與JSP2.jsp一個文件夾下

//修改servlet1的映射地址后 @WebServlet(name = "Servlet1", urlPatterns = { "/File/Servlet1" }) <!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="Servlet1">

?

?再次改變servlet映射地址,servlet映射到虛擬目錄下

//再次修改servlet1的映射地址后,映射到virtualFile虛擬目錄 @WebServlet(name = "Servlet1", urlPatterns = { "/virtualFile/Servlet1" }) <!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="../virtualFile/Servlet1">

    ?3.更新:利用超鏈接<a>跳轉到servlet,其中的href:

//相對于當前jsp的相對路徑跳轉到servlet,同時傳遞參數id = 111,111為String類//在servlet頁面可以通過 request.getPatameter("id")獲取111 <a href="servlet1?id=111">點擊跳轉到servlet1</a>

?

src中的servlet類

  • ? ? url注解中的要寫servlet的映射地址
  • ? ? servlet類訪問webContent中的資源文件? ??Servlet1訪問1.txt(按照tomcat中的工程結構)

//Servlet1.java 的映射地址 @WebServlet(name = "Servlet1", urlPatterns = { "/Servlet1" })? //利用getServletContext().getRealPath()獲取web工程的絕對路徑 String filePath = this.getServletContext().getRealPath("/sourceFile/1.txt"); //filePath=// D:\tomcat\apache-tomcat-8.0.50-windows-x64\apache-tomcat-8.0.50\webapps\test3\sourceFile\1.txt BufferedReader br = new BufferedReader(new FileReader(filePath));

 

  •  訪問src中的資源文件? ? ?Servlet1訪問2.txt

?

//Servlet1.java 的映射地址 @WebServlet(name = "Servlet1", urlPatterns = { "/Servlet1" })

?

//訪問src中的文件,要按照tomcat中的工程目錄獲取絕對路徑 //servlet不要映射到虛擬目錄 String filePath = this.getServletContext().getRealPath("/WEB-INF/classes/2.txt"); BufferedWriter br = new BufferedWriter(new FileWriter(filePath));

 

  •  重定向到servlet(jsp),只能用相對路徑? servlet1重定向到JSP2.jsp
//重定向使用相對路徑,url發生改變 response.sendRedirect("File/JSP2.jsp");

?

  •  請求轉發到servlet,可以 用相對路徑、絕對路徑?servlet1請求轉發到Servlet2
//相對路徑 RequestDispatcher rd = request.getRequestDispatcher("Servlet2"); rd.forward(request,response); //絕對路徑 RequestDispatcher rd = request.getRequestDispatcher("/Servlet2"); rd.forward(request,response);

?

src非servlet類的普通類

  

?

  •  普通類訪問webContent中的資源文件? NormalClass中訪問1.txt
//利用class獲取本類所在的目錄(不含pacakage,只到classes), //利用getResource()獲取資源文件絕對路徑 //在webContent中則要兩次返回上級目錄(WEB-INF,工程名URLTest) File filePath = new File(NormalClass.class.getClassLoader().getResource("../../sourceFile/1.txt").getPath()); FileInputStream fn = new FileInputStream(filePath);
  • ? 普通類問src中的資源文件??NormalClass中訪問2.txt
//利用class獲取本類所在的目錄(不含pacakage,只到classes), //利用getResource()獲取資源文件絕對路徑 File filePath = new File(NormalClass.class.getClassLoader().getResource("2.txt").getPath()); FileInputStream fn = new FileInputStream(filePath);

?

注意:

注意!! 第一次打開.jsp頁面時,.jsp頁面的所有相對路徑都是相對.jsp頁面的,然而從servlet轉發到jsp頁面時相對路徑會變成相對于servlet的路徑,會導致資源文件訪問不到。

如何避免:在所有相對路徑前面加上?${pageContext.request.contextPath}來獲得相對web工程的目錄。

如:

<!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="../Servlet1">

?改為

<!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="${pageContext.request.contextPath}/Servlet1">

?

轉載于:https://www.cnblogs.com/luiyuying/p/8981593.html

總結

以上是生活随笔為你收集整理的web工程中的各种路径(eclipse开发)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。