获得数据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 {
@Override
protected 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 {
@Override
protected 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 {
@Override
protected 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");
}
}