2016-05-27 74 views
0

我想从jQuery的.ajax()函数调用一个servlet。Ajax调用不会去servlet,当我调用这个函数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在.java文件以及web.xml中的WebServlet路径。从任何一个位置移除它都适用于您。

象下面这样:

在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项目打开,那么通过向你的pom.xml文件添加下面的依赖项来将commons-logging JAR添加到你的项目中。

<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:子容器在启动错误期间失败并且破坏ProtocolHandler错误 –

+0

请帮我找到一个解决方案。 –