<<스터디 주제>>
- 형상관리서버(SVN)
- Servlet
<<스터디 내용>>
형상관리서버(SVN)
형상관리서버 : 소스, 버젼 등 변경관리 >> 클라이언트에서는 eclipse를 이용해 작업
repository : 저장소
GIT(중소형 시스템) vs SVN(대형 시스템)
rollback(이전버젼으로 다시 update) 가능 하지만 충돌이 많이 일어날 경우는 제대로 안될 수 도 있음.
때문에 주기적인 백업이 습관화 되어 있어야함.
※ SVN commit 안될 경우 아래의 텍스트를 ecilpse.ini 아래에 붙여넣기 할 것
--illegal-access=warn --add-opens java.base/java.lang=ALL-UNNAMED
override and commit : 올라와있는거 무시하고 내 파일로 업로드
overide and update : 내꺼 무시하고 서버파일로 업데이트
Servlet (Server + let)
웹 클라이언트가 해석 가능한 컨텐츠를 동적 생성하기 위한 WAS에서 실행되는 자바 컴포넌트.
WAS의 Web Contatiner(실행 엔진)에 의해 관리되고 실행된다.
Web Container(Servlet Engine) : ClassLoader를 통해 Servlet Instance에 의해 객체로 만들고 메소드를 통해 응답.
Servlet APIs는 서블릿의 개발과 실행을 가능하게 하는 인터페이스와 클래스들의 집합이다.
가장 중요한 클래스는 HttpServlet 클래스!!!!
- doGet(), doPost()
- HttpServletRequest, HttpServletResponse
- Cookie, HttpSession, ServletContext, ServletConfig, RequestDispatcher
doGet() 또는 doPost() 메소드를 오버라이드 선언
=> 클라이언트 요청에 대한 처리와 처리결과(HTML)를 생성하기 위한 메소드 - WAS(Web Application Server)에 의해 자동 호출
=> doGet() : 클라이언트가 GET 방식으로 요청한 경우 호출되는 메소드
=> doPost() : 클라이언트가 POST 방식으로 요청한 경우 호출되는 메소드 Form태그만 요청시 사용. doGet() or doPost() 메소드 대신 service() 메소드 오버라이드 선언
=> service() : 클라이언트의 모든 요청에 의해 호출되는 메소드
=> doGet() 또는 doPost() 메소드보다 service() 메소드의 호출 우선 순위가 높게 설정 WAS에 의해 메소드가 호출될 때 HttpServletRequest, HttpServletResponse
※ 클라이언트가 get방식으로 요청하는데 doPost를 오버라이드 해두면 에러발생 → 405 : method not allow error 발생
Web 프로그램을 만들기 위해서는 java.ee 라이브러리가 필요함
→ Apache Tomcat에 다 있음!
→ servlet-api.jar가 있음!
웹프로그램 요청(리퀘스트 메세지)
→ WAS를 통해 웹프로그램(Servlet) 실행 해서 결과(HTML)로 넘겨줌)
→ URL은 WAS에게 웹프로그램을 요청할 때 HTML의 A, Form태그 또는 JavaScript의 Location을 통해서 요청 한다.
응답 - 응답코드&결과 (리스폰즈 메세지)
→ 결과(HTML)을 담아서 WAS를 통해 보냄
클라이언트의 요청을 받아서 WAS가 실행해줌 → 웹컨테이너라 함.
WAS는 웹컨테이너의 역할도 하고 WEB Server의 역할도 함.
PHP를 사용하던 분들은 APACHE라는 WEB SERVER를 사용함!!!!!!
HttpServletRequest : 리퀘스트 메세지(요청정보)가 저장된 인스턴스
- 리퀘스트 객체
- 클라이언트의 요청관련 모든 정보가 담겨 있음
HttpServletResponse : 리스폰즈 메세지(응답정보)가 저장된 인스턴스
- 리스폰스 객체
- 클라이언트의 응답관련 모든 정보가 담겨 있음
네트워크 프로그램은 객체를 제공받았음. (직접 만들지 않음) → 매개변수를 이용해 전달, 반환(메소드호출) 등의 방식
Servlet 클래스 파일 작성 순서
- HttpServlet 클래스를 상속받은 자식 클래스 생성
→ HttpServlet 클래스를 상속받은 자식 클래스 객체 직렬화 클래스로 serialVersionUID 필드를 선언하는 것을 권장 - doGet() 또는 doPost() 메소드를 오버라이드 선언
→ 클라이언트 요청에 대한 처리와 처리결과(HTML)를 생성하기 위한 메소드 - WAS(Web Application Server)에 의해 자동 호출
→ WAS에 의해 메소드가 호출될 때 HttpServletRequest, HttpServletResponse 인스턴스를 매개변수에 자동으로 전달되어 저장 - 클라이언트에게 응답할 문서(파일)의 형식(MimeType) 설정(변경)
형식)HttpServletResponse.setContentType(String mimeType[;charset=encoding]) - 클라이언트 요청에 의해 처리 결과(응답)를 생성하기 위한 출력 스트림을 반환받아 저장
형식)HttpServletResponse.getOutputStream() : 원시 데이터(1Byte)를 전달할 수 있는 출력 스트림 스트림(ServletOutputStream)을 반환하는 메소드 - 요청에 처리와 처리 결과를 문서(파일)로 생성 - 응답
→ 출력스트림을 사용하여 처리 결과를 전달하면 문서(파일) 생성 - 서블릿 클래스를 웹프로그램으로 등록하여 실행되도록 설정
→ [web.xml] 파일에서 서블릿 클래스를 서블릿으로 등록하고 URL 주소를 매핑 설정
→ 매핑된 URL 주소로 클라이언트가 서블릿을 요청하면 WAS는 클래스를 객체로 생성하고 요청 처리 메소드를 호출하여 요청에 대한 처리와 응답 결과 제공
'Web Dev' 카테고리의 다른 글
| 60일차 Study (0) | 2022.01.07 |
|---|---|
| 59일차 Study (0) | 2022.01.06 |
| 57일차 Study (0) | 2022.01.04 |
| 주말 개인 Study (0) | 2022.01.03 |
| 56일차 Study (1) | 2021.12.31 |