- request의 요소
- getServerName() : 서버 도메인 이름
- getServerPort() : 서버의 포트번호
- getServletPath() : 서블릿 주소
- getRequestURL() : 요청하는 URL, URL이 URI의 상위 정보이다.
- getRequestURI() : 요청하는 URI
- requestDispatcher : 요청 객체(request)로 초기화되며, 요청에 대한 처리를 다시 페이지로 넘길지, 처리 결과를 얻어오는 등 여러 기능을 수행한다.
- 컨트롤러(Servlet)에서 페이지를 전환하는 용도로 사용된다.
- req.getRequestDispatcher(”전환할 페이지 파일주소")로 전달할 페이지 주소를 저장한다.
- rd.forward(req, resp)를 이용하여 요청을 중계한다.
- 중계할 때 기존 req의 정보들이 사라진다.
- form에서 servlet으로 요청 전송하기
- form에 action 속성으로 servlet의 어노테이션 이름을 지정한다.
- form 내부의 input 요소마다 name속성을 붙여 servlet으로 보낼 파라미터로 지정한다.
- servlet에서 req.getParameter로 form에서 전송한 데이터를 확인한다.
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("ex02 도착");
String email = req.getParameter("email");
String pw = req.getParameter("pw");
System.out.println(email + " " + pw);
if ("admin".equals(email) && "admin1234".equals(pw)) {
rd = req.getRequestDispatcher("request/ex03req.jsp");
} else {
rd = req.getRequestDispatcher("request/ex02req.jsp");
}
rd.forward(req, resp);
}
- servlet
- service 메소드 오버라이드
- doGet과 doPost 모두 처리하는 메소드이다.
- scope
- 웹 페이지에서 요청을 얼마나 저장하고 있을지 결정하여 다양한 scope를 사용할 수 있다.
- 기본적인 request는 바로 다음 위치까지만 정보가 전달된다.(jsp → servlet)
- attribute
- 바로 다음 요청에서만 사용할 수 있는 정보를 보낸다.
- setAttribute를 사용하여 servlet이 jsp로 데이터를 보낼 수 있다.
- getAttribute를 사용하여 해당 데이터를 사용할 수 있다.
- request는 정보를 바로 다음으로(jsp → servlet)만 보낼 수 있다. 따라서 servlet에서 다음 jsp로 보내기 위해서는 setAttribute로 전달할 필요가 있다.