2016-03-31 37 views
0

我工作的一個基於Web的項目,我必須從JavaScript傳遞數據給Java Servlet的小號有以下要求:如何獲取Java Servlet的正確URL?

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'DCCServlet?command=' + encodeURIComponent(command), true); 
xhr.send(null); 

這裏是servlet代碼: 包網絡;

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class DCCServlet extends HttpServlet{ 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException{ 

     String command = request.getParameter("command"); 

     System.out.println(command); 
     //Send string where it is needed 
     Startup.MC.sendCommand(command); 
    } 
} 

這裏是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" 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"> 
    <display-name>PiRail</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

    <listener> 
    <listener-class> 
      web.Startup 
     </listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>DCCServlet</servlet-name> 
     <servlet-class>web.DCCServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>DCCServlet</servlet-name> 
     <url-pattern>/DCC</url-pattern> 
    </servlet-mapping> 

</web-app> 

從我可以告訴,有與該servlet沒有問題,但我可能是錯的。 無論出於何種原因,每次執行發出請求的操作時,Opera控制檯中都會出現404錯誤。

GET http://localhost:8080/PiRail/DCCServlet?command=func%2044%204 404 (Not Found) 

我猜我得到的網址錯了,但我真的不知道。如果是這樣的話,那麼正確的URL應該是什麼,如果不是,那麼可能會出現什麼問題?

+0

請求「/ DCCServlet」你給了它'/ DCC'但你」的URL模式重新在'/ DCCServlet'上調用它,你究竟想要什麼? – BalusC

回答

0

在我看來XML你映射的servlet在「/ DCC」但你在GET

+0

它必須是這樣的。我的壞,我還是新來的。謝謝。 – Cailean