혜니니의 공부방

교내 자바특강 day5 본문

공부 기록/자바 프로그래밍 기초

교내 자바특강 day5

니니혜 2021. 1. 15. 21:21

day5

 

몸이 아파서 day3,4 는 기록을 미뤄두고 day5인 오늘차를 먼저 써야겠다. 일단 ... 오늘은 금요일이라 너무 행복하지만 복습할 것들이 많아서 휴.. 오늘 진도는 collection,자료구조 남은 것과 JSP를 나갔다! 근데 collection framework가 아직 좀 이해가 안가서 따로 복습을 해야할 것 같다. 그리고 다음주 2-3일 동안 진행될 약간의 미니 프로젝트도 기획서를 작성했다. 

 개요 읽어보니 엉망이네 대충 쓴건데 한번 더 읽어볼걸... ㅎㅎ 하여튼 이렇게 대강 작성하고... 주말에 각자 Github 숙지하고 DB설계 해오기로했다... SQL쿼리 작성은 금방할테니까  커뮤니티 게시판, 쇼핑몰 고민하다가 그냥 강의평가했다.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Today's Index

- 아파치 톰캣+ LifeCycle

- JSP에 대한 기본적인 설명

- Encoding ("UTF-8")

- Redirect

- Session

- Servlet에 대한 간단 개념 +Filter/Listener(생략파트 따로 공부해서 적을 것)

-localhost / Port 개념

-Scope의 개념

-Application (Session과의 차이점 적기)

-Thread의 개념

 

 

-FrontEnd (WAS: 웹 애플리케이션 서버 ex) 아파치 톰캣, 제우스, 웹로직)

: html5/css3/JS/jQuery/React/Angular.js/Vue.js 

: 브라우저가 해석하는 부분

 

-BackEnd

: Java기반 jsp servlet/asp/php/DB- Oracle, MS-SQL/MySQL/mongodb 등 브라우저가 해석할 수 없는 부분 ---> WAS가 필요하다.

 

오늘은 Apache Tomcat도 설치했다. 제일 최신버전이 아닌 안정성을 위해 Tomcat9 설치했다. Core :64bit-Windows.zip 압축파일 버전으로 선택했다.

 

압축과 install버전이 있는데   압축은 개발할 때 사용하고 배포할때 install버전을 사용한다고 .. 그래서 압축파일을 풀어서 사용하는 것으로 했다. 

 

 

 

 

 

 

 

 

 

아파치 톰캣 LifeCycle (동작원리) 

 

- 다른 프로그램과 포트번호가 같으면 충돌이 일어나니까 바꿔줄것 ( 오라클이 PC내에 설치되어 있을 경우, 포트번호가 같아 충돌이 나니 8080 > 8000으로 바꿔줌)

 

Port(포트)란 !?

 

일반적으로 포트 번호 잘 알려진 포트(well-known port), 등록된 포트(registered port), 동적 포트(dynamic port) 세 가지로 나눌 수 있다. 잘 알려진 포트(well-known port)는 특정한 쓰임새를 위해서 IANA(Internet Assigned Numbers Authority)에서 할당한 TCP 및 UDP 포트 번호의 일부

 

 localhost?  url 주소 : http://localhost:(Portnumber)/contextPath/Filename.jsp , localhost = IP로 대체 가능

나는 localhost:8000을 사용했다.

 

port 넘버 참고 블로그 ⬇

vaert.tistory.com/173


 

 

코딩방식은 보통 2가지로 나뉘는데

1) Model1 방식

 :사용자의 요청을 모두 JSP가 다 처리하는 것, jsp는 자바,서비스 클래스를 사용하여 웹 브라우저가 요청한 작업을 모두 처리하고 그 결과를 출력

2) Model2 방식 > MVC구조

: 사용자 요청을 Servlet이 받고 Servlet이 View와 Model 보낼 곳을 정하여 전송, View는 사용자에게 보여주는 역할만 담당하고 실질적인 기능은 Model에서 담당한다. html과 java 소스를 분리했기 때문에 개발을 확장시키기도 쉽고, 유지보수가 쉽다. // 대부분 MVC구조로 진행한다.

 

JSP

html코드에 java코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다.

JSP가 실행되면 자바 Servlet으로 변환되어 WAS에서 동작되면서 필요한 기능을 수행하고 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다. 

DB연결 기능이 있으며 Form으로 넘어오는 데이터를 받아 처리능력이 있다.

 

JSP 태그 = 스크립팅 요소 

 

1. <% ~~~ %> : 스크립트

2. <%! 전역변수 선언 및 메소드 선언 %>

