我需要使用Response object将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
}我应该使用什么方法?
发布于 2014-08-27 18:11:23
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页面也是一种笨拙的设计。
https://stackoverflow.com/questions/25524121
复制相似问题