问题描述
- 求问,我在servlet中首先转发到一个jsp页面进行输出,然后怎么才能重定向跳转到另一个jsp呢?
-
User user = (User) request.getSession().getAttribute("user");
if(user==null){
request.setAttribute("message", "请先登陆!!,3秒后自动跳转!");
request.getRequestDispatcher("/message.jsp").forward(request, response);
try {
Thread.sleep(3000);response.sendRedirect("/client/register.jsp"); } catch (InterruptedException e) { throw new RuntimeException(e); } 之后就抛出异常了,如下: java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed
解决方案
这样写当然不行,因为你已经forword,请求转走了,forword一下代码都不会执行的。如果要实现楼主这种问题,应该可以在forword后Jsp页面内嵌java脚本,写response.sendRedirect("/client/register.jsp");但这样可能得到结果会是当前JSP页面一闪而过。。所以建议楼主可以采用Refrese方式,及
在servlet中设置响应头 setHandler,来达到显示信息,3秒后跳转。。
解决方案三:
这样写当然不行,因为你已经forword,请求转走了,forword一下代码都不会执行的。如果要实现楼主这种问题,应该可以在forword后Jsp页面内嵌java脚本,写response.sendRedirect("/client/register.jsp");但这样可能得到结果会是当前JSP页面一闪而过。。所以建议楼主可以采用Refrese方式,及
在servlet中设置响应头 setHandler,来达到显示信息,3秒后跳转。。
时间: 2024-11-03 11:56:14