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;
// 이동방식= Forward, Redirect : 주체객체는 - request, response객체
@WebServlet("/first")
public class FirstServlet extends HttpServlet{
private ServletContext ctx; // null값 선언
//생성을 하고
@Override
public void init() throws ServletException {
System.out.println("init() 호출");
ctx = getServletContext();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("실행이 됨");
// 페이지 이동 : redirect
// 실험 1 ) request일 때 request A와 B간의 forward이동방식일 때 scope의 값이 유지된다. ★★★
req.setAttribute("msg", "테스형!");
ctx.setAttribute("mymsg", "HI");
// ctx.getAttribute("mymsg"); => second에서 불러서 출력해보기
resp.sendRedirect("second");
}
}
-------------------------------------------------------------------------------------------------------------------------
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 SecondServlet extends HttpServlet {
private ServletContext ctx;
@Override
public void init() throws ServletException {
ctx = getServletContext();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// req.setAttribute("key","val"); => req.getArrtribute("key");
String msg1 = req.getParameter("msg1");
resp.setContentType("text/html;charset=UTF-8");
System.out.println("여기는 SecondServlet");
PrintWriter out = resp.getWriter();
out.println("<ul>");
out.println("<li>" + req.getAttribute("msg") + "</li>");
out.println("<li>" + ctx.getAttribute("mymsg") + "</li>");
out.println("<ul>");
}
}