- 하루 정리 -
- SVN 형상 관리 모델 개요
- Servlet 개요
- 오늘 공부 내용 -
형상 관리 서버(SVN)
- 작업하는 파일이 중복되면 안됨 (계속 커뮤니케이션)
- 롤백이 없으므로 백업을 집파일로 저장을 수시로 해야된다.
- 프로젝트 제거하고 다시 체크아웃해야.. (충돌 일어나니까)
- 비밀번호 사용자 이름과 같다. 한명씩 골라서 쓰면 됨 semi-one팀,
- URL : https://itwill.xyz/svn/semi-one
- 아이디 비밀번호로 로그인 접근 가능
- 옆에 숫자는 작업 횟수 리비전 넘버
- 업데이트 커밋 계속 해줘야 함
- 똑같은 파일을 작업하면 안됨,
- 내가 작업한 파일이 서버에 있어야 커밋이 되는데 다른애가 커밋 먼저하면 리비전 넘버가 다르기 때문에 커밋 자체가 안된다.
- 간단히 1개 충돌날때 : 싱크로나이즈 퍼스펙티브에서 우클릭하고 오버라이드 커밋 혹은 내거 무시하고 오버라이드 업데이트 (무조건 백업 ) -> 메이크 머지라는 방법도 있음
Servlet (server + let)
- 서블릿(웹에서 실행되는 프로그램
--- 서블릿 클래스 작성 방법 ---
1. HttpServlet 클래스를 상속받은 자식클래스 생성 - 서블릿 클래스
public class HelloServlet extends HttpServlet
2. doGet() 또는 doPost() 메소드를 오버라이드 선언
=> 클라이언트 요청에 대한 처리와 처리결과(HTML)를 생성하기 위한 메소드 - WAS(Web Application Server)에 의해 자동 호출
=> doGet() : 클라이언트가 GET 방식으로 요청한 경우 호출되는 메소드
=> doPost() : 클라이언트가 POST 방식으로 요청한 경우 호출되는 메소드
> doGet() 또는 doPost() 메소드 대신 service() 메소드를 오버라이드하는 경우도 있음.
=> service() : 클라이언트의 모든 요청에 의해 호출되는 메소드
=> doGet() 또는 doPost() 메소드보다 service() 메소드의 호출 우선 순위가 높게 설정
WAS에 의해 메소드가 호출될 때 HttpServletRequest 인스턴스와 HttpServletResponse 인스턴스가
매개변수에 자동으로 전달되어 저장
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
3. 클라이언트에게 응답할 문서(파일)의 형식(MimeType) 설정(변경)
형식)HttpServletResponse.setContentType(String mimeType[;charset=encoding])
=> 문서 형식으로 응답할 경우 문서의 캐릭터셋(CharacterSet : 문자형식 - 인코딩) 설정
=> 기본 응답 문서 형식 : text/html, 캐릭터셋 : ISO-8859-1(서유럽어)
response.setContentType("text/html;charset=utf-8");
// HTML 문서를 UTF-8로 설정
4.클라이언트 요청에 의해 처리 결과(응답)를 생성하기 위한 출력스트림을 반환받아 저장
형식)HttpServletResponse.getOutputStram() : 원시 데이타(1Byte)를 전달할 수 있는 출력
스트림(ServeltOutputStream)을 반환하는 메소드 => 그림, 음향, 영상 파일등을 클라이언트에게 응답하기 위한 결과로 만들기 위한 출력스트림
형식)HttpServletResponse.getWriter() : 인코딩 처리된 문자 데이타(2Byte)를 전달할 수 있는
출력스트림(PrintWriter)을 반환하는 메소드 => PlanText, HTML, XML 파일(문서)등을 클라이언트에게 응답하기 위한 결과로 만들기 위한 출력스트림
PrintWriter out=response.getWriter();
// 문자 데이타 출력 스트림을 PrintWriter타입으로 선언 된 out에 넣어 사용 가능
5. 요청에 대한 처리와 처리 결과를 문서(파일)로 생성 - 응답
=> 출력스트림을 사용하여 처리 결과를 전달하면 문서(파일) 생성
out.println("<!DOCTYPE html>");//출력스트림으로 문자열을 전달하는 메소드 호출
out.println("<html>");
out.println("<head>");
out.println("<meta charset='utf-8'>");
out.println("<title>Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>서블릿(Servlet)</h1>");
out.println("<hr>");
out.println("<p>Hello, Servlet!!!</p>");
out.println("</body>");
out.println("</html>");
6. 서블릿 클래스를 웹프로그램으로 등록하여 실행되도록 설정
=> [web.xml] 파일에서 서블릿 클래스를 서블릿으로 등록하고 URL 주소를 매핑 설정
=> 클라이언트가 매핑된 URL 주소로 서블릿을 요청하여 WAS는 서블릿 클래스를 객체로 생성하고 요청 처리 메소드를 호출하여 요청에 대한 처리와 응답 결과 제공
- 세미 팀플 -
- 7시 디스코드 회의 사이트 변복 작업 (목요일까지 깔끔한 사이트로 크롤링 후 임포트까지)
- 버전 인코딩 방식 : UTF-8 방식으로 통일!
- SVN 커밋 충돌 일으키기 (2, 3번째 건너뛰고 커밋할 시 충돌 해결 방법 질문)
- 스터디 내용 및 결과 -
- web.xml 파일에서 <servlet-class> 엘리먼트의 텍스트는 패키지가 포함된 서블릿 클래스명!
- => kr, com, co 는 규칙!!
- URL 매핑이 필요한 이유 : 서블릿을 요청하기 위해 주소의 패턴(식별자)를 설정해줘야 함
'레거시' 카테고리의 다른 글
2022.1.6의 기록 (0) | 2022.01.07 |
---|---|
2021.1.5 (0) | 2022.01.05 |
2022.1.3의 기록 (0) | 2022.01.03 |
2022.1.2의 기록 (25살의 첫 일요일) (1) | 2022.01.02 |
2021.12.31의 기록 (0) | 2021.12.31 |