JavaServer Face(JSF)内置了HttpServletResponse,所以不可以直接在JSF的Bean内使用sendRedirect之类的重定向函数。花了N多的时间查资料,发现误导性的文章比较多,为了有同样需要的人少浪费点时间在这身上,这里把测试通过的方法记录一下:
●导入Servlet包
import javax.servlet.http.*;
●加入下面的取得HttpServletResponse的函数:
protected HttpServletResponse getResponse() ...{
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext
.getExternalContext().getResponse();
return response;
}
●在需要重定向的地方加入下面代码
response.sendRedirect("sample.jsp");
facesContext.responseComplete(); // 这一句很重要
return null;
注:最后的return看自己的需要返回
分享到:
相关推荐
在Java Web应用中,可以通过`HttpServletResponse`接口的`sendRedirect()`方法来实现重定向。具体实现步骤如下: 1. **获取当前的FacesContext**: ```java FacesContext facesContext = FacesContext....
- 请求转发(RequestDispatcher.forward())和重定向(Response.sendRedirect())的区别和应用。 7. **异常处理**: - 使用errorPage、page指令的errorPage属性,以及try-catch-finally结构来处理JSP中的异常。 ...
5. **请求转发与重定向**:Servlet使用`request.getRequestDispatcher()`进行请求转发,这在同一个服务器内进行,而`response.sendRedirect()`则是向浏览器发送一个重定向指令,让浏览器发起新的请求。在购物系统中...
或者使用response.sendRedirect进行外部跳转。 2. **数据共享**:Servlet可以在session或application范围中存储数据,供JSP页面访问。JSP也可以通过隐式对象request、session获取这些数据。 3. **模型2架构**:在...
在JSP中,可以使用`jsp:forward`标签进行内部跳转,或者使用`response.sendRedirect()`进行外部重定向。正确使用这两种方式有助于避免URL泄露和重复提交问题。 ### 7. 数据分页 为了提高用户体验,大型论坛通常会对...
在JSP中,可以使用`response.sendRedirect()`或`request.getRequestDispatcher().forward(request, response)`进行页面跳转。前者是客户端重定向,后者是服务器端转发。 **8. 错误处理** 合理的错误处理机制对于...
`response.sendRedirect()`是客户端重定向,URL可见变化,适用于外部资源跳转。 8. **Struts配置文件**:定义Action映射、结果转发等,用于控制请求流向和业务逻辑处理。 9. **HQL与SQL**:HQL是Hibernate Query ...
10. **JSP重定向方法**:两种重定向方法是`response.sendRedirect()`和`request.getRequestDispatcher()`.前者是服务器端重定向,后者是请求转发。前者改变URL地址,后者不改变。 11. **EJB的优势和特点**:EJB提供...
- **重定向(redirect)**:使用`response.sendRedirect("...");`。 - 请求域数据丢失。 - 地址栏变化。 #### 十二、Servlet的生命周期 - **初始化**:`init()`方法,由容器调用,创建Servlet实例后立即调用。 -...
10. **JSP重定向方法**:`response.sendRedirect()`在浏览器端工作,可以重定向到不同主机,可以传递参数,但不能转发内部资源。`jsp:forward`则在服务器端工作,只能转发内部资源。 11. **EJB的优势和特点**:EJB...
6. **转发与重定向**:学习RequestDispatcher的forward()和sendRedirect()方法,掌握它们在页面跳转中的区别。 7. **JSP内置对象**:如request、response、session、application等,理解它们的作用和用法。 8. **...
Servlet可以通过请求转发(RequestDispatcher的`forward()`方法)或响应重定向(HttpServletResponse的`sendRedirect()`方法)将控制权交给JSP,反之,JSP也可以通过`<jsp:include>`或`<jsp:forward>`动作调用...