2016-05-27 8 views
0

Ich versuche, ein Servlet von jQuery's .ajax() -Funktion zu rufen.Ajax Aufruf geht nicht an Servlet, wenn ich diese Funktion s.o.P-Anweisung nicht in der Konsole gedruckt wird, Irgendwelche Ideen? Für jede Hilfe danke im Voraus.

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

Sind Sie sicher, 'das' ist, was Sie denken, dass es ist? –

Antwort

0

Es kann zwei Ursachen für diesen Fehler sein: 1 Es kann dazu führen, dass Sie wri haben tten WebServlet Pfad in der .java-Datei sowie in der web.xml. Entfernen von einem Ort wird für Sie arbeiten.

wie unten:

In der .java-Datei

@WebServlet("/weeklyMarks") 

und in 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> 

Aber von Ihrem bestimmten Code kann ich sehen, Sie haben nur in Web erwähnt. xml Der zweite Grund für dieses Problem kann wie folgt sein:

2.javamail.jar fehlt. Fügen Sie javamail.jar Ihrem tomcat lib Ordner hinzu. Oder Wenn Sie Maven-Projekte in Ihrem Arbeitsbereich geöffnet haben, fügen Sie die JAR-Datei mit Commons-Logging zu Ihrem Projekt hinzu, indem Sie die folgende Abhängigkeit zu Ihrer Datei pom.xml hinzufügen.

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

ja seine Arbeit für mich –

+0

groß :) welche eine von zwei Optionen für Sie funktioniert? –

0

Sie haben es in web.xml hinzufügen, wie unten

<?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

Dies ist in web.xml-Datei hinzugefügt, aber es gibt verursacht durch: org.apache.catalina.LifecycleException: Ein Kind-Container fehlgeschlagen während Start-Fehler und Destroying ProtocolHandler Fehler –

+0

bitte helfen Sie mir bei der Suche nach einer Lösung. –

Verwandte Themen