我有一个Maven项目,可以将其编译为tryJEdit.war文件。
将其复制到tomcat文件夹并启动Tomcat时,可以从以下位置访问该应用程序:
本地主机:8080 / tryJEdit
在index.jsp中,我有:
<form method="post" action="tugay">
因此,在表单发布后,我发现自己位于:
localhost:8080/tryJEdit/tugay -> Which is fine..
但是当我将表格更改为:
<form method="post" action="/tugay">
我发现自己在:
localhost:8080/tugay
不好
无论如何,通过告诉类似以下内容来访问localhost:8080 / tryJEdit / tugay:
<form method="post" action="$APPLICATION_ROOT/tugay">
在jsp文件?
编辑并扩展问题
在尝试servlet的doGet方法时:
ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/re.pdf");
re.pdf文件实际上是在tryJEdit / re.pdf中而不是localhost:8080 / re.pdf中搜索的,但是对于上述情况,如果我发布到/ tugay,那么我最终会在localhost:8080 / tugay中而不是tryJEdit / tugay。 ..
问候。
最佳答案
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getContextPath()
<form method="post" action="<%=request.getContextPath()%>/tugay">
关于java - 如何发布相对于在JSP中的应用程序根目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19471905/