Spring36 2022-12-02 정적파일보관, JSTL사용법 정적파일(이미지파일, css, html, jsp...) 저장하는 곳 => wepapp / resource (테스트하는 곳,바로 웹화면에 뿌려줌) resources폴더의 하위폴더에 있는 파일들을 "/resources/**" 이런식으로 요청해서 보겠다는 것. 이 경로를 수정할수도 있는데 수정하게 되면 스프링설정파일에서 수정해주면 된다. WEB-INF폴더 하위에 static폴더를 만들어주고 여기에 저장해준다. 구분하기 위해 images폴더를 만들어 이미지 파일을 넣어주고 "/images/**"의 경로로 요청했을 때 이미지를 보여주도록 등록한다. location = "/상대경로/images/이미지파일 이름.jpg" JSTL 자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Ta.. 2022. 12. 5. 2022-12-01~02 스프링MVC프로젝트 서버구축 및 mybatis 연결해서 게시판 만들기 서버구축 1. pom.xml - 스프링 프레임워크, 자바 버전 바꾸기 - 라이브러리 등록하기 ① Oracle JDBC Drive - 오라클을 다운로드받기 위한 라이브러리 ② Spring JDBC ③ Mybatis, Mybatis-Spring 2. 스프링 설정파일 - 경로를 수정한 경우 web.xml도 수정하기(/WEB-INF/~~~) ① View Resolver등록(필요 시 value수정) ② 커넥션등록(jndi) ③ JDBC Template등록 ④ mybatis등록(SQL Session Template) - SqlSessionFactoryBean(mybatis 설정파일 경로 등록) - SqlSessionTemplate ⑤ 빈등록을 위한 패키지등록 3. mybatis 설정파일 - DTO객체 등록, ali.. 2022. 12. 5. 2022-11-30 스프링 MVC Controller로 게시판 만들기 스프링 MVC아키텍쳐 스프링 MVC의 역할 분리 - DIspatcherServlet : 모든 요청을 받아서 요청분석 - HandlerMapping : 컨트롤러 찾기 - HandlerAdapter : 컨트롤러를 실행 - Controller : 개발자가 웹에서 처리하고 싶은 내용을 기술(Servlet.java에서 작업했던 내용을 컨트롤러에 정의) - ViewResolver : View의 정보를 기준으로 어떤 View를 response해야 하는지 확인 - VIew : 실제 응답할 뷰 Controller - @RequestMapping이 정의된 메소드 1) 매개변수 String => 파라미터명과 동일하게 정의하면 View에서 넘겨주는 파라미터를 추출(request.getParameter) DTO => 입력하는 .. 2022. 11. 30. 2022-11-29 스프링 MVC프로젝트 생성하기 정리 1-1. pom.xml에서 라이브러리 설정하기(스프링 프레임워크 버전, 자바 버전 바꾸기, 메이븐 추가하기) oracle http://maven.jahia.org/maven2 1.8 4.2.4.RELEASE 1.6.10 1.6.6 1-2. jdbc추가 마지막에 끼워넣기 org.springframework spring-jdbc 4.2.4.RELEASE com.oracle.database.jdbc ojdbc6 11.2.0.4 2. ewb.xml에서 스프링 설정파일 위치 설정하기 appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/config/spring-config.xml 1 3. 스프링 설정파일.. 2022. 11. 29. 2022-11-29 스프링 jdbc(DB연결) - CRUD 앞서 했던 insert, update, delete와 다르게 select는 객체를 리턴하고, ResultSet클래스를 이용하므로 따로 작업하였다. ResultSet DeptSystem(메인 메소드), MenuUI(인터페이스 AbstractUI상속), DeptDAOImpl(인터페이스 DeptDAO상속) 이 구성에서 추가로 인터페이스 RowMapper를 상속받는 클래스를 만들어 mapRow메소드를 이용해 값을 읽어줘야 한다. RowMapper란? Jdbc Template에서 행 단위로 ResultSet의 행을 매핑하는 데 사용하는 인터페이스로, 각 행을 결과 객체에 매핑하는 실제 작업을 수행한다. - 부서 이름으로 해당하는 부서의 정보 찾기 우선 CustomerRowMapper클래스의 mapRow호출하기 위.. 2022. 11. 29. 2022-11-28 스프링 jdbc(DB연결) - CRUD 스프링과 DB연결하기 springjdbc - dept패키지 1. WEB-INF에 lib폴더를 작성하고 ojdbc6.jar파일 추가하기 2. db연동 라이브러리를 pom.xml파일에 등록 => spring - jdbc oracle(maven중앙저장소에서 11버전까지는 지원이 안 되므로 외부저장소에 등록하고 작업) 3. 설정파일에 스프링에서 지원하는 API를 등록 - DB와의 연결을 관리하는 클래스를 등록(org.springframework.jdbc.datasource.DriverManagerDataSource) jdbc에서 DriverManager로 커넥션을 생성하는 작업과 동일함(커넥션풀로 바꾸기) DBUtil에 지원하던 기능을 지원 - jdbc에서 처리하던 공통의 작업을 수행하는 클래스 JdbcTemp.. 2022. 11. 28. 2022-11-25 IoC(제어의 역전), DI(의존관계 주입) - annotation을 이용해 객체 생성하기 리뷰 이제까지 힘겹게 힘들게 객체를 만들었다면 ... 이제 코드 단 몇 줄로 이 모든 걸 대체할 수 있게 됐다. 이것을 위한 빌드업이었을까..? 하지만 위험성이 좀 있어서 디폴트로 사용하지 못하는 게 좀 슬프다 ............ Spring관련 annotation @Component : 기본 빈으로 정의하고 등록할 때 사용. 어떤 id로 빈을 등록할지 설정할 수 있음. @Component("id") 빈의 이름을 등록하지 않으면 클래스명 첫 글자를 소문자로 바꾼 이름으로 등록됨 @Autowired : 해당 타입의 빈이 있으면 자동으로 연결. @Qualifier : @Autowired를 하는 경우, 해당 타입의 빈이 두 개 이상 있을 때 정확하게 어떤 빈을 매칭할 것인지 @Qualifier이용해 명시. @Q.. 2022. 11. 26. 2022-11-25 IoC(제어의 역전), DI(의존관계 주입) - setter메소드를 이용해 객체 생성하기 리뷰 - setter메소드를 이용해 객체를 생성하는 법도 생성자를 이용할 때와 비슷하다. 다만 xml파일에서 bean을 만들 때 를 사용한다. 변하지 않는 값은 생성자 주입을, 변하는 값은 수정자 주입을 사용할 수 있는데 웬만하면 생성자 주입을 사용하는 것이 좋다. 생성자 => setter메소드 => 실습 하기 클래스의 기본생성자와 set, get메소드를 만들어주고 태그 안에 객체에서 사용하는 멤버변수명과 생성할 객체의 id를 써주면 끝~! //간략하게 적음 public class Player implements AbstractPlayer{ AbstractDice d; public Player() { } public void setD(AbstractDice d) { this.d = d; } } //매개변수 3.. 2022. 11. 26. 2022-11-25 IoC(제어의 역전), DI(의존관계 주입) - 생성자를 이용해 객체 생성하기 리뷰 생성자를 이용해 객체 생성하기 package di.constructor02; public class Test01 { public static void main(String[] args) { ApplicationContext factory = new GenericXmlApplicationContext("/config/constructor.xml"); AbstractPlayer p = factory.getBean("player", AbstractPlayer.class); p.play(); System.out.println("세번 굴린 주사위의 합:"+p.getTotalValue()); } } package di.constructor02; public class Player implements Abstract.. 2022. 11. 25. 이전 1 2 3 4 다음