我需要使用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
}
我应该使用什么方法?
答案 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页面是一种尴尬的设计。