步骤 2 : 服务端跳转 步骤 3 : 客户端跳转 步骤 4 : 服务端跳转与客户端跳转图示
首先在web目录下准备两个页面 success.html,fail.html
分别用于显示登录成功 或者登录失败 如果登录成功了,就服务端跳转到success.html 如果登录失败了,就客户端跳转到fail.html
<div style="color:green">login success</div>
<div style="color:green">login success</div>
<div style="color:red">login fail</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;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String password = request.getParameter("password");
if ("admin".equals(name) && "123".equals(password)) {
request.getRequestDispatcher("success.html").forward(request, response);
}
}
}
在Servlet中进行客户端跳转的方式:
response.sendRedirect("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;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String password = request.getParameter("password");
if ("admin".equals(name) && "123".equals(password)) {
request.getRequestDispatcher("success.html").forward(request, response);
}
else{
response.sendRedirect("fail.html");
}
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2021-05-22
request.getRequestDispatcher方式好像不行了
1 个答案
橘子西瓜 跳转到问题位置 答案时间:2021-08-13 看仔细点,request.getRequestDispatcher 会显示内容,但是浏览器地址栏不变
response.sendRedirect 浏览器地址栏改变
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2021-02-07
HTTP状态405-此URL不支持HTTP方法GET
1 个答案
文玉 跳转到问题位置 答案时间:2021-05-29 得加上 .html 不能直接输入http://127.0.0.1/login,而应该输入http://127.0.0.1/login.html
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2020-09-07
虽然讲得很简单,但这个教程重在一步步深入
2020-04-16
不清楚的朋友们可以看看这个
2020-03-10
名词应该是转发和重定向吧
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 30 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|