FirstServlet
package ex2;
import java.io.IOException;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
//이동 방식, Foward, Redirect : 주채객체는 - request, response 객체
@WebServlet("/first")
public class FirstServlet extends HttpServlet {
private ServletContext ctx; // null값 선언만
// 생성을 하고
@Override
public void init() throws ServletException {
ctx=getServletContext();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("FirstServlet 실행이 됨");
// 페이지 이동 : redirect
// 실험 1) request일 떄 request A와 B간의 forward 이동방식을 때, scope의 값이 유지된다.*****
req.setAttribute("msg", "테스트!");
ctx.setAttribute("mymsg", "집가고싶다");
//ctx.getAttribute("mymsg"); => second에서 불러서 출력해보기
resp.sendRedirect("second?msg1=test");
}
}
SecoundServlet
package ex2;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/second")
public class SecoundServlet extends HttpServlet {
private ServletContext ctx; // null값 선언만
@Override
public void init() throws ServletException {
ctx = getServletContext();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// req.setAttribute("key","vel"); => req.getAttribute("key")
String msg1 = req.getParameter("msg1");
resp.setContentType("text/html;charset=UTF-8");
System.out.println("여기는 SecondServlet");
ServletContext ctx = getServletContext();
PrintWriter out = resp.getWriter();
out.println("<ul>");
out.println("<li>" + req.getAttribute("msg") + "</li>");
out.println("<li>" + ctx.getAttribute("mymsg") + "</li>");
out.println("<li>" + msg1 + "</li>");
out.println("</ul>");
}
}