一. 转发
动作发生在服务器(Tomcat),地址栏不会发生改变,只需要发起一次请求。
index.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head> <body> <% request.getRequestDispatcher("logo.jsp") .forward(request,response); %> </body> </html>
以上面的代码为例,我们访问index.jsp,页面显示的是logo.jsp的内容,但是地址栏还是index.jsp
二. 重定向
动作发生在浏览器,地址栏会发生改变,需要发起两次请求。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head> <body> <% response.sendRedirect("logo.jsp"); %> </body> </html>
以上面的代码为例,我们访问index.jsp,页面显示的是logo.jsp的内容,而且地址栏也变成了logo.jsp
三. 绝对路径
为了防止目录不同可能导致404的问题,我们建议所有静态文件的导入,都采用绝对路径。可以使用request.getContextPath方法来获取站点的根路径。
<img src="<%=request.getContextPath()%>/static/1.png" alt="图片">
注意:转发时,服务器会自动在Web根目录下进行跳转,不需要加request.getContextPath,但是重定向的时候,需要加request.getContextPath
请登录之后再进行评论