SQL SELECT id, name, content, regdate FROM guestbook ORDER BY id DESC limit :start, :limit; --LIMIT 시작점, 갯수 Controller defaultValue="0"에 의해 처음은 0 번째부터 5개를 출력한다. 그 다음부터 pageCount에 따라 pageStartList에 5, 10, 15 등의 값이 들어갈 수 있다. @Autowired GuestbookService guestbookService; @GetMapping(path="/list") public String list(@RequestParam(name="start", required=false, defaultValue="0") int start, ModelMap mo..
1. pom.xml에서 JDK와 Servlet의 버전을 각각 1.8과 3.1.0으로 변경 후 저장한 다음 "프로젝트 우클릭 → Maven → Update Project..." UTF-8 1.8 1.8 javax.servlet javax.servlet-api 3.1.0 provided 2. web.xml에 DTD를 3.1로 변경한다. Archetype Created Web Application index.html index.jsp 3. 이클립스 Navigator 뷰에서 프로젝트/.settings/org.elclipse.wst.common.project.facet.core.xml 파일을 수정한다. 4. 이클립스 restart
실행 과정 1. 주소창에 http://~/xxxx 입력 2. DispatcherServlet → Controller : Controller에서 path가 /xxxx인 메소드 실행 3. Controller → DispatcherServlet : InternalResourceViewResolver가 가져온 return 값에 "/WEB-INF/views/"와 ".jsp"를 붙임 4. DispatcherServlet → View template : return 받은 "/WEB-INF/views/xxxx.jsp" 경로 파일 실행 (아래 DispatcherServlet 설정 참고) DispatcherServlet(=WebMvcContextConfiguration.java) 설정 @Configuration @Enab..
Maven Project 생성 File - New - Maven Project - Archetype 선택(Group Id : org.apache.maven.archetypes, Artifact Id : maven-archetype-webapp) - Group Id, Artifact Id 입력 - finish 폴더 추가 Maven Project를 최초 생성하면 위와 같은 구조를 가지고 있는데 Maven Project 디렉토리 구조를 만들기 위해서 아래와 같이 main 폴더 하위에 java, resources 폴더를 생성한다. ㄴsrc ㄴmain ㄴjava : 자바 패키지 폴더와 소스 코드가 위치함. ㄴresources : *.properties, *.xml 등 설정파일들이 위치함. ㄴwebapp : WEB..
MVC MVC는 Model-View-Controller의 약자이다. Spring MVC란 스프링 프레임워크 모듈 중에 하나인 Web 모듈이다. Model : Model은 View가 렌더링하는데 필요한 데이터이다. 예) 사용자가 요청한 상품 목록이나 주문 내역 View : 실제로 보이는 부분. Model을 사용해 렌더링한다. Controller : 사용자의 액션에 응답하는 컴포넌트이다. Model을 업데이트하고 다른 액션을 수행한다. Spring MVC 기본 동작 흐름 1. 클라이언트의 모든 요청은 Front Controller(=DispatcherServlet)라는 단 하나만 존재하는 서블릿이 받는다. 2. Front Controller는 요청만 받고 실제 일은 Controller 클래스(Handler ..
쿠키 Cookie 브라우저에 저장되는 내용들이다. 즉, 내 컴퓨터에 저장된다. 임의로 고치거나 지울 수 있고 남이 볼 수도 있기 때문에 중요한 정보를 저장하지 않는다. 예) 자동완성, 공지 하루 안보이기, 로그인 안 한 상태로 장바구니 담기 세션 Session 세션을 사용하는 사이트에 접속하면 서버에서 사용자를 구분하는 기한이 짧은 임시 키를 브라우저로 보내서 쿠키로 저장한다. 브라우저가 이 사이트의 페이지들에 접속할 때마다 http 요청에 임시 키를 실어서 전송하고 서버는 그 키를 보고 사용자를 인식한다. 사용자의 중요한 정보들은 이 서버의 메모리나 데이터베이스에 저장된다. 즉, 사용자나 다른 누군가에게 노출되어서는 안 되는 정보들은 세션으로 서버에서 관리한다. 예) 자동 로그인 캐시 Cache 가져오..
파일 구조 ㄴconfig ㄴApplicationConfig.java ㄴDBConfig.java ㄴdao ㄴRoleDao.java ㄴdto ㄴRole.java ㄴmain ㄴTest.java pom.xml 설정 및 DAO 작성 UTF-8 1.8 1.8 5.1.5.RELEASE org.springframework spring-context ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-tx ${spring.version} org.apache.commons commons-dbcp2 2.1.1 org.mariadb.jdbc mariadb-java-client 2.7.0 Role.java pu..
Spring JDBC 개발자가 할 일 connection 파라미터 정의 SQL문 지정 파라미터 선언과 파라미터 값 제공 각 이터레이션에 대한 작업 수행 Spring이 해주는 일 connection 오픈 statement 준비와 실행 (존재한다면)결과를 반복하는 루프 설정 모든 예외 처리 트랜잭션 제어 connection, statement, resultset 닫기 JDBC와 Spring JDBC 소스 비교 // JDBC public Role getRole(Integer roleId) { Role role = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { Class.forName("org.mariad..
const, let은 자바스크립트 ES6(ECMA 2015)부터 생긴 구문이다. 익스플로러 호환성 문제 때문에 아직도 대다수 웹에서는 var 변수만 사용된다. const 선언할 때 바로 값을 넣어줘야 한다. 한번 넣은 값은 바꿀 수 없는 상수이다. const mouse_1 = '서울쥐'; mouse_1 = '귀촌쥐';//Error let 선언과 값 정의를 따로 할 수 있다. 넣은 값은 이후 얼마든 바꿀 수 있다. 대신 선언을 다시 할 수 없다. let mouse_2; mouse_2 = '시골쥐'; mouse_2 = '상경쥐'; let mouse_2 = '서울쥐';//Error var 값을 자유롭게 변경할 수 있다. 다시 선언할 수 있다. var mouse_3 = '청계천쥐'; mouse_3 = '잠적쥐'..