JAVA WEBにおける相対経路と絶対経路

1790 ワード

最近のプロジェクトでは、相対的な経路と絶対的な経路の問題に遭遇し、いくつかのブログを参考にして、自分の理解に基づいて整理しましたが、今後もっと深い理解があれば、別途修正することができます.
フロントエンド
-JSPジャンプ
1.相対ジャンプ
現在のuriに関連します.たとえば、現在のアドレスは次のとおりです.
localhost:8080/test/
フロントリンクをクリックしてから
アドレス:
localhost:8080/test/test.jsp
アドレスバーのアドレスの最後の"/"の後ろの内容をhrefの内容に変えて、新しいアドレスに組み合わせることに相当します.
注意:hrefは「/」で始まり、サーバのルートディレクトリからのパスです.プロジェクト名は含まれません.
次のようになります.
アドレス:
localhost:8080/test.jsp
2.絶対ジャンプ
アドレス:
		+ request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
注:プロトコル名、サーバ名、ポート番号、およびプロジェクト名の順に取得
また、絶対アドレスはWEB-INF下のjspページに直接アクセスできません
jspページがWebContentの下にある場合は、直接+xxx.jspでアクセスできます.
jspページがWEB-INFの下にある場合、springmvc、struts 2などで転送する必要があります.
%>test.jsp"/>
@RequestMapping("/test")
public String getTest() {
       return "test/test";
}

-アクションジャンプ
1.相対ジャンプ
ajaxリクエストなどのjspジャンプと同様です.
../../xxx/xxx.action
2.絶対ジャンプ
jspジャンプと似ています
バックエンド
-jspジャンプ
1.相対ジャンプ
@RequestMapping("/")
public String getIndex() {
       return "WEB-INF/views/index.jsp";
}
は「/」で始まるのではなく、相対パスであり、現在のディレクトリに基づいてジャンプする
2.絶対ジャンプ
@RequestMapping("/")
public String getIndex() {
       return "/WEB-INF/views/index.jsp";
}
は「/」で始まり、絶対パスであり、
プロジェクトルート
開始パス
-アクションジャンプ
1.相対ジャンプ
jspジャンプと似ています
2.絶対ジャンプ
jspジャンプと似ています
まとめ:
相対ジャンプ:最後の「/」の後ろの内容を変更するには、namespaceを考慮する必要があり、エラーが発生しやすい.
絶対ジャンプ:すでに構成されているbasePath(フロントエンド)または"/"(バックエンド)を使用して、プロジェクトのルートディレクトリの下からパスを書くことをお勧めします.