我写的jsp+servlet模式的代码,form标签里面的action写的是
这样的绝对路径就可以:
写成
就不可以 ,请问是为什么呢?
acrion里面的路径最好写成action="<%=request.getContextPath()%>/XxxServlet",为什么写成这样呢,因为web项目将来部署的项目名字有可能会改变,<%=request.getContextPath()%>可以获取项目路径,这样访问Servlet或资源路径就不会出现404错误。
所有的html页面中的相对地址都是相对于服务器根目录(http://127.0.0.1/)的,
就是说界面跳转已经有了基础路径就是你项目的路径,剩下的就是找到项目中对应的目录就好了。
而不是(根目录下的该Web应用的目录)http://127.0.0.1/webapp/的。
Html中的form表单的action属性的地址应该是相对于服务器根目录(http://127.0.0.1/)的,
所以,如果提交到a.jsp为:action="/webapp/user/a.jsp"或action="<%=request.getContextPath()%>"/user/a.jsp;
不建议写相对路径,容易出错。通用的方法是在 JSP 代码片段中获取项目的应用路径,然后 action 中拼应用路径,得到一个完整的绝对路径。
<%
String contextPath = request.getContextPath();
%>