내장 객체 : 생성자를 통해서 생성하지 않아도, JSP페이지가 기본적으로 참조할 수 있는 객체
입출력 : request, response, out
서블릿 : page, config
외부환경 정보 제공 : session, application, pageContext
예외 : Exception
request : 클라이언트가 웹 서버에 전달하는 요청을 객체화한 형태
보내는 사람 : 클라이언트 (ip)
받는 사람 : 웹 서버(ip)
요청 방식 : 내가 문서를 받고 싶다면 get, 내가 어떤 내용을 담아서 보낸다면 post
요청 내용 : 받고 싶은 문서의 이름이나, 클라이언트가 보내는 내용을 받기 원하는 서버의 페이지 이름 (자원의 위치)
URL : Uniform Resource Locator (웹 브라우저의 주소창을 통해서 전달)
http://프로토콜, 서버와 클라이언트가 통신하는 규칙과 약속
search.naver.com서버 도메인(IP), 어떤 서버에게 요청을 전달하는가 (받는 사람)
search.naver문서, 페이지의 이름 (자원의 이름)
?query=이지은파라미터, ?변수이름1=변수값1&변수이름2=변수값...
클라이언트가 서버에게 전달하고자 하는 값 (내가 원하는 문서를 특정하기 위해서)
http://도서관.com/대여.html?책이름=드래곤볼&책번호=3
도서관에 가서 대여 창구에서 "책 이름은 드래곤볼이구요, 번호는 3권입니다. 이 책을 저에게 주세요(GET)"
<h4>보내는 사람 : <%=request.getRemoteAddr() %></h4>
<h4>받는 사람 : <%=request.getLocalAddr() %></h4>
<h4>요청 방식 : <%=request.getMethod() %></h4>
<h4>요청 내용 : <%=request.getRequestURL() %></h4>
<h4>자원 식별자 : <%=request.getRequestURI() %></h4>
<%-- post 방식으로 전달받는 데이터의 인코딩을 지정한다(rquest.getParameter() 호출전) --%>
<%-- 봉투에 담았더니 글자가 깨졌다고 생각 --%>
<% request.setCharacterEncoding("UTF-8"); %>
[ autofocus는 페이지에 하나만]
[form 태그의 submit]
<p><input type="submit"></p>
<%-- 시작태그 끝에 / 넣어서 마무리 태그를 생략할 수 있다 XML형식 --%>
<jsp:useBean id="dto" class="day02.Quiz01DTO"/>
<%-- request는 String 형식이지만 setProperty를 이용하면 자동파싱이 된다 --%>
-- > 사용자 입력이라서 request는 String 형식이다
<%-- parseInt를 자동으로 해준다 --%>
<jsp:setProperty property="*" name="dto"/>
public class DTO{
// private 멤버 필드
// public getter/setter
// 작성하지 않은 경우 기본 생성자
<jsp:useBean id="dto" class="day02.Quiz01DTO"/>
<jsp:setProperty property="*" name="dto"/>
// input태그의 name속성을 기준으로 파라미터와 getter/setter를 맵핑한다
// request.getParameter()는 String이지만, <jsp:setProperty/> 는 primitive에 대한 파싱도 자동 지원한다
// 다수의 파라미터를 캡슐화해서 하나의 객체로 취급하기 때문에, 다른 페이지나 DB에 전달하기 용이하다