Personally, I'd ignore scalability problems and the like - if it's a hobbyist game then I don't expect server performance to be an issue. Fine, it may be hard to change afterwards, but it's dead easy to learn from mistakes and do it right the second time around.
After all, the only thing the servlet had to to was to act as a pipeline, so why not accessing the source directly?
Well, it's not quite just a pipeline. The servlet can detect IP addresses and add them to the DB, and expire settings on timeout etc. Without the servlet, is the client applet going to work out its IP and add that to the list? How are you going to handle private IP ranges etc? An applet may think it's running on a machine called 10.1.4.56, but the rest of the world may disagree.
Also, if the servlet detects a large number of requests from one particular machine, it can just ignore them. No problem.
However, I'm not just labouring the point - there's another good reason for using a servlet to talk to the database:
what i'm searching for remains the same: a simple java example opening a database lying on the web. If anyone is able to do this, it would be very appreciated.
I don't think you'll be able to do this. Another advantage of the servlet is that the client talks HTTP to it. If you want the client to directly access a database, you'll need to be sure that intermediate firewalls will allow JDBC traffic through. I wouldn't bet on this at all! You'll need something
on the server to startup and shutdown the DB anyway, may as well make it the servlet. Databases are too "raw" for public access anyway - they are almost always (99.99%) accessed via an interface of some kind.
I'm afraid the advice here is good advice, and actually cuts down the amount of work you need to do:
A single servlet on the webserver using (for example) HSQLDB as a JDBC data source.
Create an in-memory one-table DB on servlet init.
Don't worry about usernames/passwords, detect IP addresses automatically for addition to the DB.
Log the IP and the time the data was added.
Have the client send a "refresh" message every minute of run-time.
On a "refresh" message, reset the time against the IP to the current time.
Every two minutes or so delete all rows from the table where the listed time is over five minutes in the past.
How does that sound? This way you don't need to worry about ODBC or registering the data source with anyone - it's held entirely internal to the servlet. Noone else even knows it's there.
(PS: In fact even this is overkill - for storing a list of IPs you may as well stick them in a Java collection or something! Is there anything else you want the DB there for?)