Discordo: web é completamente diferente de um desktop, pelo menos os desktops interativos atuais. Fazer programinhas que só escrevem na tela o que vc programou são uma grande fonte de aprendizado, nada daqueles "me diga o seu nome: , qual o seu peso: ".
Realmente é importante conhecer os fundamentos da linguagem, saber o que são classes, interfaces, anotações, enumerações, coleções e tratamento de exceções.
Não é obvio como se da uma autenticação num sistema web pois o protocolo HTTP é stateless. Vc pode ter autenticação no protocolo, a chamada BASIC AUTH, porém a sua senha fica zanzando pela rede através dos headers HTTP.
Vc trabalha com uma abstração chamada ‘sessão’, quando vc efetua o login o sistema confere o seu usuario e senha e, estando tudo correto, cria uma sessão aonde vc pode ter coisas como: um carrinho de compras, acesso a determinadas partes do sistema, informações importantes, etc. Essa sessão é implementada pelo lado do servidor, então fica a questão: como deixar o cliente (o browser) saber disso?
Vc tem 2 tecnicas: uma delas vc cria um cookie na maquina informando um identificador da sua sessão e, para cada request, o sistema avalia este cookie e ve quem é vc. Por isso q paginas de login tem um redirect no meio: o primeiro request seta o cookie e o segundo le o mesmo, para tudo ficar numa boa. Quando vc desloga vc ‘destroi’ a sessão.
A outra tecnica é informar um sessionID que é manipulado pelas paginas como um campo escondido (hidden), que é um pouco mais bizarro e trabalhoso de se trabalhar.
O capitulo 11, pagina 159, da apostila FJ21 da caelum mostra uma implementação, mas seria interessante vc ler toda a apostila e, talvez, a FJ11 de java básico: