當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
当前路径_[JSP] 07 JSP 路径问题
生活随笔
收集整理的這篇文章主要介紹了
当前路径_[JSP] 07 JSP 路径问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先先明確一下下列URL的
假設一個URL是這樣的losthost:8080/myservlet/path
服務器根路徑:losthost:8080/
項目根路徑:losthost:8080/myservlet/
明確了服務器根路徑和項目根路徑之后,我們就可以開始學習后面的知識了
servlet路徑問題
請求轉(zhuǎn)發(fā)和重定向的相對路徑寫法總結:
Servlet重定向jsp
resp.sendRedirect("jsp的相對路徑/servlet的別名");//重定向jsp頁面Servlet請求轉(zhuǎn)發(fā)jsp
req.getRequestDispatcher("jsp的相對路徑/servlet的別名")
.forward(req, resp);//請求轉(zhuǎn)發(fā)到jsp頁面服務器根目錄
服務器的webapps目錄路徑 localhost:8080/
項目根目錄
服務器的webapps目錄下項目路徑 localhost:8080/jsp/
注意:
以上兩種寫法其實都是相對路徑,相對路徑指的是從當前請求路徑查找jsp所經(jīng)過的路徑。
請求轉(zhuǎn)發(fā)和重定向的絕對路徑寫法總結:
重定向:
在重定向中的路徑中第一個/表示服務器根目錄。
示例:
resp.sendRedirect("/虛擬項目名/資源路徑");//重定向jsp頁面請求轉(zhuǎn)發(fā):
在請求轉(zhuǎn)發(fā)中第一個/表示項目根目錄
示例:
tDispatcher("/資源路徑").forward(req, resp);//請求轉(zhuǎn)發(fā)到jsp頁面jsp路徑問題
精華總結:
- 在jsp頁面中進行資源之間的跳轉(zhuǎn)時,使用絕對路徑 。
- 在jsp中路徑中的第一個/表示服務器根目錄。
- 在Myeclipse中創(chuàng)建的jsp頁面會自動生成路徑處理代碼basePath而basePath的值為當前項目 根目錄。
- request.getSchema()返回的是當前連接使用的協(xié)議,一般應用返回的是http、SSL返回的是https;
- request.getServerName()返回當前頁面所在的服務器的名字;
- request.getContextPath()返回當前頁面所在的應用的名字。
問題:
在jsp頁面中進行資源之間的跳轉(zhuǎn)時,如果書寫的是相對路徑這樣會造成如果當前文件的路徑發(fā)生變更,從當前路徑查找資源的相對路徑都要重新進行書寫。
解決:
將相對路徑編程絕對路徑
使用:
在jsp中路徑中的第一個/表示服務器根目錄。
示例:
<a href="/虛擬項目名/資源路徑">訪問關鍵字</a>注意:
Myeclipse
創(chuàng)建的jsp頁面會自動生成路徑處理代碼basePath
而basePath的值為當前項目根目錄,并且在head標簽中使用了
<base href="<%=basePath%>">
相當于將當前頁面的資源全部默認定位為從項目根目錄開始查找,我們就不需要寫第一個/了
IDEA
需要手動輸入或者更改模板
頁面報錯處理
注意:
basePath方式和添加/方法只能二選一。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
System.out.println(basePath);
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'path.jsp' starting page</title><!-- 問題:在jsp頁面中進行資源之間的跳轉(zhuǎn)時,如果書寫的是相對路徑這樣會造成如果當前文件的路徑發(fā)生變更,從當前路徑查找資源的相對路徑都要重新進行書寫。解決:將相對路徑編程絕對路徑使用:在jsp中路徑中的第一個/表示服務器根目錄。示例:<a href="/虛擬項目名/資源路徑">訪問關鍵字</a>注意:在Myeclipse中創(chuàng)建的jsp頁面會自動生成路徑處理代碼basePath而basePath的值為當前項目根目錄,并且在head標簽中使用了<base href="<%=basePath%>">相當于將當前頁面的資源全部默認定位為從項目根目錄開始查找,我們就不需要寫第一個/了注意:basePath方式和添加/方法只能二選一。--></head><body>我是path.jsp<a href="a/a.jsp">a.jsp</a></body>
</html>Balmy:[Servlet] 17 Servlet 路徑問題?zhuanlan.zhihu.com
總結
以上是生活随笔為你收集整理的当前路径_[JSP] 07 JSP 路径问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程组多次调用_详细分析 Java 中启
- 下一篇: 动态加载的html没有js效果,JS利用