분류 전체보기 104

SPRING View 지정

View 이름을 명시적으로 지정하려면 ModelAndView나 String을 리턴해야 한다. ModelAndView를 리턴하는 경우, ModelAndView Class의 생성자나 setViewName() 메서드를 이용해 View이름을 지정한다. @RequestMapping("/index.do") public ModelAndView index(){ ModelAndView mav = new ModelAndView("index"); ... return mav; } ModelAndView mav = new ModelAndView("index"); mav.setViewName("search/game"); String 타입을 리턴할 경우, 문자열 값을 View 이름으로 사용한다. @RequestMapping("/h..

SPRING 2022.11.12

SPRING Controller 구현

: 클라이언트의 요청을 처리한다. 직간접적으로 뷰 이름과 모델 정보를 설정하는 ModelAndView 객체를 생성한다. 파라미터가 자동으로 수집(binding)되어 request.getParameter()를 사용하지 않아도 된다. 상속/인터페이스/전송 방식에 대한 처리를 어노테이션만으로 설정할 수 있다. DispatcherServlet이 사용하는 설정 파일인 servlet-context.xml에 Controller Class를 Bean으로 등록해야한다. 태그를 이용해 해당 패키지를 스캔하도록 설정하면 자동으로 어노테이션을 파악해 객체를 생성해준다. 1. 어노테이션 @Controller : 해당 Class가 spring mvc의 컨트롤러를 구현한 Class라는 것을 지정한다. @RequestMapping ..

SPRING 2022.11.11

SPRING MVC 구조, 처리 흐름, 개발 과정

: 스프링 MVC는 스프링의 sub project이다. 따라서 별도의 설정이 존재할 수 있다. : 일반 Java 영역(root-context.xml)과 web영역(servlet-context.xml)을 함께 연동해서 구동한다. 로딩 구조 1) 프로젝트 구동 2) web.xml - ContextLodaderListener 구동 3) root-context.xml 처리 : 객체(Bean)을 스프링 영역(context)안에 생성하고 의존성 처리 4) DispatcherServlet - servlet-context.xml 처리 : 객체(Bean)을 스프링 영역(context)안에 생성하고 의존성 처리 웹 프로젝트 3-tier 방식과 Spring MVC Presentation Tier Business Tier P..

SPRING 2022.11.10

SPRING Framework 개념, 기능, 특징

SPRING Framework란? : Enterprise Application에서 필요로 하는 기능을 제공하는 Framework다. JEE(Java Enterprise Edition)가 제공하는 다양한 기능을 제공하며 DI(Dependency Injection), AOP(Aspect Oriented Programming)과 같은 기능도 지원한다. + Famework란? : 뼈대나 근간을 이루는 코드들의 묶음 : 프로그램의 기본 흐름이나 구조를 정하고, 팀원들이 이 구조에 자신의 코드를 추가하는 방식의 개발 spring의 주요기능 Lightweight Container (경량 컨테이너) : Spring Container는 Java 객체의 라이프 사이클을 관리하며 Spring Container로부터 필요한 ..

SPRING 2022.11.09

오류 eclipse tomcat버전 변경 시 class compile

상황 이클립스 톰캣 9.0을 6.0으로 다운그레이한 후 프로젝트 실행 시 class compile 심각 오류가 발생했다. "System.currentTimeMillis()"가 포함된 라인에서 에러가 발생. 해결방법 1. jdk도 낮은 버전으로 설치한다. JDK18버전을 사용 중이었는데 JDK11을 추가로 설치했다. 2. eclipse - > window -> preference -> java -> installed JREs -> Add ->standard VM -> directory -> jdk11을 설치한 폴더 불러오기 -> jdk11 체크 3. eclipse 해당 프로젝트 우클릭 -> preference -> java Build Path -> edit -> jdk18 대신 jdk11 라이브러리 등록 ..

ERROR RESOLVING 2022.10.30

ORACLE SQL 시퀀스 (NEXTVAL, CURRVAL)

sequence란? : 컬럼의 값을 자동으로 증가시키기 위해 일련번호를 부여해주는 것이다. (ex) 게시판 글에 순번 매기기 시퀀스 생성 CREATE SEQUENCE 시퀀스명; create sequence pds_item_id_seq; 시퀀스명.NEXTVAL : 실행할 때마다 시퀀스 값이 증가한다. 다음값을 가져온다. EX) pstmt = conn.prepareStatement("insert into pds_item " + "(pds_item_id, filename, realpath, filesize, downloadcount, " + "description) " + "values (pds_item_id_seq.NEXTVAL, ?, ?, ?, 0, ?)"); 시퀀스명.CURRVAL : 시퀀스의 현재값을 ..

DB 2022.10.29

Statement VS PreparedStatement 사용법 차이

Statement() : executeQuery()로 실행할 때 파라미터로 쿼리문을 전달한다. 수행 시마다 컴파일을 하기 때문에 다중 수행 시 속도가 느리다. ex) public int selectCount(Connection conn) throws SQLException { Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery("select count(*) from pds_item"); rs.next(); return rs.getInt(1); PreparedStatement() : 실행 전에 미리 쿼리문을 컴파일 한다. 미리 컴파일해 놓은 구문을 사용하기 때문에 다중 수행..

JSP, SERVLET 2022.10.28

dynamic web project 클래스 컴파일 방법

상황 교재(최범균 jsp 2.1 웹프로그래밍)에는 CookieBox 클래스 컴파일 방법이 java project만 나와있는데 나는 dynamic web project를 만들어서 하는 중이었기 때문에 그대로 하니 적용이 되지 않았다. 해결방법 이클립스 해당 프로젝트의 하위 폴더 중 Java Resources - src/main/java폴더에 utill폴더를 만들고 여기에 CookieBox.java 파일을 생성한다. 새로고침을 하고 src - main - java폴더에 utill폴더와 CookieBox.java 파일이 자동으로 생성된 것을 확인하면 끝! 이렇게 하면 예제들이 정상적으로 실행된다.

JSP, SERVLET 2022.10.05