[WEB_MVC] MVC01
reset운 폼 있어야 동작.
전송버튼 눌렀을 떄 파라미터 2개가 서블릿으로 넘어가게 해줘야 한다.
서블릿에서 클라이언트에서 서버에 요청 서비스 메서드에 객체(요청객체, 응답객체) 넘겨주고 서비스 메서드 넘겨주고 실행.
이 클라이언트 식별해야되는데 request와 response로 실행.
항상 첫번쨰 인자가 request들어와야 되고 두번쨰 인자가 response로 들어와야 한다.
서버 요청시 패킷으로 정보 넘어가는데 (쌓아져서) 주소창에 넘어가는 패킷정보가 보이게 되는데 이게 get방식이다.
서버 요청엔 get,post 2가지 방식이 있다. get방식은 넘어가는 게 눈에 보여서 보안에 취약하고 넘기는 데이터에 한계가 있다.(url로 서버로 넘긴다.)
- GET 방식
먼저 GET 방식에 대해서 알아보도록 하겠습니다. 영어 Get이라는 단어는 가져오다라는 뜻을 가진 단어인데요, 이를 활용해서 이해하면 쉽습니다. 우리가 필요한 정보를 얻기 위해 도서관에서 책을 빌려 가져오는(GET)상황과 유사하게 GET은 어떠한 정보를 가져와서 조회하기 위해서 사용되는 방식입니다.
[ GET방식의 특징] URL에 변수(데이터)를 포함시켜 요청한다.
데이터를 Header(헤더)에 포함하여 전송한다.
URL에 데이터가 노출되어 보안에 취약하다.
캐싱할 수 있다.
- POST 방식
GET방식에 이어서 POST방식에 대해서 알아보도록 하겠습니다. POST라는 단어는 부치다, 제출하다라는 뜻을 가지고 있습니다. 예를 들어 우리가 어디에 서류를 제출하는 것은 우리에 대한 정보를 제출하여(POST) 추가하기 위함입니다. 이러한 상황과 유사하게 POST 방식은 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식입니다.
[ POST방식의 특징 ] URL에 변수(데이터)를 노출하지 않고 요청한다.
데이터를 Body(바디)에 포함시킨다.
URL에 데이터가 노출되지 않아서 기본 보안은 되어있다.
캐싱할 수 없다.
GET방식은 URL에 데이터를 붙여서 전송하는 반면에 POST방식은 BODY에 데이터를 넣어서 전송합니다. 따라서 헤더필드 중 Body의 데이터를 설명하는 Content-Type이라는 헤더 필드가 들어가고 어떠한 데이터 타입인지를 명시해주어야 합니다. 데이터를 Body에 포함시키는 이점 때문에 메세지 길이의 제한은 없지만 최대 요청을 받는 시간인 Time Out이 존재하므로 클라이언트에서 페이지를 요청하고 기다리는 시간이 존재합니다. 실제로 상황에서 POST 방식은 URL에 데이터가 노출되지 않으므로 즐겨찾기나 캐싱이 불가능하지만 쿼리스트링(문자열)데이터 뿐만 아니라, 라디오 버튼, 텍스트 박스와 같은 객체들의 값도 전송이 가능합니다.
참고: https://mangkyu.tistory.com/17
?뒤에 전달되는 내용을 쿼리스트링이라 한다.
이 안의 내용들을 뺴서 각각 모델 ,뷰(jsp)로 둔다.
여기서 controller인 서블릿으로만 사용하는건 아주 비효율적.
클래스 이름 만드는거에 따라 맨앞은 대문자.
한글 꺠지는데 이걸 고치자.
자바에서 한글은 2바이트인데 서버 전달에는 1바이트 전달되서
각 디비 연결하기 위한 api가 서로 다르게 만들어지면 부담. 그래서 jdbc라는 api로 공통적으로 사용할 수 있는 api를 자바에서 만들고 별도의 구현 클래스 생성.
서버에 전송해주는 Mime타입