2

我喜欢在 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);  
}                           
}  
4

2 回答 2

3

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

HttpServlet 类提供了一个抽象类,可以对其进行子类化以创建适用于 Web 站点的 HTTP servlet。HttpServlet 的子类必须覆盖至少一种方法,通常是以下其中一种:

  • doGet,如果 servlet 支持 HTTP GET 请求
  • doPost,用于 HTTP POST 请求
  • doPut,用于 HTTP PUT 请求
  • doDelete,用于 HTTP DELETE 请求
于 2013-11-04T08:59:47.303 回答
1

您需要doGet像这样的 -Method:

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

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

如果您想使用POST,您需要实现该doPost(...)方法,顺便说一句。

于 2013-11-04T09:02:21.737 回答