此URL不支持HTTP方法GET

时间:2013-11-04 08:58:41

标签: java mysql servlets

我喜欢在tomcat服务器上运行servlet,但是它给出了上面的错误。当我在servlet上放置ajax请求时,它没有通过index.jsp工作。请帮助我的朋友。 还简要解释一下,因为我处于servlet的起始级别。

       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);  
}                           
}  

2 个答案:

答案 0 :(得分:3)

要接受GET请求,您需要覆盖doGet servlet类中的MySQLAccess方法。考虑到代码,您可能只需将getRows方法的名称替换为doGet。来自javadocs

  

HttpServlet类提供了一个要子类化的抽象类   创建适用于Web站点的HTTP Servlet。的子类   HttpServlet必须至少覆盖一个方法,通常是其中之一:

     
      
  • doGet,如果servlet支持HTTP GET请求
  •   
  • doPost,用于HTTP POST请求
  •   
  • doPut,用于HTTP PUT请求
  •   
  • doDelete,用于HTTP DELETE请求
  •   

答案 1 :(得分:1)

您需要doGet - 方法,如下所示:

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

当向servlet发送GET请求时,将从服务器(更具体地说是tomcat容器)调用此方法。

如果您希望使用POST,则需要实施doPost(...)方法,顺便说一句。