Dúvida - JSF+Sistema de login

Boa tarde, estou desenvolvendo um site com JSF, primefaces, estou com dúvidas a questão do login, como validar que um usuário fez o login e como o manter logado até que ele feche o navegador? Isso é gerenciado pelo Servlet? Estou usando o tomcat, terei que usar um servidor de aplicação como JBoss por exemplo? Estou meio perdido nessa parte.

Outra dúvida é, queria mudar o conteúdo da página sem mudar de página, preciso utilizar AJAX ou algo do tipo?

Obrigado.

Tem duas perguntas:

Como validar que um usuário fez o login e como o manter logado até que ele feche o navegador?

De forma simples voce pode fazer um ManagedBean que recebe o usuario e senha e se o login for bem sucedido voce seta na HttpSession uma propriedade tipo logado = true ja que voce quer que dure até quando ele feche o browser.

// logando o usuario
// /login.html
if ("root".equals(user) && "123".equals(password)) {
	HttpSession session = getSession();
	session.setAttribute("logado", "1");
}

private static HttpSession getSession() {
	FacesContext facesContext = FacesContext.getCurrentInstance();
	return (HttpSession) facesContext.getExternalContext().getSession(false);
}

@WebFilter("/area-logada/*")
public class VerificadorLoginFilter implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse res = (HttpServletResponse) response;
		HttpSession session = req.getSession(false);
		if (!"1".equals(session.getAttribute("logado"))) {
			((HttpServletResponse) response).sendRedirect("/login.html");
		}
	}

	@Override
	public void destroy() {

	}
}

Usando frameworks voce pode usar o Spring Security por exemplo.

Queria mudar o conteúdo da página sem mudar de página, preciso utilizar AJAX ou algo do tipo?

Usando JSF não porque a ideia dele é ser asincrono mesmo, tudo que voce fizer com JSF vai sempre usar o AJAX e nunca vai recarregar a pagina.