Adapter handlerAdapter Handler 사용이유한가지 로직을 실행시키는데에 있어, A/B 경우를 골라야한다면 어떻게 처리해야할지에 대한 의문frontcontroller 의 경우 한가지 방식의 컨트롤러 인터페이스만 사용 가능 Adapter Handler 도식화 수정해야하는 부분FrontController class에서 Controller를 객체 그대로 받는 경우가 수정되어야한다(Before)private Map controllerV3Map = new HashMap();(After)MyHandlerAdapter adapter = getHandlerAdapter(handler); ModelView mv = adapter.handle(request, response, handler); Ada..
회원 생성 및 조회 예제 FrontController 목적각각의 Controller마다 공통적인 부분을 처리 및 Servlet의 종속된 코드 수정 필요문제)jsp 페이지 경로 (중복되는 부분)dispatcher.forward의 반복Controller에서 잘 사용되지 않는, HttpServletRequest + HttpServletResponse (Servlet 종속)Model , View, Controller 분리된 코드의 필요성View의 영역에서도 jsp의 forward을 공통적으로 계속해서 처리해줘야했음jsp 이름의 공통적인 부분을 viewResolver()를 이용하여 처리MyView클래스를 이용하여 forward 하는 부분을 공통적으로 처리할 수 있도록 수정HttpServletRequest 및 Ht..
MVC 패턴 적용 MVC 패턴 적용Servlet"컨트롤러" 로서 사용Client 요청 처리핵심 비즈니스 담당/WEB-INF 하위에 jsp를 두어서 서버 내부에서 리다이렉트 사용 (로직 숨기기)JSP View의 목적으로 사용Servlet의 결과 내용을 토대로 웹 페이지 렌더링ModelServlet과 JSP의 중간층에 위치Servlet의 데이터 내용을 저장했다가, JSP에 전달해주는 역할Model을 사용함으로써, JSP는 비즈니스 로직을 몰라도 된다 MVC 패턴 적용 예제 ( 회원 관리 예제 )Servlet -> ControllerJSP -> ViewHttpServletRequest , HttpServletResponse -> ModelHttpServletRequest와 HttpServletResponse..
JSP 회원 관리JSP 회원 등록 폼new-form.jsp name: age: 전송 회원 저장save.jspclass Member{ private Long id; private String name; private int age; public Member(String name, int age) { this.name = name; this.age = age; } public void setId(Long id) { this.id = id;} public Long getId () { return this.id; } public void setNam..
1. JSP ?2. JSP 구성 및 동작3. JSP 문법JSP ?JAVA Server Page서버 사이드 템플릿 엔진JAVA언어를 사용할 수 있다 JSP 구성 및 동작구성CLIENT Server (+ JSP)동작Client 요청 (Request)Server 해당 JSP 찾기JSP file을 java 코드로 변환 ( .jsp -> .java )java 코드를 컴파일 ( .java -> .class )class file을 수행해서 Server에 내용 전달Server는 해당 데이터를 이용해서 html을 구성Client에 응답 (html 전달)동작에서 중요한 점Jsp -> Java 코드 변환 (servlet 코드로 변환) -> (컴파일) servlet 클래스HttpServlet 상속Request, Resp..
1. 구성2. 구현3. 정리 구성멤버 객체 구현 이름 , 나이멤버 저장메모리 저장멤버 조회전체 조회특정 id 조회 구현java 클래스내부에 print 객체와 함께 동적 html을 생성한다html 코드로 인해, 코드가 길어지고 가독성이 떨어진다 (유지보수의 어려움)public class Member{ private Long id; private String username; private int age; public Member(){ } public Member(String username, int age) { this.username = username; this.age = age; } publi..
ServletResponse 기본 사용법기본적으로 response 헤더 설정 : setHeader("[field Name]", "[value]")Response 상태 코드 : setStatus("[HTTP 정의 상수]")Headet 편의 메서드 : ContentType, Cookie, Redirect@WebServlet(urlPatterns="/main")public class ResponseTest extends HttpServlet{ @Override protected void service( HttpServletRequest request, HttpServletResponse response) throws ServletExceptio, IOException { ..
1. 쿼리 파라미터 (GET)2. HTML Form (POST)3. HTTP message body 쿼리 파라미터http://localhost:8080/main?name=test&count=2message body에 내용 없이, URL의 ?[query] 부분에 추가되어 데이터가 전달됨GET 메서드에서 사용검색 / 필터 / 페이징에서 많이 사용하는 방식@WebServlet(urlPatterns = "/main")public class RequestGet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletExcepti..
- Total
- Today
- Yesterday
- JDBC
- 클래스
- DFS
- 백준
- HTML5
- SQL
- Thymeleaf
- db
- 정렬
- 알고리즘
- 이진탐색
- stack
- Java
- bean
- 타입변환
- 버블정렬
- 티스토리챌린지
- Spring
- JSON
- 예외처리
- 우선순위 큐
- BFS
- 깊이우선탐색
- 검증
- 포트폴리오
- 게시판
- 게시판 프로젝트
- 코딩테스트
- 기술면접
- 오블완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |