国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

路徑總結

2019-11-08 02:35:38
字體:
來源:轉載
供稿:網友
路徑路徑總結:超鏈接,表單,重定向,<img>的src 建議:/項目名/servlet名請求轉發和請求包含 建議:/servlet名1. 客戶端路徑和服務器端路徑 * 客戶端路徑需要給出應用名稱,例如:/day05_1/AServlet * 服務器端路徑無需給出應用名稱,例如:/AServlet1 與路徑相關的操作?超鏈接?表單?轉發?包含?重定向?<url-pattern>?ServletContext獲取資源?Class獲取資源?ClassLoader獲取資源2 客戶端路徑超鏈接、表單、重定向都是客戶端路徑,客戶端路徑可以分為三種方式:?絕對路徑;?以“/”開頭的相對路徑;?不以“/”開頭的相對路徑;例如:http://localhost:8080/hello1/pages/a.html中的超鏈接和表單如下:絕對路徑:<a href="http://localhost:8080/hello2/index.html">鏈接1</a>客戶端路徑:<a href="/hello3/pages/index.html">鏈接2</a>相對路徑:<a href="index.html">鏈接3</a><hr/>絕對路徑:<form action="http://localhost:8080/hello2/index.html"> <input type="submit" value="表單1"/></form>客戶端路徑:<form action="/hello2/index.html"> <input type="submit" value="表單2"/></form>相對路徑:<form action="index.html"> <input type="submit" value="表單3"/></form>?鏈接1和表單1:沒什么可說的,它使用絕對路徑;?鏈接2和表單2:以“/”開頭,相對主機,與當前a.html的主機相同,即最終訪問的頁面為http://localhost:8080/hello2/index.html;?鏈接3和表單3:不以“/”開頭,相對當前頁面的路徑,即a.html所有路徑,即最終訪問的路徑為:http://localhost:8080/hello1/pages/index.html;重定向1:public class AServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect("/hello/index.html"); }}  假設訪問AServlet的路徑為:http://localhost:8080/hello/servlet/AServlet  因為路徑以“/”開頭,所以相對當前主機,即http://localhost:8080/hello/index.html。重定向2:public class AServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect("index.html"); }}假設訪問AServlet的路徑為:http://localhost:8080/hello/servlet/AServlet因為路徑不以“/”開頭,所以相對當前路徑,即http://localhost:8080/hello/servlet/index.html2.1 建議使用“/”強烈建議使用“/”開頭的路徑,這說明在頁面中的超鏈接和表單都要以“/”開頭,后面是當前應用的名稱,再是訪問路徑:<form action="/hello/servlet/AServlet"></form><a href="/hello/b.html">鏈接</a>其中/hello是當前應用名稱,這也說明如果將來修改了應用名稱,那么頁面中的所有路徑也要修改,這一點確實是個問題。這一問題的處理方案會在學習了jsp之后講解!在Servlet中的重定向也建議使用“/”開頭。同理,也要給出應用的名稱!例如:response.sendRedirect("/hello/BServlet");其中/hello是當前應用名,如果將來修改了應用名稱,那么也要修改所有重定向的路徑,這一問題的處理方案是使用request.getContextPath()來獲取應用名稱。response.sendRedirect(request.getContextPath() + "/BServlet");3 服務器端路徑服務器端路徑必須是相對路徑,不能是絕對路徑。但相對路徑有兩種形式:?以“/”開頭;?不以“/”開頭;其中請求轉發、請求包含都是服務器端路徑,服務器端路徑與客戶端路徑的區別是:?客戶端路徑以“/”開頭:相對當前主機;?服務器端路徑以“/”開頭:相對當前應用;轉發1:public class AServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/BServlet").forward(request, response); }}假設訪問AServlet的路徑為:http://localhost:8080/hello/servlet/AServlet因為路徑以“/”開頭,所以相對當前應用,即http://localhost:8080/hello/BServlet。轉發2:public class AServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("BServlet").forward(request, response); }}假設訪問AServlet的路徑為:http://localhost:8080/hello/servlet/AServlet因為路徑不以“/”開頭,所以相對當前應用,即http://localhost:8080/hello/servlet/BServlet。4 <url-pattern>路徑  <url-pattern>必須使用“/”開頭,并且相對的是當前應用。5 ServletContext獲取資源必須是相對路徑,可以“/”開頭,也可以不使用“/”開頭,但無論是否使用“/”開頭都是相對當前應用路徑。例如在AServlet中獲取資源,AServlet的路徑路徑為:http://localhost:8080/hello/servlet/AServlet:public class AServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path1 = this.getServletContext().getRealPath("a.txt"); String path2 = this.getServletContext().getRealPath("/a.txt"); System.out.PRintln(path1); System.out.println(path2); }}path1和path2是相同的結果:http://localhost:8080/hello/a.txt6 Class獲取資源Class獲取資源也必須是相對路徑,可以“/”開頭,也可以不使用“/”開頭。package cn.itcast;import java.io.InputStream;public class Demo { public void fun1() { InputStream in = Demo.class.getResourceAsStream("/a.txt"); } public void fun2() { InputStream in = Demo.class.getResourceAsStream("a.txt"); }}其中fun1()方法獲取資源時以“/”開頭,那么相對的是當前類路徑,即/hello/WEB-INF/classes/a.txt文件;其中fun2()方法獲取資源時沒有以“/”開頭,那么相對當前Demo.class所在路徑,因為Demo類在cn.itcast包下,所以資源路徑為:/hello/WEB-INF/classes/cn/itcast/a.txt。7 ClassLoader獲取資源ClassLoader獲取資源也必須是相對路徑,可以“/”開頭,也可以不使用“/”開頭。但無論是否以“/”開頭,資源都是相對當前類路徑。public class Demo { public void fun1() { InputStream in = Demo.class.getClassLoader().getResourceAsStream("/a.txt"); } public void fun2() { InputStream in = Demo.class.getClassLoader().getResourceAsStream("a.txt"); }}  fun1()和fun2()方法的資源都是相對類路徑,即classes目錄,即/hello/WEB-INF/classes/a.txt
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎川县| 武强县| 固原市| 文山县| 遵义县| 上饶市| 乌兰察布市| 伊吾县| 曲沃县| 南宫市| 舒城县| 平邑县| 广丰县| 大港区| 敦煌市| 苍梧县| 康平县| 石泉县| 瑞昌市| 九龙城区| 揭东县| 卓资县| 陆良县| 驻马店市| 莎车县| 长寿区| 定南县| 宁德市| 乐山市| 游戏| 介休市| 综艺| 金昌市| 青神县| 泰来县| 康定县| 武功县| 图片| 张掖市| 尼勒克县| 肃宁县|