Como funciona a conexao com banco de dados em JAVA web ou PHP e etc

bom , como estou aprendendo JAVA web , servlets, jsp e etc. gostaria de saber como funciona uma conexao com banco de dados quando o sistem é web.
tipo

Campo restrito a usuarios(acredito que necessite de um banco de dados).
como são realizadas as consultas esse tipo de coisa. muda muito pro JAVA web?
qual banco de dados ultilizar?

como que se conecta a esse banco de dados? no site por exemplo ele fica guardado no host que o site ta hospedado?

espero que tenham entendido.
Agradecido.
podem mandar links de PHP ou JAVA web ou exemplo de codigos fonte de conexão.