1

我想在我的远程 Apache Tomcat 服务器上上传我的 servlet 文件并想编译它。我想知道我应该将这个文件保存在哪个目录下以及如何编译它?我应该使用腻子吗?我对 Servlet 比较陌生。这是我的servlet代码:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet(name= "db-connect", urlPatterns="/db-connect")
public class DBConnect extends HttpServlet{

private Connection con = null;
private PreparedStatement preparedStatement = null;


protected void doGet(HttpServletRequest request, HttpServletResponse response)
{
    try
    {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://http://localhost:3307/abc?autoReconnect=true");

        preparedStatement  = con.prepareStatement("SELECT * FROM Person");

        ResultSet rs = preparedStatement.executeQuery();
        while(rs.next())
        {
            String email = rs.getString("email");
            System.out.print(email);
            System.out.println("in");
        }

    }
    catch(Exception e)
    {

    }
}

我还需要对 web.xml 进行更改吗?

4

1 回答 1

3

一一解答:

  1. 您不能只部署 servlet,您必须将其打包到一个 war 文件中,然后再部署它。现在,如何在战争文件中打包一些东西?好吧,要么让你正在使用的 IDE 为你做这件事(请参阅你正在使用的相应 IDE 的帮助),或者你使用一些项目管理工具(如 maven 或 ant)为你构建它。我建议从 IDE 中导出 war 文件开始。如果你使用的是 Eclipse,我做了一个快速的谷歌搜索,发现这个视频你可以观看(我还没有从头到尾观看,但它似乎是正确的)。

  2. 将您的 web 项目导出到一个 war 文件,意味着您的 servlet 类将被编译并打包在其中,因此无需在服务器上编译它们。如果您需要在调用时自动编译的东西,您将需要一个 jsp,它在第一次被调用时被编译(同样没有您的努力)。

  3. 手动将您的战争文件传输到服务器(使用 putty、Windows 远程桌面等)不是一个好主意,因为您可能有一天需要部署在您没有远程访问权限的服务器上。对于 tomcat,您可以使用 tomcat 部署管理器(用于远程主机)或 IDE(用于您的本地主机,如上面的视频所示)。这是tomcat部署的文档。但是,您要查找的目录是我认为 tomcat 安装目录中的“webapps”。
  4. 对于 web.xml 中的更改...这取决于您使用的 servlet 版本是否低于 3.0,那么是的,您应该在 web.xml 中描述您的 servlet(大多数 IDE 都会为您这样做,所以我建议更好地首先打开您的 web.xml 并查看您的 servlet 是否尚未在其中描述)。如果您使用的是 servlet 3.0,您所要做的就是使用 @WebServlet 注释来注释您的 servlet。

为了更好地理解 servlet,我建议在 Oracle 的网站上阅读(取决于您使用的 Java EE 版本)入门。

希望有帮助。

于 2013-08-10T05:58:23.420 回答