2013-11-04 31 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(...)方法,顺便说一句。

相关问题