当前位置: 代码迷 >> 综合 >> Servlet 转发和重定向
  详细解决方案

Servlet 转发和重定向

热度:54   发布时间:2023-10-08 17:34:32.0

获得数据Servlet:

package com.example.demo.learn.servlet.forward;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** 获得数据的Servlet*/
@WebServlet("/GetDataServlet")
public class GetDataServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String name = (String) req.getAttribute("name");System.out.println("获取的name是: " + name);}
}

转发 :

package com.example.demo.learn.servlet.forward;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** 转发请求*     跳转有两种方式,一是转发,一个是重定向*/
@WebServlet("/ForwardServlet")
public class ForwardServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setAttribute("name", "song");// 转发时将request对象传过去了req.getRequestDispatcher("/GetDataServlet").forward(req,resp);}
}

重定向: 

package com.example.demo.learn.servlet.forward;import com.sun.deploy.net.HttpResponse;
import org.springframework.http.HttpStatus;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** servlet重定向*    返回302状态,客户端接收后,再次发送请求,原先的request域内容也无法获取*/
@WebServlet("/RedirectServlet")
public class RedirectServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setAttribute("name", "song");// resp.sendRedirect(this.getServletContext().getContextPath() + "/GetDataServlet");// 手动实现重定向resp.setStatus(HttpServletResponse.SC_FOUND);resp.setHeader("Location",this.getServletContext().getContextPath() + "/GetDataServlet");}
}

 

 

  相关解决方案