Pergunta

Um site Java existente é projetado para ser executado sob "/" no tomcat e há muitas referências específicas aos caminhos absolutos fixos, como "/ dir / dir / Página".

Quer migrar isso para embalagem Java EE, onde o site terá de ser executado sob um contexto de raiz por exemplo, "/ Dir / dir / Página" torna-se "/ my-context-root / dir / dir / página"

Agora, o contexto-raiz pode ser facilmente com ServletRequest.getContextPath (), mas isso ainda significa um monte de código muda para migrar uma grande base de código. A maioria dessas referências estão em literal HTML.

Eu experimentei com o uso de filtros de servlet para fazer regravações no HTML oubound, e que parece funcionar bem. Mas isso não introduzir alguma sobrecarga, e eu não iria vê-lo como uma solução permanente. (Veja EnforceContextRootFilter-1.0-src.zip para a abordagem filtro de servlet).

Há algum melhores abordagens para resolver este problema? Qualquer coisa óbvia que eu estou ausente? Todos os comentários apreciada!

Foi útil?

Solução

Confira uma pergunta href="https://stackoverflow.com/questions/125359/any-clever-ways-of-handling-the-context-in-a-web-app"> relacionado

UrlRewriteFilter

Outra coisa (eu continuo a edição deste post danado). Se você estiver usando JSP (versus estático HTML ou qualquer outra coisa), você também pode criar um arquivo de marcação para substituir as tags HTML comuns com ligações (nomeadamente um, img, forma). Então pode se tornar link . Em seguida, a tag pode fazer a tradução para você.

Esta mudança pode ser feito facilmente "en masse", usando algo como sed.

sed -e 's/<a/<t:a/g' -e 's/<\/a>/<\/t:a>/g' old/x.jsp > new/x.jsp

ações de formulário pode ser um complicado bit de sed, mas você começa a idéia.

Outras dicas

mundo do apache utilizada redirecionamentos (mod_rewrite) para fazer o mesmo.

O mundo Servlet começou a usar filtros

O mundo rubi (ou o RoR) faz mais do mesmo material e que eles chamam de roteamento.

Assim, não há como fugir disto. (A menos que você quiser usar regex inteligente através de fora - que tem sido experimentado e ele funciona muito bem)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top