Web dev 84

SPRING Controller Model

: 데이터 전달자. 파라미터(request)로 데이터를 받아 추가적으로 처리한 후 결과를 View로 전달할 때 주로 사용한다. 파라미터를 Model 타입으로 선언하면 SpringMVC에서 자동으로 Model타입의 객체를 만들어준다. 필요한 데이터를 Model 객체에 담아주면 된다. @RequestMapping가 적용된 메서드에서 controller에서 처리한 데이터를 Model 객체에 담아서 View(화면, jsp)에 전달한다. ex) @Controller public class GameSearchController { @ModelAttribute("searchTypeList") public List referenceSearchTypeList() { List options = new ArrayList()..

Web dev/Basic 2022.11.13

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..

Web dev/Basic 2022.11.12

SPRING Controller 구현

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

Web dev/Basic 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..

Web dev/Basic 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로부터 필요한 ..

Web dev/Basic 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 라이브러리 등록 ..

Web dev/Error 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 : 시퀀스의 현재값을 ..

Web dev 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() : 실행 전에 미리 쿼리문을 컴파일 한다. 미리 컴파일해 놓은 구문을 사용하기 때문에 다중 수행..

Web dev 2022.10.28