목록Server application/Web, Servlet (19)
ecsimsw
웹 서버와 WAS 태초의 웹 서버는 정적인 파일만을 요청, 응답하였다. 요청에 해당하는 응답이 항상 일정한 페이지만을 만들 수 있었다. 인터넷이 등장하면서 동적인 페이지에 대한 요구가 증가하였다. 기존의 정적 처리만 가능하던 서버에 동적 처리를 위한 프로그램(Application)을 붙인 Web Application Server를 만들게 되었다. 이를 앞 글자를 따 WAS라고 부른다. 즉, 정적 처리만 가능했던 웹 서버에, Container를 붙여 동적 처리가 가능하도록 한 것이 WAS인 것이다. 이때 Container는 동적 처리를 위한 프로그램들의 구동 환경 제공 정도로 생각하면 된다. 예를 들어 동적 처리를 위한 프로그램을 Servlet이라 한다면, WAS의 Container는 Servlet Con..
DTO DTO는 Data Transfer Object로 레이어 간 데이터 교환을 위해 사용한다. 예를 들면 Controller에서 View로 출력할 데이터를 넘겨줄 때 DTO를 사용했다. 또는 DB에서 꺼낸 데이터를 담아 가져오기 위해 사용했다. public class GameInfoDto { private final String[][] board; private final double score; public GameInfoDto(String[][] board, double score) { this.board = board; this.score = score; } public GameInfoDto(Board board, Score score) { this(board.parseUnicodeBoard(),..
시작 전 복습 WAS : Web Application Server Web Server는 정적인 컨텐츠, Web Container는 동적 컨테이너를 처리하기 위한 어플리케이션 서버. 대표적인 Web Server가 아파치, 대표적인 WAS가 톰캣이다. Spring Web MVC Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. 스프링 Web MVC는 servlet API 기반으로 구축된, 스프링 프레임워크를 포함한 웹 프레임워크이다. 어떻게 Servlet을 기반으로 하고, 어떻게 스프링 프레임워크를 포함했다는..
MVC 패턴 Model - View - Controller 로 역할을 분리하여 개발하는 디자인 패턴 방식이다. Model은 데이터를 관리하는 컴포넌트로 DB와 연결하여 데이터를 가져와 처리하거나, 반대로 데이터를 삽입하는 역할을 한다. View는 사용자의 요청에 답하여 출력될 사용자 인터페이스 요소 처리를 담당한다. Controller는 Model과 View를 이어, 사용자의 요구에 대한 처리를 담당한다. model에 데이터 가공을 요청하고, 가공된 데이터로 view에 화면 출력을 요청한다. Model 1 mvc 패턴의 컴포넌트를 어떻게 분리하고 구성하는 가에 따라 model1 방식과 model2 방식으로 나뉜다. 모델 1 방식은 아래 그림처럼 controller와 view의 구분이 없이 하나의 컴포넌트..
JSP,Servlet / 한글화 1. get 방식으로 한글 데이터를 전송 Servers / tomcat / server.xml server.xml -> Connector 태그 찾기 URL 인코딩 방식 추가. URIEncoding="euc-kr" 2. post 방식으로 한글 데이터 전송 request를 받는 쪽에서, request를 인코딩 > 잘 생각해보면, 전송 방식별로 왜 차이가 나고, 어떤 방식으로 해결할 지 답이 나온다.
redirect / forward url이 바뀐다, 안바뀐다. 이런 식은 별로다. redirect는 새로운 요청과 응답을 받는 것이고, forward는 요청과 응답을 돌리는 것이다. request와 response의 정보가 forward는 그대로 갖고 있는 상태에서 해당 url로 이동하고, redirect는 아예 새로운 요청과 응답을 갖는다. 예시 아래 forward를 통한 A.jsp의 이동에서는 request가 유지되기 때문에, getAttribute로 값을 넘겨 받을 수 있다. 반면 Redirect를 통한 이동은 요청과 응답을 해제했기 때문에 getAttribute에 111 속성은 더 이상 없어 null을 리턴한다.
액션 태그 JSP 페이지 안에서, 태그를 통해 동작을 지시하는 방식이다. 아래는 대표적으로 사용되는 액션 태그이다. 1. 2. 3. 4. 5. 6. 1. 모듈화된 jsp 파일의 경로를 page 속성에 가져와, 현재 파일에 포함 시킨다. 아래 예시처럼, 현재 페이지는 존재하는 상태에서, 사이드바나 상단 페이지를 따로 모듈화한 후 불러 올 때 사용된다. // ... 2. 현재 요청을 유지한 채로, 다른 페이지에 요청 정보를 넘겨 응답을 처리하도록 하는 방식이다. response.sendRedirect는 현재 페이지의 요청을 넘기지 않고, 새로운 응답을 기대한다면, forward는 응답을 다른 페이지에 전가하여 처리하도록 하는 차이가 있다. 주로 현재 요청에 param을 추가하여 정보를 넘기는 방식으로 사용된..
Session 쿠키는 파일을 클라이언트 브라우저 (로컬)에 저장하는 반면, 세션은 서버에 저장한다. 따라서 세션이 보안면에서는 훌륭하나, 속도나 자원의 한계가 있다. servlet에서는 HttpSession 인터페이스로 세션을 구현, jsp에서는 이를 내장 객체 session으로 jsp 컨테이너가 제공한다. 주요 메소드 getAttribute(String name) getAttributeNames() getCreationTime() : 생성 후 경과 시간 getMaxInactiveInterval() : 세션 유지 시간 리턴 invalidate() : 세션 무효화 removeAttribute(String.name) setAttribute(String name, Object value) setMaxInact..