对请求转发和重定向不了解的可以看这个:
https://blog.csdn.net/qq_40542534/article/details/108519299
重定向实现
通过RedirectSevlet重定向到RedirectSevlet2:
RedirectSevlet
@WebServlet("/RedirectSevlet")
public class RedirectSevlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("dopost");
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet");
//重定向到RedirectSevlet2 request.getContextPath()获取当前项目路径
response.sendRedirect(request.getContextPath()+"/RedirectSevlet2");
}
}
RedirectSevlet2
@WebServlet("/RedirectSevlet2")
public class RedirectSevlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("dopost");
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet");
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write("RedirectSevlet2我是重定向之后的地址".getBytes());
}
}
运行结果
请求转发实现
通过DispatcherSevlet请求转发到DispatcherSevlet2
DispatcherSevlet
@WebServlet("/DispatcherSevlet")
public class DispatcherSevlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("dopost");
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet");
request.setAttribute("username","用户名参数123");
//请求转发 交给DispatcherServlet2处理
request.getRequestDispatcher("DispatcherServlet2").forward(request,response);
}
}
DispatcherSevlet2
@WebServlet("/DispatcherSevlet2")
public class DispatcherSevlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("dopost");
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet");
//1、获取参数
String username = (String) request.getAttribute("username");
//显示到页面内容
String showContent = "请求转发到DispatcherSevlet2 \n获取参数为: username : "+username;
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(showContent.getBytes());
}
}
运行结果