[WEB_MVC] MVC01

20210331_003119

20210331_012328

20210331_012707

reset운 폼 있어야 동작.

20210331_012925

20210331_013242

20210331_013549

전송버튼 눌렀을 떄 파라미터 2개가 서블릿으로 넘어가게 해줘야 한다.

20210331_015903

20210331_015941

20210331_020511

서블릿에서 클라이언트에서 서버에 요청 서비스 메서드에 객체(요청객체, 응답객체) 넘겨주고 서비스 메서드 넘겨주고 실행.

이 클라이언트 식별해야되는데 request와 response로 실행.

항상 첫번쨰 인자가 request들어와야 되고 두번쨰 인자가 response로 들어와야 한다.

서버 요청시 패킷으로 정보 넘어가는데 (쌓아져서) 주소창에 넘어가는 패킷정보가 보이게 되는데 이게 get방식이다.

20210331_020816

서버 요청엔 get,post 2가지 방식이 있다. get방식은 넘어가는 게 눈에 보여서 보안에 취약하고 넘기는 데이터에 한계가 있다.(url로 서버로 넘긴다.) 20210331_021500


  1. GET 방식

먼저 GET 방식에 대해서 알아보도록 하겠습니다. 영어 Get이라는 단어는 가져오다라는 뜻을 가진 단어인데요, 이를 활용해서 이해하면 쉽습니다. 우리가 필요한 정보를 얻기 위해 도서관에서 책을 빌려 가져오는(GET)상황과 유사하게 GET은 어떠한 정보를 가져와서 조회하기 위해서 사용되는 방식입니다.

[ GET방식의 특징] URL에 변수(데이터)를 포함시켜 요청한다.

데이터를 Header(헤더)에 포함하여 전송한다.

URL에 데이터가 노출되어 보안에 취약하다.

캐싱할 수 있다.

  1. POST 방식

GET방식에 이어서 POST방식에 대해서 알아보도록 하겠습니다. POST라는 단어는 부치다, 제출하다라는 뜻을 가지고 있습니다. 예를 들어 우리가 어디에 서류를 제출하는 것은 우리에 대한 정보를 제출하여(POST) 추가하기 위함입니다. 이러한 상황과 유사하게 POST 방식은 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식입니다.

[ POST방식의 특징 ] URL에 변수(데이터)를 노출하지 않고 요청한다.

데이터를 Body(바디)에 포함시킨다.

URL에 데이터가 노출되지 않아서 기본 보안은 되어있다.

캐싱할 수 없다.

GET방식은 URL에 데이터를 붙여서 전송하는 반면에 POST방식은 BODY에 데이터를 넣어서 전송합니다. 따라서 헤더필드 중 Body의 데이터를 설명하는 Content-Type이라는 헤더 필드가 들어가고 어떠한 데이터 타입인지를 명시해주어야 합니다. 데이터를 Body에 포함시키는 이점 때문에 메세지 길이의 제한은 없지만 최대 요청을 받는 시간인 Time Out이 존재하므로 클라이언트에서 페이지를 요청하고 기다리는 시간이 존재합니다. 실제로 상황에서 POST 방식은 URL에 데이터가 노출되지 않으므로 즐겨찾기나 캐싱이 불가능하지만 쿼리스트링(문자열)데이터 뿐만 아니라, 라디오 버튼, 텍스트 박스와 같은 객체들의 값도 전송이 가능합니다.

20210331_022133

참고: https://mangkyu.tistory.com/17

20210331_022326

?뒤에 전달되는 내용을 쿼리스트링이라 한다.


20210331_022704

이 안의 내용들을 뺴서 각각 모델 ,뷰(jsp)로 둔다.

20210331_024401

여기서 controller인 서블릿으로만 사용하는건 아주 비효율적.

20210331_024542

20210331_025516

20210331_025602

클래스 이름 만드는거에 따라 맨앞은 대문자.

20210331_032859

20210331_033853

20210331_034011

한글 꺠지는데 이걸 고치자.

자바에서 한글은 2바이트인데 서버 전달에는 1바이트 전달되서

20210331_035640

각 디비 연결하기 위한 api가 서로 다르게 만들어지면 부담. 그래서 jdbc라는 api로 공통적으로 사용할 수 있는 api를 자바에서 만들고 별도의 구현 클래스 생성.

20210331_041749

20210331_042019

20210331_042829

20210331_042945


20210401_003400 20210401_003538


서버에 전송해주는 Mime타입

20210402_021810





© 2021.03. by yacho

Powered by github