2016-05-27 4 views
0

Я пытаюсь вызвать сервлет из функции .ajax() jQuery.Аджак не переходит к сервлету, когда я вызываю эту функцию. Оператор s.o.p не печатается на консоли. Любые идеи? Для любой помощи спасибо заранее.

This is my code: 
<!--Html code:--> 
<form id="ajaxform" action="weeklyMarks" method="post"> 
    <table> 
     <td> 
      <label id="stForm" for="Marks">Marks Obtained:</label> 
      <input type="text" id="stMarks" name="stMarks" style="margin-left: 33px; width: 150px;" />  
      <label id="stMarksError" style="display: none; color: red;">*Please enter marks</label> 
      <br> 
      <br> 
     </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="button" value="Add" id="addButton" class="btn-warning" style="margin-left: 200px;"" onclick="addSubjectMarks() "> 
      </td> 
     </tr> 
    </table> 
    </div> 
    </div> 
</form> 
//ajax call from jsp page 
function addSubjectMarks(){ 
var postData = $(this).serializeArray(); 
var formURL = $(this).attr("action"); 
var selectedStudent=document.getElementById("selectedStudent").value; 
var selectedSubject=document.getElementById("selectedSubject").value; 
var marks=document.getElementById("stMarks").value; 
    $.ajax({ 
    type: "POST", 
    url: formURL, 
    data:postData, 
    success: function(data,status){ 

     alert(status); 

    }     
    }); 
}  
//servlet is:this servlet having url weeklyMaks 
protected void doPost(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
    System.out.println(request.getParameter("stMarks")); 
} 

my web.xml code is: 

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0"> 
<servlet> 
    <servlet-name>week</servlet-name> 
    <servlet-class>com.studentmodels.WeeklyMarks</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>week</servlet-name> 
    <url-pattern>/weeklyMarks</url-pattern> 
</servlet-mapping> 

<display-name>Students</display-name> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>Home.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 

<error-page> 
    <exception-type>java.lang.exception</exception-type> 
    <location>/login.html</location> 
</error-page> 

+0

Вы уверены, что «это», как вы думаете, это так? –

ответ

0

Там могут быть две причины этой ошибки: 1 Это может вызвать, если у вас есть wri tten WebServlet Path в файле .java, а также в web.xml. Удаление его из любого места будет работать для вас.

Как показано ниже:

В .java файл

@WebServlet("/weeklyMarks") 

и в web.xml

<servlet> 
    <servlet-name>week</servlet-name> 
    <servlet-class>com.studentmodels.WeeklyMarks</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>week</servlet-name> 
    <url-pattern>/weeklyMarks</url-pattern> 
</servlet-mapping> 

Но из вашего данного кода я вижу, что вы уже упоминали только в Интернете. xml Вторая причина возникновения этой проблемы может быть следующей:

2.javamail.jar отсутствует. Добавьте javamail.jar в папку tomcat lib. Или, если у вас есть какие-либо проекты Maven в рабочей области, а затем добавьте JAR в свой проект в свой проект, добавив следующую зависимость к вашему pom.xml-файлу.

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.2</version> 
    </dependency> 
+0

да его работа для меня –

+0

отлично :) какой из двух вариантов сработал для вас? –

0

вы должны добавить его в web.xml, как показано ниже

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>ajaxtry</display-name> 
    <welcome-file-list> 
<welcome-file>default.htm</welcome-file> 
<welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
<servlet-name>ProcessForm</servlet-name> //url given in ajax call 
<servlet-class>com.ajaxtry.web.ProcesFormServlet</servlet-class>//servlet class path 
    </servlet> 
    <servlet-mapping> 
<servlet-name>ProcessForm</servlet-name> //url given in ajax call 
<url-pattern>/ProcessForm</url-pattern> //url given in ajax call 
    </servlet-mapping> 
</web-app> 
+0

Это добавлено в файл web.xml, но оно дает причину: org.apache.catalina.LifecycleException: дочерний контейнер не сработал во время ошибки запуска и уничтожения ошибки протоколаHandler –

+0

, пожалуйста, помогите мне найти решение. –

Смежные вопросы