在线等 求解 一个404错误
我的工程名是StuInfo,在页面中需要换页和编辑、新建、删除,在第一页时可以正常工作,可是换页之后就会出现404错误,
主页面AllUser.jsp:
function edit(vid){
window.location.href="Euse.jsp?eid="+vid;}
function del(did){
var b =confirm("确认要删除吗?");
if(b){
window.location.href="../servlet/UserServlet?opflag=del&did="+did;
}else{
alert("删除操作取消!");
}
}
</script>
</head>
<body>
<%
UserDAO userdao = new UserDAO();
PageHelp pagehelp=null;
List list = null;
pagehelp=(PageHelp)request.getAttribute("pagehelp");
if(pagehelp==null){
//System.out.println("起始页");
int currentPage=1;
pagehelp =userdao.queryUser(" ",currentPage);
}
list=pagehelp.getObjectlist();
%>
<form name="search" method="post" action="./servlet/UserServlet" target="_self" onSubmit="return docheck()">
<input type="hidden" name="opflag" value="search">
<table align="center" >
<tr>
<td height="40" colspan="29" align="center"> <font size="5" face="华文楷体"><strong>用户信息</strong></font></td>
</tr>
<tr>
<td height="10" colspan="3"><div align="center"></div></td>
</tr>
<tr>
<td align="right">ID:<input type="text" style="width:90px;height:20px;" name="uID" ></td>
<td align="right">角色:
<select name="urole">
<option value="">请选择</option>
<option value="0">学生</option>
<option value="1">教师</option>
<option value="2">管理员</option>
</select>
<td><input type="submit" value="查询"></td>
</tr>
<tr>
<td height="5" colspan="3"><div align="center"></div></td>
</tr>
</table>
</form>
<form name="AllUser" action="AllUser.jsp">
<table align="center" border="1">
<tr>
<td width="80" ><div align="center"><font size="2" face="宋体"><strong>ID</strong></font></div></td>
<td width="80" ><div align="center"><font size="2" face="宋体"><strong>姓名</strong></font></div></td>
<td width="80" ><div align="center"><font size="2" face="宋体"><strong>密码</strong></font></div></td>
<td width="40" ><div align="center"><font size="2" face="宋体"><strong>角色</strong></font></div></td>
<td></td>
<td><input name="tnew" type="button" onClick=" window.location.href='NewUser.jsp'" value="新建"></td>
</tr>
<%
Iterator it =list.iterator();
while(it.hasNext()){
UserVO uservo=(UserVO)it.next();
%>
<tr >
<td width="80" ><div align="center"><%=uservo.getUserID() %></div></td>
<%//String vsid=stuinfvo.getStuID();
//System.out.println(stuinfvo.getStuID());%>
<td width="80" ><div align="center"><%=uservo.getUserName() %></div></td>
<td width="80" ><div align="center"><%=uservo.getPassWord() %></div></td>
<td width="40" ><div align="center" >
<% int role=0;
role=uservo.getUserRole();
if(role==0){%>学生
<%}
else if(role==1){%>教师<%
}else{%>
管理员
<%}%></div></td>
<td><input name="tedit" type="button" onClick="edit('<%=uservo.getUserID() %>')" value="编辑"></td>
<td><input name="delete" type="button" value="删除" onClick="del('<%=uservo.getUserID() %>')"></td>
</tr>
<%} %>
</table>
此时第一页正常,换页之后新建和编辑出现404,应为换页操作跳到了servlet里面,错误:
The requested resource (/StuInfo/servlet/NewUser.jsp) is not available.
这个我理解了,
然后我把
function edit(vid){
window.location.href="Euse.jsp?eid="+vid;
}
改成了:
function edit(vid){
window.location.href="/WebRoot/User/Euse.jsp?eid="+vid;
}
在第一页点编辑的时候,也出现404错:
The requested resource (/WebRoot/User/Euse.jsp) is not available.
这个我不懂Euse.jsp的确是在User下啊,
最后我又改成:
function edit(vid){
window.location.href="../WebRoot/User/Euse.jsp?eid="+vid;
}
同样是404错:
The requested resource (/StuInfo/WebRoot/User/Euse.jsp) is not available.
servlet里换页操作如下:
if("changePage".equals(opflag)){
String sqlCondition =" ";
sqlCondition=request.getParameter("condi");
String currentpage=request.getParameter("currentPage");
//System.out.println(currentpage);
int intcurrentpage=Integer.parseInt(currentpage);
UserDAO userdao = new UserDAO();
PageHelp pagehelp=new PageHelp();
//System.out.println(intcurrentpage+sqlCondition+intcurrentpage);
try {
pagehelp=userdao.queryUser(sqlCondition,intcurrentpage);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
request.setAttribute("pagehelp",pagehelp);
//response.sendRedirect("../Contact/AllContact.jsp");
request.getRequestDispatcher("../User/AllUser.jsp").forward(request,response);
}
难道我只能把点击编辑之后的响应传到servlet里去,然后再传到EUser.jsp里吗?
后面两个404错是为什么呢?看起来的确是存在的啊?
[解决办法]
估计是LZ没有理解URI和站点物理文件路径之间的关系问题。
不妨在JSP中用application.getRealPath("/StuInfo/WebRoot/User/Euse.jsp")看看文件的物理路径应该在哪里就知道了什么问题了。
[解决办法]