3. <%= 지역변수 %> 출력문 

 

include 지시자 => 메인 페이지에 다른 페이지를 포함시키는 것, 소스 전체가 메인 페이지에 포함되는 것이다. 서블릿문서가 하나 생성되는데 include지시자를 사용하면 하나의 페이지에서 소스를 바꾸면 다른페이지도 전부 저장되기때문에 편리하다.

 

한글 처리가 순조롭지 않아 Content Type을 꼭 설정해줘야한다.

아파치의 경우 8857Encoding 기본이므로  "UTF-8"로 변경해줘야한디.

 

 

오른쪽이 println이고 왼쪽이 print 이다.

화면에서 보여지는건 동일하지만 마우스 우클릭- 페이지소스보기를 하면 이렇게 차이가 난다. 육안으로 차이는 없으나 소스를 보면 br 태그가 먹혀있다는 것!    -- > 근데 이 부분에 대해서는 좀 더 추가적으로 찾아보고 추가해야할 것 같다.


 

 

내장 객체

 

1. Request 요청

2. Response 응답

: forward방식과 redirect 방식이 있다.

 Redirect 는 페이지가 늘어나고 늘어나서 뒤로가기 버튼이 나온다.
 forward방식의 경우는 포워드를 쓴 페이지가 다시 로딩되는것으로 페이지가 늘어나지 않는다. 
전 페이지로 가지 않음. 따라서 전 페이지의 요청(request)를 유지시킬 수 있다. 이렇게 동작하는게 forward 방식이다. 
결국 정보 유지때문에 forward를 많이 쓰지만 redirect를 사용하기도 함.

 

클라이언트 상태 코드 별 상황 ⬇⬇⬇⬇⬇

: 상태코드 200 : 정상 (성공)
          400 : request요청이 잘못된경우 (bad request)
          403 : 인증은 했으나 권한이 부족할때 발생코드
          404 : FileNotFoundException 잘못된 경로 인경우
          405 : 요청방식 잘못된 경우(get방식, post방식 구분못햇을대)
          500 : 소스코드 오류.

 


Session

: 클라이언트 정보를 서버측에 저장할 때 사용한다. 저장된 정보는 브라우저 창이 시작해서 종료 할 때까지 저장 정보가 유지된다. 예시 ) 일반적인 로그인 ->로그아웃

접속된 각각의 클아이언트마다 생성되며

기본적인 세션 시간은 30분(1800초)이다.

 

보안이 유력하면 세션시간을 줄여야겠지만 쇼핑몰같은건 훨씬 길어도될 것이다.
 *session.setAttribute(String name, Object value)  :세션의 정보를 저장하는 메소드

 

String id= session.getId();

=> 세션이 생성되면 자동으로 만들어지는 세션 아이디이다. 💥완전중요💥💥 서버는 세션 아이디를 발행해서 쿠키쪽에 저장을 함.💥💥

 

 

서블릿(servlet):

1) 서버에서 실행되는 자바 애플리케이션. 

2) 대개 웹 서버 환경 안에서 실행되는 자바 Applet을 의미. 

3) 클라이언트의 입력에 응답하여 주로 DB에 접근하는 웹 서버상에서 구동되는 작은 프로그램. 

 

Field and Listener  추가 공부, 찾아서 적어넣을 것.

 

 

 

Scope 개념


 http요청 웹은 요청이 완료되면 모든 정보연결이 stateless된다.
 즉, 연결이 끊힘으로써 정보는 모두 사라진다. - 웹의 취약점.

 : 매 페이지를 이동할때마다 정보를 유지하기 위한 저장방법이 
   필요하고 그래서, scope의 개념의 중요하다.

  클라이언트쪽에 저장하는 기술 : Cookie, WebStorage 
                                 단점: 삭제가능, 보안취약

 

 

Application

: 특정 정보를 서버가 시작해서 종료될 때까지 유지되도록 한다. 프로젝트당 무조건 1개만 있다.

서버에 대한 정보를 추출하고 웹 어플리케이션 단위로 상태정보를 저장한다.

 

 

Application
: 모든 유저가 공유할 수 있는 영역을 생성
Session
: 각각의 유저에게만 만들어지는 개념이다.

 

Thread

'공부 기록 > 자바 프로그래밍 기초' 카테고리의 다른 글

[국비지원] 210125 Java 개요  (0) 2021.01.25
교내 자바특강 day6 ~ 10  (0) 2021.01.25
교내 자바특강 day4  (0) 2021.01.15
교내 자바 특강 day3  (0) 2021.01.15
교내 자바특강 day2  (0) 2021.01.12
Comments