这是我的Web应用程序的结构
Webcontent
-Admin
--1.jsp
--2.jsp
-User
--1.jsp
--2.jsp
-login.jsp
这是我的web.xml文件
<servlet>
<servlet-name>resolve_subject</servlet-name>
<servlet-class>teacher_select.resolve_subject</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resolve_subject</servlet-name>
<url-pattern>/resolve_subject</url-pattern>
</servlet-mapping>
这就是我从1.jsp
调用我的servlet的方式function showCity(str){
if (typeof XMLHttpRequest != "undefined"){
xmlHttp= new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlHttp==null){
alert("Browser does not support XMLHTTP Request");
return;
}
var url="resolve_subject";
url +="?count=" +str;
xmlHttp.onreadystatechange = stateChange1;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
但是我收到以下错误
答案 0 :(得分:0)
这是非常期待的。您的servlet映射到/resolve_subject
。这意味着它是您的webapp的根源。因此,其绝对URL为/qmsnew/resolve_subject
。但是你试图通过相对路径从/admin
下的JSP访问它,导致/qmsnew/admin/resolve_subject
的绝对路径。
您的网址应该是
var url = "../resolve_subject";
或,
var url = "${pageContext.request.contextPath}/resolve_subject";
或使用JSTL:
var url = "<c:url value='/resolve_subject' />";
附注:pleasue尊重Java命名约定。课程是CamelCased。因此,您的servlet应命名为ResolveSubject
。