1
나는 JQuery와에 아약스이 서블릿을 호출 할 :
@WebServlet("/getCoursesForSubject")
public class GetCoursesForSubjectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public GetCoursesForSubjectServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
...........
그리고 JSP 페이지에 나는 아약스 요청 호출이 jQuery 코드가 있습니다
$("#subjectSelect").change(function(){
var name = $("#subjectSelect option:selected").text();
alert("change handler is called "+name);
$.get("/getCoursesForSubject",{"subjectName":name},function(responseJson){
$.each(responseJson,function(index,course){
alert(course);
$("<option>").appendTo($("#courseSelect")).text(course.courseDescriptionName);
});
});
});
가 change
메소드가 호출되고 경고가 dsplayed됩니다 올바르게 :
alert("change handler is called "+name);
그러나 다음 나는 경로 /getCoursesForSubject
에 자바 서블릿이 호출 될 것으로 예상하지만,하지 않습니다.
GET http://localhost:8080/getCoursesForSubject?subjectName=AS%20-%20Aerospace%20Studies%22 404()
이 아약스 호출이 있지만 서버가 404 오류를 반환되었음을 의미 : 구글 크롬의 콘솔에서
나는이 오류가 발생합니다.URL에 contextPath
을 부여하면이됩니다. 입니다. 올바른 $.get
방법은 : 당신은 JSTL을 사용하지 않는 경우도
request.getServletContext()
을 사용할 수 있습니다
$.get("${pageContext.request.contextPath}/getCoursesForSubject",{"subjectName":name},function(responseJson){
$.each(responseJson,function(index,course){
alert(course);
$("<option>").appendTo($("#courseSelect")).text(course.courseDescriptionName);
});
});
브라우저 주소 표시 줄에서이 URL에 직접 액세스 할 수 있습니까? – Nitesh
게시 요청 이후 (데이터 게시 이후) 아니요. – Sletheren