1.问题介绍
现如今,在Jsp编程中会经常用到重定向,如果进行重定向时,没有注意路径问题必然会出现404错误。由于重定向的两个文件在项目中存在的位置各有不同,因此需要进行分类讨论来解决。
2.路径介绍
绝对路径:带盘符路径
相对路径:
1.同级目录,直接写文件名称或者./文件名称
2.上一级目录:…/文件名称(如果是多层,那么多写几个…/)
3.下一级目录:目录名称/文件名称
3.jsp文件介绍
本博客一共涉及到了三个jsp页面:分别是info.jsp、transfer.jsp、outinfo.jsp。info.jsp中存在着表单提交的路径,transfer.jsp存在着重定向路径。这两个jsp文件中的路径要跟着三个文件的位置而改变。
文件关键代码如下:
info.jsp
<form action="transfer.jsp" method="post">
<h1> 注册信息</h1>
<hr>
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd"/></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" name="epwd"/></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="email"/></td>
</tr>
<tr>
<td>地址:</td>
<td><input type="text" name="adress"/></td>
</tr>
<tr>
<td>
<input type="submit" name="submitbnt" value="submit" />
</td>
</tr>
</table>
</form>
transfer.jsp
<%request.getRequestDispatcher("outinfo.jsp").forward(request, response); %>
outinfo.jsp
<h1>用户信息</h1>
<hr>
<p>用户名:<%=request.getParameter("username") %></p>
<p>密码:<%=request.getParameter("pwd") %></p>
<p>电子邮件:<%=request.getParameter("email") %></p>
<p>地址:<%=request.getParameter("adress") %></p>
4.jsp路径分析
4.1 同级目录
info.jsp表单action路径:transfer.jsp
transfer.jsp中重定向路径:outinfo.jsp
4.2 两个jsp文件在同一目录,另一个在另一目录
第一种情况:
info.jsp表单action路径:jsp/transfer.jsp
transfer.jsp中重定向路径:outinfo.jsp
第二种情况:
info.jsp表单action路径:…/transfer.jsp
transfer.jsp中重定向路径:jsp/outinfo.jsp
4.3 三个jsp文件不在同一目录
第一种情况:
info.jsp表单action路径:jsp02/transfer.jsp
transfer.jsp中重定向路径:…/jsp01/outinfo.jsp
第二种情况:
info.jsp表单action路径:…/…/transfer.jsp
transfer.jsp中重定向路径:jsp/jsp01/outinfo.jsp