Tive a ver no mvnForum, ele usa um tipo de sistema que pessoalmente não conhecia, nem sei como o chamar mas é bastante interessante… basicamente funciona da seguinte maneira… as URLs ficam todas do estilo:
Estao a perceber a ideia? Na teoria é facil de perceber como funciona, mas alguem me pode dar um exemplo simples de como fazer uma coisa destas em java?
Morcego, nesse caso o controle de requisicao e redirecionamento ficou dentro de um controller/dispatcher, com a desvantagem de ficar hardcodeado no binario. Se alguma hora precisar mudar, vai ser preciso recompilar a aplicacao.
Deixando no web.xml ( como mostrado pelo urubatan/bani), voce tem mais flexiblidade.
Sim, mas não custar recompilar isso… alem disso para o que eu quero fazer vai ter mesmo que ficar assim… ja agora… por acaso algum de vcs alguma vez deu uma vista de olhos no codigo do mvnforum?
Cara, o RecJUG teve a infeliz idéia de colocar o mvnForum, é um dos aplicativos mais mal escritos que ja vi, principalmente quando vc deseja traduzir, tem texto que esta hardcode na classe e vc tem que ficar recompilando, por isso vamos migrar logo epara outro fórum. E morcego da uma olhada no pattern Front Controller!
Deixando no web.xml ( como mostrado pelo urubatan/bani), voce tem mais flexiblidade.
Rafael[/quote]
Não entendi muito bem uma coisa: parece-me que o “XXXX” que ele usa na url funciona como uma especie de action para indicar o que o servlet controller dele vai fazer. Criando esses mappings pelo web.xml como ele poderia indicar que quando fosse “/profile” faça isso? Quando for “/index” faça aquilo? Isso supondo que no web.xml tivesse algo assim:
Acho que é exactamente isto que eu queria usar… no caso do mvnforum ele tem apenas um unico servlet que vai processar os eventos todos… tudo o resto sao classes java e JSPs… eu estou habituado a usar servlets + velocity por isso estou um bocado confuso de como usar JSPs com simples classes de java… vou tentar perceber isto… mas ainda gostava de saber porque é que o Richardson disse q o mvnForum era uma má aplicação… quanto ao que o cancao disse acho que não se pode fazer dois mappings para o mesmo servlet… acho…
Dois mappings para o mesmo servlet não tem problema. O que causaria erro são dois url-pattern iguais para servlets diferentes, pois aí o conteiner não saberia para qual servlet mapear.
Mas nesse caso de servlet-mapping você normalmente não irá mapear o servlet para o front controller, e sim já diretamente para o servlet responsável por responder a requisição, por isso seriam servlet-name e url-pattern diferentes.
Eu sei que esse post é velho, porém estou implementado um front controller, sei que existe varios frameworks que o fazem, porém quero implementar para estudar.
Enfim, não achei a solução de request.getPathInfo(), para saber qual página ou jsp redirecionar ao invés de usar um xml, o que vcs acham?