- はじめに:昨日、春のmvcプロジェクトのフレームワークの構築を終了しましたが、ページにアクセスできなくなったことがわかりました。コードを注意深く調べたところ、次のことがわかりました。パスがジャンプすると、パスの前に余分な/スラッシュが追加され、要求されたパスが発生しましたエラー、パスフォワードスラッシュの問題について共有しましょう
1.リクエストパスについて:
正しい要求パスのみがサーバーのリソースにアクセスできます。要求パスは、リソースパスとリソース名で構成されます。
例如: http:// localhost:8080 / springmvc / test / hello
ここで、 http:// localhost:8080 / springmvc / testはリソースパスであり、helloはリソース名です。
2.パス分類を要求します。
リクエストパスはフロントエンドパスとバックエンドパスに分かれています。jspページのパスはフロントエンドパスです。.xmlのパスがバックエンドパスと言えば、今回は主にフロントエンドパスを紹介し、フロントエンドパスをに分割します。相対パスと絶対パスの2つのタイプ。
3.要求パスは、相対パスと絶対パスに分けられます。
例: http:// localhost:8080 / springmvc / test / hello は絶対パス(フルパス)であり、リソースを正確に見つけることができます
例:/ test / helloまたはtest / helloは相対パスであり、最も参照パスとして他の1つのパスに依存します
注意深く見ると、次のことがわかります。同じ相対パスの前にスラッシュ(/)があるのはなぜですか?これは、このブログで共有されているメインコンテンツです。
- パスがフォアグラウンドで解決される場合、ルートパスはhttp:// localhost:8080 /です。
- パスがバックグラウンドで解決される場合、ルートパスはhttp:// localhost:8080 / project name /です。
例を見てください:
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序</h3>
<!--
当前路径是前面没有斜杠的相对路径,参照的路径就是当前页面的路径:
参照的路径是http://localhost:8008/项目名/requestMapping
http://localhost:8008/test/requestMapping
-->
<a href="requestMapping">前面没有斜杠</a>
<!--当前路径是一个有斜杠的相对路径,参照路径就是当前的web服务器的根路径:http://localhost:8008/
点击链接之后提交的URL绝对地址是: http://localhost:8008/requestMapping
-->
<a href="/requestMapping">前面有斜杠</a>
</body>
</html>
コントローラ:
*/
@Controller
public class HelloController {
@RequestMapping(path="/requestMapping")
public String testRequestmapping(){
System.out.println("hello spring mvc");
return "success";
}
}
最初のページ:
最初のハイパーリンクをクリックすると、相対パスの前にスラッシュはありません。
アドレスバーのURLは次のようになります。
前面の緑色の部分は、相対パス(つまり、http:// localhost:8008 / test / haha /)の参照パスです。これは、リンクをクリックする前のパスです。
スラッシュが前に付いているリンクをクリックすると、次のようになります。
URLは次のようになります。
相対パスの参照パスがルートディレクトリ(つまり、http:// localhost:8008 /)になっていることがわかります。