1. 서블릿Servlet
: 자바를 사용하여 동적인 페이지를 제공하는 웹을 만들기 위한 자바 프로그램
: 클라이언트의 요청(request)를 받아 그 결과(response)를 다시 전송해주도록 함
2. 서블릿 컨테이너
: 서블릿들을 관리해주는 툴로 대표적으로 "톰캣"이 있음
: 클라이언트의 요청시, 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체 생성함
: 서블릿 생명주기(Life Cycle) 관리 [ init() 초기화 - service() 호출마다 - destory() 삭제 ]
3. (주사용)서블릿 메소드
init() : 최초로 서블릿 요청이 들어올 때 가장 먼저 실행 - 초기화 / 1번만 실행됨
service() : 클라이언트로부터 요청이 있을 때마다 실행 - 실제 서블릿이 처리해야하는 작업 / 여러번 실행됨
: 하위 요소로 doGet() / doPost() 존재 --> 둘 대신 service()만 작성했다면 doGet()으로서 service()실행됨
: 클라이언트가 method="get / post" 중 하나로 넘겨줬을 경우 각 메소드 실행됨
-doGet() : 클라이언트가 method="get"으로 정보를 넘겨줬을 경우, 이 메소드에 실행하고자 하는 코드 작성
-doPost() : 클라이언트가 mthod="post"으로 정보를 넘겨줬을 경우, 이 메소드에 실행하고자 하는 코드 작성
doGet() | doPost() |
사용자가 보낸 정보를 URL에 포함시킴 -> 보안취약 | 사용자가 보낸 정보를 URL에 보여주지 않음-> 비교적보안좋음 |
보내는 정보에 길이제한 있음 | 보내는 정보에 길이 제한이 없음 |
method 속성을 기입하지 않으면 기본값으로 get방식 요청 | 인코딩 필요 |
destory() : 서브릿 객체가 메모리에서 삭제될 때 - 제거 / 1번만 실행됨
4. Request : HTML 요청을 통해 전달되는 값을 가져올 때 사용
[메서드]
-getParameter("name") :: 문자열 name과 같은 이름을 가진 인자값을 가져옴 --> String
-getParameterValues("name") :: 문자열 name과 같은 이름을 가진 인자값들을 배열형태로 가져온 --> List
-getMethod() :: 현재 요청이 Get, Post인지 알려줌
-getSession() :: 현제 세션 객체를 가져옴
-setAttribute(name, attr) :: name 키값으로 attr 밸류값을 Request의 attr에 저장
-getAttribute(name) :: Request를 통해 전달된 키값-밸류값의 정보를 가져옴
5. Response : 사용자 요청에 대한 응답처리할 때 사용
[메서드]
-sendRedirect(url) :: 클라이언트 요청을 다른 페이지에 전송
6. RequestDispatcher : 현재 request에 담긴 정보를 저장하고 있다가 그 다음 페이지에도 해당 정보를 볼수 있게 계속 전달하는 기능
[메서드]
-forward(request, response) : 지정한 url의 페이지의 뷰를 보여주며 request, response 객체를 전달(공유)
## 중요 비교 (현재 페이지를 다른 페이지로 전환 시) ##
jsp forward 액션 : 자신에게 전달된 정보까지 해당페이지로 전송 / 웹 애플리케이션이 반드시 포함된 파일이어야 함
Response.sendRedirect : 현재 페이지의 요청을 단순히 다른 URL로 전환하는 역할만 함 / 전달된 정보는 전달하지 않음
request.getRequestDispatcher(url).forwrad(request, response) | response.sendRedirect(url); |
지정한 url의 뷰는 보여지지만, 경로는 url에 보여지지 않음 | 지정한 url의 뷰와 경로에 url 모두 보임 |
전달된 request, response 객체가 공유 | 페이지 이동을 통해 새로운 request, response 객체 생성 |
7. Session : 웹사이트의 여러 페이지에 걸쳐 사용되는 정보를 저장하는 방법
[메서드]
-setAttribute(name, attr) :: name 키값으로 attr 밸류값을 Session의 attr에 저장
-getAttribute(name) :: Session에 키값-밸류값으로 저장된 정보를 가져옴
(서블릿 참고: https://junsday.tistory.com/12 / https://mangkyu.tistory.com/14 / http://www.silverwolf.co.kr/java/9906 )
(Request/Response 참고 : http://blog.naver.com/PostView.nhn?blogId=realcmc&logNo=130036897208 / https://selectwiggle.tistory.com/25 / https://jethihmm.tistory.com/entry/자바-JSP-메소드-설명좀-부탁드립니다 / )
'Upgrade.배우고익히기' 카테고리의 다른 글
테크트리(비전공자-국비6개월) (0) | 2020.08.27 |
---|---|
내가 알고 이해하는 MyBatis (0) | 2020.04.28 |
fail-fast 기법 (0) | 2020.04.07 |
싱글턴Singleton & LazyHolder (0) | 2020.03.08 |
처음부터 개발환경 설정하기 (자바, 오라클SQLD, Tomcat, 이클립스) (0) | 2020.02.24 |