如何在远程服务器上编译servlet?

时间:2013-08-10 05:27:52

标签: java tomcat servlets

我想在我的远程Apache Tomcat服务器上传我的servlet文件并想要编译它。我想知道我应该在哪个目录下保存这个文件以及如何编译它?我应该用Putty吗?我对Servlets比较新。这是我的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进行更改?

1 个答案:

答案 0 :(得分:3)

逐一回答:

  1. 您不能仅部署servlet,必须将其打包到war文件中然后部署它。现在,如何在war文件中打包?好吧,你要么让你用的IDE为你做(请参阅你正在使用的相应IDE的帮助),或者你用一些项目管理工具(如maven或ant)为你做这个。我建议从IDE中导出war文件开始。如果你正在使用Eclipse,我做了一个快速谷歌,发现this video你可以看到它(我没有看到它的端到端,但似乎没错。)

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

  3. 将war文件手动传输到服务器(使用putty,Windows远程桌面等)并不是一个好主意,因为有一天你可能需要在没有远程访问权限的服务器上进行部署。对于tomcat,您可以使用tomcat部署管理器(用于远程主机)或IDE(用于您的localhost,如上面的视频所示)。这是tomcat部署的the documentation。但是,你回家的目的是我认为tomcat安装目录中的“webapps”。
  4. 对于web.xml中的更改...这取决于您是否使用小于3.0的servlet版本,然后是,您应该在web.xml中描述您的servlet(大多数IDE都是为您做的,所以我建议最好先打开你的web.xml,看看你的servlet是否还没有在那里描述过。如果你正在使用servlet 3.0,你所要做的就是使用@WebServlet注释来注释你的servlet。
  5. 为了更好地理解servlet,我建议您阅读thisthis(取决于您正在使用的Java EE版本),开始使用Oracle的网站。

    希望有所帮助。