本文共 3583 字,大约阅读时间需要 11 分钟。
1. 超链接
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>页面a 这是绝对地址超链接 这是以"/"开头的相对地址超链接 这是不以"/"开头的相对地址超链接
2. 表单
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>页面b
3.重定向
package cn.test.path;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @author Guozhen_Zhao * 创建时间:2018年3月17日 上午10:12:21 * 备注:重定向有三种路径书写方式 : * 1. 绝对路径 * 2. 以"/"开头的相对路径 * 3. 不以"/"开头的相对路径 */@WebServlet("/RedirectServlet")public class RedirectServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect("http://localhost:8080/testPath/jsp/b.jsp"); /* * 2.以"/"开头的相对路径 * 此时,/代表整个web工程的路径,即http://localhost:8080/ */ // response.sendRedirect("/testPath/jsp/b.jsp"); /* * 3.不以"/"开头的相对路径 * 此时是相对于当前资源的相对路径 * 当前资源路径为:http://localhost:8080/testPath/RedirectServlet * 即表示:RedirectServlet在路径http://localhost:8080/testPath之下 * 而b.jsp在http://localhost:8080/testPath/jsp/b.jsp * 所以最终地址写为:jsp/b.jsp */ // response.sendRedirect("jsp/b.jsp"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
请求转发
package cn.test.path;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @author Guozhen_Zhao * 创建时间:2018年3月17日 上午10:09:59 * 备注: 服务器端的路径不能是绝对路径,只能是相对路径,也分为以/开头和不以/开头两种 * 1.以"/"开头的相对路径 * 2.不以"/"开头的相对路径 */@WebServlet("/DispatcherServlet")public class DispatcherServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * 1.以"/"开头的相对路径 * 此时,/代表当前web项目,即:http://localhost:8080/javaee */ // request.getRequestDispatcher("/jsp/b.jsp").forward(request, response); /* * 2.不以"/"开头的相对路径 * 相对于当前资源的相对路径 * 此时,当前资源的路径为:http://localhost:8080/javaee/DispatcherServlet * 所以要转发去的资源的路径以:http://localhost:8080/javaee开头 */ request.getRequestDispatcher("jsp/b.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
转载于:https://blog.51cto.com/13416247/2087844