Servle与JSP之间的相互跳转

1、跳转到Jsp

/show.jsp表示WebRoot下的jsp文件

request.getRequestDispatcher("/show.jsp").forward(request,
                    response);

跳转到servlet(名为check的servlet)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
  request.getRequestDispatcher("/servlet/check").forward(request, response);
%> 

 在forward之前尽量不要使用out.println()输出内容到客户端,会抛出异常。

 跳转到Action

<%
 response.sendRedirect("CoreAction.action");
 %>

2、getRequestDispatcher()与sendRedirect()的区别

 

1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ; 
response.sendRedirect()是重新定向,前后页面不是一个request。

request.getRequestDispather();返回的是一个RequestDispatcher对象。

2.RequestDispatcher.forward()是在服务器端运行; 
HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成. 
所以RequestDispatcher.forward()对于浏览器来说是“透明的”; 
而HttpServletResponse.sendRedirect()则不是。

Done!

原文地址:https://www.cnblogs.com/xingyyy/p/3485395.html