수업/servlet, JSP
req/res3) forwarding, request
케잉
2023. 12. 5. 20:14
- request - 요청이 유지되는 동안에..
: 요청할 때마다 생기고 서로 독립적이다 - 세션보다는 제한적
: 요청마다 한 개씩 갖는다
: forward시에 사용이 가능
- forward
화면 그대로..
url이 바뀌지 않는다 (Tomcat에 의해 요청이 유지된다 )
그래서 서블릿에서 가졌던 데이터셋 원본이 jsp에서까지 유지되어 동적처리 가능하게 해준다
package com.example.demo.ch6;
@WebServlet("/mime/json3.do")
public class JSon3Servlet extends HttpServlet {
Logger logger = LoggerFactory.getLogger(JSon3Servlet.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
logger.info("doGet");
//데이터 생성, 채움
//데이터 유지하려면 서블릿에서 그 데이터셋을 가지고 있어야 넘길 수 있다
List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object>rmap = new HashMap<>();//SELECT deptno, dname, loc FROM dept
rmap.put("deptno", 10);
rmap.put("dname","총무부");
rmap.put("local","서울");
list.add(rmap);
rmap=new HashMap<>();
rmap.put("deptno", 20);
rmap.put("dname","개발부");
rmap.put("local","인천");
list.add(rmap);
rmap=new HashMap<>();
rmap.put("deptno", 30);
rmap.put("dname","운영부");
rmap.put("local","서울");
list.add(rmap);
//생성된 데이터셋을 request의 속성으로 설정
req.setAttribute("list", list);
//RequestDispatcher를 사용하여 json2Test.jsp 페이지로 포워딩
RequestDispatcher view = req.getRequestDispatcher("./json2Test.jsp");
// req와 res 원본이 넘겨져야 한다 그래야 서블릿에서 가진 데이터셋을 화면에서 출력할 수 있음
view.forward(req,res);
}
}
- 서블릿과 뷰가 연결되는 부분