在Servlet协作中开始使用SendRedirect
HTTPServletResponse 的sendRedirect() 方法将响应从一个页面重定向到另一个页面。这个方法允许你将用户内容从一个网页转移到另一个网页。
在这篇文章中,我们将看到SendRedirect() 如何给出同样的功能。
基本上,SendRedirect() 方法允许你将用户的响应重定向到另一个网页上,例如。
String country="Kenya";
if("Kenya".equals(n))
{
response.sendRedirect("htmlPage.html");
}
SendRedirect() 在上面的代码片断中,如果条件得到满足,就可以将客户端浏览器导向htmlPage。
目标
在本文结束时,你应该知道以下内容。
SendRedirect()方法和它的使用。- 认识到
SendRedirect()和forward()方法之间的区别。 - 使用一个例子,学习如何实现
SendRedirect()方法。
前提条件
- 对Java和Servlet的基本了解。
- 对
RequestDispatcher()方法的基本了解。 - 在你的机器上安装代码编辑器,如[Eclipse]或[Netbeans]。在这篇文章中,我们将使用Eclipse IDE。
- 在你的电脑上安装Tomcat服务器。
SendRedirect方法和它的意义
HttpServletResponse 接口的方法之一是SendRedirect() 。它是使用Servlet协作的另一种方式,以响应的形式将客户端请求从一个页面路由到下一个页面。
这个方法的主要目标是将特定请求的响应发送到所需的网页上。
SendRedirect方法和RequestDispatcher转发方法的区别
forward ()RequestDispatcher的方法在服务器端工作,而 的方法在客户端工作。SendRedirect()- Request dispatcher工作在请求对象上,而
SendRedirect()工作在响应对象上。 forward()方法的速度也明显快于SendRedirect()。这是因为,与forward()方法不同,SendRedirect()方法需要两个浏览器请求而不是一个。- 当使用
SendRedirect()方法时,原始的URL总是被改变。然而,当应用forward()方法时,原来的URL保持不变。
使用SendRedirect方法
我们将用下面的页面做一个程序来演示如何使用SendRedirect方法。
一个JSP登录页面
这个页面包括一个登录表格和一段表明输入的信息不正确的文字。
Servlet页面
这个页面将协助我们确定用户的凭证是否有效。如果输入的细节正确,用户的浏览器将被引导到主页。如果不是,将显示一个登录页面,并弹出一条信息,显示用户输入了不正确的信息。
HTML中的主页
如果用户凭证正确,servlet页面中的SendRedirect()方法将把用户浏览器重定向到这个页面。
步骤1:创建SendRedirectDemo项目
打开Eclipse或其他任何Java IDE,选择一个新的动态网页项目,创建一个新的动态网页项目。提供你喜欢的项目名称。在我的例子中,我将把它称为SendRedirectDemo。
第2步:创建登录JSP页面
通过右键单击SendRedirectDemo并选择新建JSP,你可以编码一个JSP页面,如图所示。提供你的JSP类名称。我将称我的为login。
JSP页面的主体如下图所示。
<body>
<form action="SevletPage" method="post">
Enter User name <input type="text" name="userName" required><br>
Enter password <input type="password" name="password" required><br>
<input type="submit" value="login">
</form>
<%
String message=request.getParameter("message");
if("invalid".equals(message))
{
%>
<p>Wrong password or user name, please try again!</p>
<%} %>
</body>
第3步:创建一个SevletPage
通过右击SendRedirectDemo并选择New Servlet,你可以编码一个Servlet页面,如下图所示。提供你的Servlet类的名称。我将把它称为SevletPage。
package sendredirect.demo;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/SevletPage")
public class SevletPage extends HttpServlet
{
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String userName=request.getParameter("userName");
String password=request.getParameter("password");
if("Kenya".equals(userName)&& "12345".equals(password))
{
response.sendRedirect("home.html");
}
else
{
response.sendRedirect("Login.jsp?message=invalid");
}
}
}
HTML主页
要创建这个页面,右击上面的项目,选择新建HTML。最后给你的HTML页面起个名字。在这种情况下,我们将把它命名为home。
该HTML页面的主体如下所示。
<body>
<h1>welcome to the home page</h1>
</body>
结语
最后,我们了解了SendRedirect() 方法及其用途。我们还了解了Java Servlet的SendRedirect() 和forward() 方法之间的区别。现在你应该知道如何实现SendRedirect() 方法来创建交互式网页。