사용자 데이터 전송방식
Servlet이 두 방식 중 하나로 전달받으면 해당하는 매소드를 호출함 html <form>에서 method 속성을 이용해서 방식결정
default : get
get 방식
URL창에 “ ? “ 뒤에 데이터를 입력하는 방법(쿼리스트링)으로 보냄 데이터가 여러 개일 경우 &로 묶어서 보냄 데이터 검색에 많이 사용, 데이터 크기 한계가 있으며, 보안에 취약함
post 방식
HTTP해더의 내용으로 보내는 방식으로 데이터 크기에 제한이 없고, 헤더에 포함되어 보안이 뛰어남
doGet
client에서 데이터를 전송 방식을 get방식으로 전송하게 되면 호출되는 메소드
doPost
client에서 데이터를 전송 방식을 Post방식으로 전송하게 되면 호출되는 메소드
HttpServletRequest (interface)
HTTP Servlets을 위한 요청정보(request information)를 제공 메소드 지정
인터페이스 구현은 컨테이너가 알아서 설정 / 메소드만 이용
상속 : javax.servlet.ServletRequest (interface)
메소드명 | 내용 |
getParameter(String) | client가 보내준 값이 저장된 명칭이 매개 변수와 같은 명칭에 저장된 값을 불러오는 메소드 |
getParameterNames() | client가 보내준 값을 저장한 명칭을 불러 오는 메소드 |
getParameterValues(String) | client가 보내준 값이 여러개일 경우 그 값 을 배열로 불러오는 메소드 |
getParameterMap() | client가 보내준 값 전체를 Map방식으 로 불러오는 메소드 |
setAttribute(String, object) | request객체에 전달하고 싶은 값을 String 이름으로 Object저장하는 메소드 |
getAttribute(String) | 매개변수와 동일한 객체 속성값 불어오는 메소드 |
removeAttribute(String) | request 객체에 저장되어 매개변수와 동일 한 속성값 삭제하는 메소드 |
setCharacterEncoding(String) | 전송받은 reques객체의 값들의 CharaterSet을 설정해주는 메소드 |
getRequestDispatcher(String) | 컨테이너 내에서 request, response객체를 전송하여 처리할 컨포넌트(jsp파일 등)를 불러오는 메소드로 forward() 메소드와 같 이 사용 |
HttpServletResponse (interface)
요청에 대한 처리결과를 작성하기 위해 사용하는 객체
인터페이스 구현은 컨테이너가 알아서 설정 / 메소드만 이용
상속 : javax.servlet.ServletResponse (interface)
메소드명 | 내용 |
setContentType(String) | 응답으로 작성하는 페이지의 MIME type을 정하는 메소드 |
setCharacterEncoding(String) | 응답하는 데이터의 CharacterSet을 지정해주 는 메소드 |
getWriter() | 문자를 페이지에 전송을 위한 Stream을 가 져오는 메소드 |
getOutputStream() | byte단위로 페이지에 전송을 위한 Stream을 가져오는 메소드 |
sendResdirect(String) | client가 매개변수의 페이지를 다시 서버에 요청하게 하는 메소드 |
sendRedirect VS RequestDispatcher
sendRedirect / encodeRedirectURL
client의 브라우저에게 매개변수로 등록한 페이지를 재요청하라고 응답해주는 것(301/302코드 전송) encodeRedirectURL은 매개변수(URL)에 세션ID정보를 추가 재요청 처리 client가 별도로 다른 페이지 요청을 안해도 url주소(페이지)가 변경됨. ** 브라우저가 알아서 서버에 해당 페이지를 요청 / 쿼리스트링으로 별도의 데이터를 전송하지 않으면 요청데이터가 없음
RequestDispatcher() ~ forward()
컨테이너 내에서 처음 요청 받은 페이지가 요청 데이터 (HttpServletRequest, HttpServletResponse)를 다른 페이지에 전송하여 처리를 요청을 하고 자신이 처리한 것처럼 하는 것. url주소(페이지)가 변경되지 않음.
객체별 공유 데이터 설정
공유값은 Map형식으로 저장됨
객체 | 사용 메소드 | 내용 |
ServletContext ServletRequest HttpSession | setAttribute(String,Object) | 공유값을 저장 |
getAttribute(String) | 공유값을 불러옴 | |
getAttributeName() | 공유값 전체를 불러옴 | |
removeAttribute(String) | 공유값 자체를 지움 |
'프로그래밍 > JSP' 카테고리의 다른 글
08.11(Deployment Descriptor(DD) 설정 - 초기값 설정) (0) | 2020.08.11 |
---|---|
08.10(Session & Cookie) (0) | 2020.08.10 |
08.06(서블릿) (0) | 2020.08.06 |
08.05(tomcat관련 참고사항) (0) | 2020.08.05 |
08.04(web server) (0) | 2020.08.04 |