有什么更好的使用转发或重定向?

时间:2012-03-16 03:12:51

标签: jsp java-ee servlets

在我的网页中,我有一个“登录”表单,将值发送到“myServlet”。 “myServlet”连接到DB,之后如果“flag”为肯定,我想用适当的用户数据显示“user.jsp”,否则显示“error.jsp”。使用ServletConfig()..... forward(req,res)或response.redirect()显示此页面的更好方法是什么? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果要保持此重定向对用户透明,则最好使用请求转发。转发请求时,它只会将执行转移到目标jsp文件。但是当您重定向它时,客户端将收到有关此通知,然后它将再次向目标jsp发送新请求。因此,在第二种情况下,发生了性能损失。在这种情况下,请求转发具有额外的优势。

重定向也有优势。当您重定向请求时,客户端将意识到它。因此,用户可以将此网址加入书签,并且将来可以直接访问该网址。如果你处理安全问题,这是一个很好的功能,即如果没有登录就阻止访问等。

您现在要做的事情取决于您和您的要求。

希望有所帮助。

答案 1 :(得分:0)

当我们使用转发机制时,源Servlet程序直接联系到Destination Servlet / Jsp / Web资源程序,在重定向机制中,源servlet使用浏览器窗口进行往返与目标Servlet / jsp / web资源程序联系。

所以转发机制比sendRedirection更快,在sendRedirection中更多的请求url将被更改,例如:www.sun.com(对于java)给我们www.oracle.com。

在应用程序中去转发机制..可能你可以理解这一点。