如何在jsp中发布相对于应用程序根目录?

时间:2013-10-19 22:37:08

标签: java jsp tomcat

我有一个编译成tryJEdit.war文件的maven项目。 当我将其复制到tomcat文件夹并启动Tomcat时,我可以从以下位置访问该应用程序:

localhost: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文件中?

编辑&amp;扩展问题

在我尝试使用servlet doGet方法时:

ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/re.pdf");

文件 re.pdf 实际上是在tryJEdit / re.pdf中搜索的,而不是localhost:8080 / re.pdf,但对于上面的情况,如果我发布到/ tugay然后我最终进入localhost:8080 / tugay没试过JEdit / tugay ......

问候。

2 个答案:

答案 0 :(得分:1)

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getContextPath()

<form method="post" action="<%=request.getContextPath()%>/tugay">

答案 1 :(得分:1)

要在没有scriptlet的情况下执行此操作,请尝试

<form method="post" action="${pageContext.request.contextPath}/tugay">