Servlet 页面跳转
页面跳转是开发一个 web 应用经常会发生的事情。比如登录成功或是失败后,分别会跳转到不同的页面。
跳转的方式有两种,即服务端跳转和客户端跳转。
新建两个页面 success.html 和 fail.html
首先在 web 目录下新建两个页面 success.html 和 fail.html,分别用于显示登录成功 或者登录失败。
如果登录成功了,就服务端跳转到 success.html,如果登录失败了,就客户端跳转到 fail.html。
<div style="color:green">login success</div>
<div style="color:red">login fail</div>
服务端跳转
在 Servlet 中进行服务端跳转的方式:
request.getRequestDispatcher("success.html").forward(request, response);
服务端跳转可以看到浏览器的地址依然是 “/login” 路径,并不会变成 “/success.html”
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if ("admin".equals(username) && "admin".equals(password)) {
request.getRequestDispatcher("success.html").forward(request, response);
}
}
}
客户端跳转
在 Servlet 中进行客户端跳转的方式:
response.sendRedirect("fail.html");
可以看到,浏览器地址由 “/login” 变成了 “/fail.html”。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if ("admin".equals(username) && "admin".equals(password)) {
request.getRequestDispatcher("success.html").forward(request, response);
}
else{
response.sendRedirect("fail.html");
}
}
}