写了两个servlet,分别是:servletListFiles、servletDownFile1
调用代码分别这样写:
<form action="${pageContext.request.contextPath}/servlet/servletListFiles" method="post">
<input type="submit" value="提交123">
</form>
与
<c:forEach var="me" items="${fileMap}">
<c:url value="${pageContext.request.contextPath}/servlet/servletDownFile1" var="downurl">
<c:param name="fileName" value="${me.key}"></c:param>
<c:param name="realfilename" value="${me.value}"></c:param>
</c:url>
${me.value}<a href="${downurl}">下载</a>
<br/>
</c:forEach>
问题:
调用servletListFiles时不会报错,但调用servletDownFile1就出现404错误,但是如果把${pageContext.request.contextPath}去掉,就能正常调用。为什么第一个servlet可以加${pageContext.request.contextPath},而第二个不能呢?
------解决思路----------------------
很简单,因为<c:url>标签的一个功能就是会自动在url前面补上项目名称,方便开发者不需要自己写项目名