我喜欢在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);
}
}
答案 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(...)
方法,顺便说一句。