1.) Normal JDBC should work OK (Just specify the correct URL for the connection, make sure you have the driver, make sure the network is open to the server, etc.) but will probably be a much more "fragile" solution than other options - since you are accessing the DB directly, any DB changes require a client change - whereas with other methods, you would be able to seperate client and server better.
2.) RMI could work too - you could hide the JDBC (or other data access) behind an RMI facade that would simply provide remote or serialized object versions of the data. Better than direct JDBC (because you are dealing with objects rather than directly with the database), and would certainly be sufficient, but there may be additional needs you have that might already be provided by another choice.
3.) Servlets are probably not the best choice - primarily because the dangers of SQL injection - using servlets and SQL, the first thing anyone thinks of is "Let's just make a servlet that takes a SQL
string and calls the database". Very simple, but also very dangerous - because anyone can send any kind of SQL statement into this - deleting data, getting access to records they shouldn't, etc. Yes, it is possible to filter the input, but you have to be very careful, and it's easy to miss possible "bad" statements that can be sent - so it's better to just not use this.
4.) Other possible choices -
a.) Web Service - kind of like the servlet option, but more "object-like" - make sure you aren't sending SQL directly again - deal with objects - not SQL.
b.)
EJB - may be more than you need - and probably a steep learning curve - but it should provide everything
you should ever need for this plus more - transactions, objects instead of SQL, remote access, etc.
c.) Hibernate - or some other ORM (Object Relational Mapping) solution - point it at a database, tell it what tables to model as what kind of objects, and it handles the rest.
None of these are "the best" answer - it all depends on your exact project, the way your project accesses data, and your level of understanding of how to use any of these.