url-web.xml 中的模式无法识别多个 url
url-pattern in web.xml not recognising multiple url
我有 web.xml 这样的 :
<servlet>
<servlet-name>MyDisplayCourse</servlet-name>
<servlet-class>edu.itn.controller.MyDisplayCourse</servlet-class>
</servlet>
servlet 的 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>
它找到了 servlet MyDisplayCourse,但是当我使用 append /admin/
<url-pattern>/admin/displaystudent</url-pattern>
这在我的网络应用程序中显示了 404 错误代码。有人可以帮助我为什么不支持 url 像 /admin/displaystudent 但只支持单个 url 像 /displaystudent only.
url-pattern
没有问题
问题出在 DisplayStudent.java
中的代码
替换
RequestDispatcher rd=request.getRequestDispatcher("StudentTable.jsp");
和
RequestDispatcher rd=request.getRequestDispatcher("/StudentTable.jsp");
If the path begins with a "/" it is interpreted as relative to the
current context root
否则它会与你的相对路径 '/admin/StudentTable.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);
}
我有 web.xml 这样的 :
<servlet>
<servlet-name>MyDisplayCourse</servlet-name>
<servlet-class>edu.itn.controller.MyDisplayCourse</servlet-class>
</servlet>
servlet 的 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>
它找到了 servlet MyDisplayCourse,但是当我使用 append /admin/
<url-pattern>/admin/displaystudent</url-pattern>
这在我的网络应用程序中显示了 404 错误代码。有人可以帮助我为什么不支持 url 像 /admin/displaystudent 但只支持单个 url 像 /displaystudent only.
url-pattern
问题出在 DisplayStudent.java
中的代码替换
RequestDispatcher rd=request.getRequestDispatcher("StudentTable.jsp");
和
RequestDispatcher rd=request.getRequestDispatcher("/StudentTable.jsp");
If the path begins with a "/" it is interpreted as relative to the current context root
否则它会与你的相对路径 '/admin/StudentTable.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);
}