Bom, o include tem uma função semelhante aos facelets, logo, posso entender que utilizando o código acima, você está “incluindo” as funcionalidades do arquivo cujo nome é passado como parâmetro do get na página index.php.
Em jsf isso não existe, pois vai contra a idéia de compilar e depois disponibilizar o código (lembre-se java não é uma linguagem de script como o PHP e JSF tem conceitos de segurança bem distintos).
Além do mais, normalmente os recursos de lógica de negócios não ficam nas xhtml, eles são tratados nas camadas java, seja no próprio ManagedBean ou nas demais camadas.
“Traduzir” código PHP para Java é bem complicado. O paradigma muda completamente. Sem entender a plataforma Java, provavelmente você vai ter muitas dificuldades.
Meu conselho é não tentar aplicar conceitos de PHP a outras linguagens, a não ser que se saiba muito bem o que se faz, pois na maioria das vezes isso resulta em gambiarras.
Mesmo em PHP (e qualquer linguagem dinâmica) é altamente contra indicado incluir páginas baseado em query string.
Se você tem facilidade com PHP e quer “subir o nível” não precisa necessariamente mudar para o Java, procure um framework PHP que implemente orientação a objetos, segurança e padrões.
Estive fazendo uma análise entre os frameworks PHP para uso pessoal e cheguei a 3 candidatos: Yii, Zend Framework e Code Igniter. Dê uma olhada neles, principalmente no Yii, que considero muito promissor.
Bom talvez eu não tenha me expressado corretamente, mas minha ideia não é implementar algo igual ao PHP. Mas sim utilizar ao algo em java, nativo do java sem gambiarras. Se puder indicar uma solução e/ou um exemplo de implementação para isso.