김영한

· Spring/mvc
HTTP 응답 메세지는 주로 다음 내용을 담아서 전달한다 단순 텍스트 응답 writer.println("ok"); HTML 응답 HTTP API - MessageBody JSON 응답 HTML 응답 @WebServlet(name="responseHtmlServlet", urlPatterns = "/response-html") public class ResponseHtmlServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //Content-Type: text/html; cha..
· Spring/mvc
HttpServletResponse 역할 HTTP 응답 메세지를 생성한다 HTTP 응답코드 지정 헤더 생성 바디 생성 편의기능 제공 Content-Type, 쿠키, Redirect 직접 헤더 정보 출력해보기 @WebServlet(name="responseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //[status-line] res..
· Spring/mvc
HTTP 요청 메세지를 통해 클라이언트에서 서버로 데이터를 전달하는 3가지 방법 GET 쿼리 파라미터 POST-HTML Form HTTP API 메세지 바디 HTTP 요청 데이터 - GET 쿼리 파라미터 /url ?username=rosieposie&age=22 메세지 바디없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징 등에서 많이 사용하는 방식 @WebServlet(name="requestParamServlet", urlPatterns = "/request-param") public class RequestParamServlet extends HttpServlet { @Override public void service(ServletRequest request, Ser..
· Spring/mvc
HttpServletRequest 역할 HTTP 요청 메세지를 개발자가 편리하게 사용할 수 있도록 HTTP를 파싱한다. 그리고 그 결과를 HttpServletRequest객체에 담아서 제공한다. HTTP 요청 메세지 POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded username=rosieposie&age=22 START LINE HTTP 메소드 URL 쿼리 스트링 스키마, 프로토콜 헤더 헤더 조회 바디 form 파라미터 형식 조회 message body 데이터 직접 조회 임시 저장소 기능 해당 HTTP 요청이 시작부터 끝날 때까지 유지되는 임시 저장소 기능 저장 : request.setAttr..
· Spring/mvc
** 톰캣서버를 설치하고 서블릿 코드를 클래스 파일로 빌드해서 올리는 과정은 번거로우니 내장 톰캣이 있는 스프링부트 환경에서 진행 1. HelloServlet.java 생성 HttpServlet을 상속을 받고 @WebServlet 컴포넌트를 사용하여 name과 urlPatterns를 지정해준다. ctrl+o를 해서 protected service 메서드를 만든다. 이 서블릿이 호출이되면 서비스 메서드가 호출이 되도록 !!! 그리고 스프링 실행하자마자 에러 등장 ㅋㅋㅋㅋㅋㅋㅋ 아래는 에러 문구 Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: 내가 작성한 코드는 없었고 컴포넌트, 메서드는..
· Spring/mvc
스프링프로젝트 쉽게 생성해주는 https://start.spring.io/ 로 접속하여 아래와 같이 세팅하고 Generate 클릭 ** Jsp를 사용할 것이기 때문에 war로 패키징을 선택 보통 jar 사용시에는 내장 톰캣(스프링부트) = 스프링부트가 빌드된 결과에 톰캣 서버를 내장해서 바로할 때 사용한다. war도 동일하게 위와 같이 되지만, 톰캣 서버를 별도로 설치하고 별도로 war에 빌드해서 넣을 때 사용함!!! 2. 생성된 zip파일을 사용할 폴더에 넣고 압축해제 3. 인텔리제이에서 오픈선택 후 servlet -> build.gradle 오픈! ** 프로젝트가 오픈이 되면 꼭 build.gradle 파일에서 패키징이 war로 되어있는지 확인할 것! plugins { id 'org.springfra..
· Spring/mvc
정적리소스 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공 주로 웹 브라우저 HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹브라우저 : HTML 해석 -> 나의 정보(동적인 정보)가 담긴 HTML을 내려줌 HTTP API HTML이 아니라 데이터를 전달 주로 JSON 형식 사용 (xml 일 수도 있음) 다양한 시스템에서 호출 데이터만 주고 받음. UI 필요 시 클라이언트 별도 처리 앱 클라이언트 to 서버, 웹 클라이언트 to 서버, 서버 to 서버 (ex. 사용자 서버 -> 계좌 검증 서버) CSR (Client Side Rendering) 서버에서 index.html 파일을 클라이언트에 보내주면 일반적인 csr프레임워크 (리엑트, 뷰, 앵귤러)는 body안의 id="..
· Spring/mvc
웹 브라우저(클라이언트)에서 서버에 요청을 하면, tcp/ip 커넥션 연결이 되고 서블릿을 호출해주고 was서버는 응답을 해준다. 그런데, 서블릿을 호출하는 주체는 누구인가? 바로 바로 쓰레드...!! 쓰레드란? 어플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 자바 메인 메서드를 처음 실행시 main이라는 쓰레드가 실행 쓰레드가 없다면 자바 어플리케이션 실행이 불가능 쓰레드는 한번에 하나의 코드 라인만 실행 동시 처리가 필요하면 쓰레드를 추가로 생성 단일 요청 - 쓰레드 하나 사용시 단일 요청시에는 큰 문제는 없어보인다. 다중 요청 - 쓰레드 하나 사용시 문제는 다중 요청! 쓰레드를 하나만 사용한다고 했을 때 request1이 처리되는 동안 request2는 대기중인 상태로 그마저도 처리가 ..
· Spring/mvc
Goal 서블릿에 대해 알아보고 이해한다 서블릿 컨테이너에 대해 알아보고 이해한다 서블릿이란 ? [사전적 정의] 자바 서블릿(Java Servlet)은 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. JSP와 비슷하지만 JSP는 HTML 문서 안에 Java코드를 포함하는 반면, 서블릿은 자바코드안에 HTML을 포함하고 있다는 점에서 차이점이 있다. Servlet JSP 자바 코드 안에 HTML 포함 HTML 문서안에 Java코드 포함 [예시] 시스템 - HTML Form를 통하여 데이터 전송(post)을 한다고 하자 우리가 원하는 것 (비지니스 로직) - 회..
· Spring/mvc
Goal 웹 서버 (web server)에 대해 알아본다 웹 어플리케이션 서버(web application server)에 대해 알아본다 웹서버와 was를 분리해야 하는 이유 Client > Web Server > WAS > DB 구조 및 동작과정을 알아본다 웹 서버와 WAS 웹 서버 (Web Server)란? 클라이언트가 서버에 페이지 HTTP 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버이다 특징 정적 리소스 제공 (정적(파일) HTML, CSS, JS, 이미지, 영상) 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 한다. was를 거치지 않고 자원 바로 제공 어플리케이션 로직같은 동적인 처리가 필요시에는 was에 요청을 위임하고, WAS가 처..
dev_rosieposie
'김영한' 태그의 글 목록 (2 Page)