Maillot de redirection d'URL
À l'intérieur d'un Maillot de REPOS méthode que je voudrais transmettre à un autre site web. Comment puis-je y parvenir?
@Path("/")
public class News {
@GET
@Produces(MediaType.TEXT_HTML)
@Path("go/{news_id}")
public String getForwardNews(
@PathParam("news_id") String id) throws Exception {
//how can I make here a forward to "http://somesite.com/news/id" (not redirect)?
return "";
}
}
EDIT:
Je me fais de la No thread local value in scope for proxy of class $Proxy78
d'erreur lorsque vous essayez de faire quelque chose comme ceci:
@Context
HttpServletRequest request;
@Context
HttpServletResponse response;
@Context
ServletContext context;
...
RequestDispatcher dispatcher = context.getRequestDispatcher("url");
dispatcher.forward(request, response);
OriginalL'auteur Dorin Grecu | 2011-11-23
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé le code ci-dessus dans mon application, et cela fonctionne.
stackoverflow.com/a/25332038/419348
seeOther
est une sorte de différent avectemporaryRedirect
. On est301
, et on est302
.Ce n'est pas de redirection vers l'avant.
OriginalL'auteur Ajai S
Essayer cela, il a travaillé pour moi:
OriginalL'auteur user2167877
Je ne peux pas le tester dès maintenant. Mais pourquoi pas...
L'étape 1. Obtenez l'accès à HttpServletResponse. Pour le faire déclarer dans votre service, quelque chose comme:
L'étape 2. faire rediriger
MODIFIER
Bien, à l'appel de la méthode que vous devez obtenir à ServletContext. C'est peut-être résolu de la même manière comme réponse:
Maintenant
_context.forward
est disponibleajoutez simplement comment obtenir du contexte
Veuillez voir mon édité question, il ne fonctionne pas tout de suite.
ServletContext ne dispose pas d'une méthode.
assurez-vous de droite, j'ai omettre certaines choses. Vous devez utiliser
_context.getRequestDispatcher(path)#forward
OriginalL'auteur Dewfy