2013-11-04 33 views
2

我喜歡在tomcat服務器上運行一個servlet,但它給出了上面的錯誤。當我在servlet上放一個Ajax請求時,它沒有通過index.jsp工作。請幫助我的朋友。 也簡要解釋了,因爲我在servlet的起始層。HTTP方法GET不被這個URL支持

 import java.sql.Connection; 
    java.sql.DriverManager; 
    import java.sql.ResultSet; 
    import java.sql.Statement;  
    import com.mysql.jdbc.Driver; 
    import java.util.Arrays; 
    import java.io.IOException; 
    import java.io.PrintWriter; 
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 

public class MySQLAccess extends HttpServlet 
{ 

    public void getRows(HttpServletRequest request, HttpServletResponse response)throws  IOException, ServletException 
{ 
    String a=""; 
    PrintWriter out = response.getWriter(); 
    try 
     { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection connection = DriverManager.getConnection( 
       "jdbc:mysql://localhost:3306/sankar?" + "user=root"); 
     Statement statement = connection.createStatement(); 



     ResultSet resultSet = statement 
       .executeQuery("SELECT * FROM sankar.datas"); 
     a=resultSet.getString("name"); 

     } 

    catch (Exception e) 
     { 
     e.printStackTrace(); 
     } 

    out.println(a); 
}       
} 
+0

你沒有doGet或doPost方法 – RamonBoza

回答

3

爲了接受GET要求,你需要重寫doGet方法在MySQLAccess servlet類。考慮到代碼,您可能需要將getRows方法的名稱替換爲doGet。從javadocs

HttpServlet類提供了一個抽象類被繼承到 創建適合於Web站點的HTTP Servlet。的 HttpServlet的子類必須覆蓋的至少一種方法,通常是這些中的一個:

  • 的doGet,如果servlet支持HTTP GET請求
  • 的doPost,對於HTTP POST請求
  • doPut,用於HTTP PUT請求
  • doDelete,用於HTTP DELETE請求
1

您需要doGet - 方法,像這樣:

/** 
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
*/ 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // your code 
} 

GET請求發送到servlet時,將從服務器(更具體地說是tomcat容器)調用此方法。

如果你想使用POST你需要實現doPost(...)方法,順便說一句。

相關問題