使用Response对象调度Web服务调用方

时间:2014-08-27 09:58:23

标签: java java-ee servlets

我需要使用Response对象将Web服务调用者分派到新页面:

@Path("controller")
@Stateless
public class ControllerEJB {
HttpSession session;
User user;
String url;

@POST
public Response registerUser(
        @QueryParam("fornamn") String fornamn, 
        @QueryParam("efternamn") String efternamn,
        @QueryParam("epost") String epost,
        @QueryParam("epost2") String epost2,
        @QueryParam("password") String password,
        @Context HttpServletRequest request
){
    session = request.getSession();
    if(user == null)
        user = new User();
    user.setEmail(epost);
    user.setPassword(password);
    user.setFornamn(fornamn);
    user.setEfternamn(efternamn);
    session.setAttribute("user", user);
    return Response.status(200)...... // e.g. url is a .jsp
}

我应该使用什么方法?

1 个答案:

答案 0 :(得分:0)

JAX-RS旨在构建REST服务。 REST服务应返回数据,通常使用XML或JSON进行序列化。 我不建议将JAX-RS请求转发到视图层,例如JSP或JSF。

那就是说,我不确定你能否以相同的方式转发RequestDispatcher.forward(req,res)。 但您可以使用以下命令发送重定向:

return Response.seeOther(new URI("/path/to/your/resource")).build();

但正如文档所述,这应该用于POST / redirect / GET模式:您可以使用GET方法将POST请求重定向到另一个REST资源。

但是,再次将REST资源重定向到JSP页面是一种尴尬的设计。