2017-02-23 8 views
1

複数のURLを認識していない私はこのようなweb.xmlの持っている:サーブレットのは、web.xml内のurl-pattern

<servlet> 
    <servlet-name>MyDisplayCourse</servlet-name> 
    <servlet-class>edu.itn.controller.MyDisplayCourse</servlet-class> 
</servlet> 

とサーブレット・マッピングを次のとおりです。

<servlet-mapping> 
    <servlet-name>MyDisplayCourse</servlet-name> 
    <url-pattern>/admin/displaystudent</url-pattern>  
    <url-pattern>/displaystudent</url-pattern>  
</servlet-mapping> 

私が使用します。

<url-pattern>/displaystudent</url-pattern> 

これは、サーブレットMyDisplayCourseを見つけたが、私は追加使用/管理/

これは、私のWebアプリケーションの404エラーコードを示しています。誰か助けてくれて、なぜ/ admin/displaystudentのようなURLをサポートしていないのですか?/ displaystudentのような単一のURLしかサポートしていません。置き換えurl-pattern

問題がDisplayStudent.java

であなたのコードであるとは問題がありません

+0

同じサーブレットの[多数のurl-pattern]の重複している可能性があります(http://stackoverflow.com/questions/8995353/many-url-pattern-for-the-same-servlet) –

+0

これは私が求めている質問ではありません。私は/ displaystudentの代わりに/ admin/displaystudentを使いたいです。 –

+0

どのようにアプリケーションにアクセスしますか?あなたはURLも提供できますか? –

答えて

1

RequestDispatcher rd=request.getRequestDispatcher("StudentTable.jsp");

RequestDispatcher rd=request.getRequestDispatcher("/StudentTable.jsp");

ServletRequestSpec

パスは「/」それは 現在のコンテキストルート

に対する相対として解釈されるで始まる場合、それ以外の場合は、あなたの場合、「/管理/ StudentTableに相対パスでconcatinateます.jsp」

次のコードが実装されgetRequestDispatcher

@Override 
public RequestDispatcher getRequestDispatcher(final String path) { 
String realPath; 
if (path.startsWith("/")) { 
    realPath = path; 
} else { 
    String current = exchange.getRelativePath(); 
    int lastSlash = current.lastIndexOf("/"); 
    if (lastSlash != -1) { 
     current = current.substring(0, lastSlash + 1); 
    } 
    realPath = CanonicalPathUtils.canonicalize(current + path); 
} 
return new RequestDispatcherImpl(realPath, servletContext); 
} 
+0

、ありがとう。クードマン –

関連する問題