user2815407
user2815407

Reputation: 147

HTTP method GET is not supported by this URL

I like to run a servlet on a tomcat server but it gives the error as above.Also when i put ajax request on the servlet it did not working through index.jsp.Please help me friends. also explain briefly because I am at the starting level of 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);  
}                           
}  

Upvotes: 2

Views: 283

Answers (2)

Juned Ahsan
Juned Ahsan

Reputation: 68715

In order to accept the GET request, you need to override the doGet method in your MySQLAccess servlet class. Considering the code, you may just have to replace the name of your getRows method to doGet. From javadocs

HttpServlet class provides an abstract class to be subclassed to create an HTTP servlet suitable for a Web site. A subclass of HttpServlet must override at least one method, usually one of these:

  • doGet, if the servlet supports HTTP GET requests
  • doPost, for HTTP POST requests
  • doPut, for HTTP PUT requests
  • doDelete, for HTTP DELETE requests

Upvotes: 3

LuigiEdlCarno
LuigiEdlCarno

Reputation: 2415

You need the doGet-Method like so:

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

This method is called from the server (tomcat container more specifically) when a GET request is sent to the servlet.

If you wish to use POST you need to implement the doPost(...)method, btw.

Upvotes: 1

Related Questions