전체 글365 Upload in Spring Boot 업로드 방식 : 클라이언트에서 정함 일반 업로드 : 화면이 바뀌면서 form형식으로 서버에 전송 비동기 업로드 : 업로드와 동시에 서버에 전송 파일 임시저장 방식은 3가지 데이터베이스 / 하드디스크 / 클라우드 -스프링부트 application.properties의 설정 업로드 가능여부 업로드 가능 용량 파일당 최대 업로드파일 저장경로 썸네일 이미지를 사용하고 싶다면 dependencies에 thumbnailator 모듈을 추가한다 업로드시에 enctype을 multipart/form-data로 설정을 필수로 해야한다 파일: Spring Boot 2023. 2. 21. JQuery Jquery사용법 1. jquery홈페이지에 들어가서 download탭에 있는 compressed 혹은 uncompressed 둘중 하나를 다운받는다. html에 다운받은 jquery 퐈일을 호출해준다. 외워야할 함수들 함수명 뜻 제이쿼리 값 확인 val() val() 값얻기 val("변경할값) 값 바꾸기 제이쿼리 문서 객체 조작 attr() attr("src") 특정값 확인 attr("src", 변경값) 특정값 변경 attr({~~~~~}) 여러값 변경 제이쿼리 문서 객체 조작 css() css("backgroundColor") 특정값 확인 css("backgroundColor",변경값) 특정값 변경 css("{~~~~}") 여러값 변경 제이쿼리 문자 조작 html() html() 선택자의 값을 확인 .. 수정중 2023. 2. 17. Rest API 기존의 @Controller 어노테이션은 returb에 Model을 담아서 뷰에 전송했다. RestAPI는 서버간 통신을 위한 Controller이다. @RestController는 returb에 처리하는 데이터를 조금 다른식으로 처리함. 객체를 반환할수 있고 받을수도 있다 REST API를 이용하면 서버간 통신 or 클라이언트 서버통신이 가능함 How? JSON형식을 사용함.(XML도 가능함) 스프링 메시지 컨버터 HTTP 메시지 컨버터란, 요청 본문에서 메시지를 읽어 들이거나(@RequestBody), 응답 본문에 메시지를 작성할 때(@ResponseBody) 사용 하여 요청 브라우저로 응답을 바꾸는 장치이다. 뷰 템플릿으로 HTML으로 응답하는 게 아니라, 화면에서 처리할 JSON or 문자열 or.. Spring Boot 2023. 2. 16. Spring Boot DB (MyBatis) MyBatis in Spring Boot 기존 스프링에서는 mybatis, mybatis-spring, spring-jdbc가 필요 했지만, Spring Boot 에선 Mybatis-spring-boot-start를 이용하면 자동 설정 된다. build_gradle에 mybatis-spring-boot-starter 라이브러리 추가 //Mybatis // https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' application-properties에 마이바티스 관련 설정 .. Spring Boot 2023. 2. 14. Spring Boot Valiadation 유효성검사(Valiadation) 1. validation이란 어떤 데이터의 값이 유효한지, 타당한지 확인하는 것을 의미합니다. 2. UI에서 javascript로 "이메일 양식이 일치하지 않는다"는 것은 UX 측면에서 사용자에게 편의를 주기 위함 입니다. 3. 보안적인 측면에서 유효성 검사는, UI, 서버에서 둘 다 수행되어야 합니다. 4. 스프링, 스프링 부트 모두 적용 가능합니다. 부트 2.3버전 이후는 Spring Boot Starter Validation 라이브러리 필요 (가져온 라이브러리를 gradle에 넣고 버전을 지우면 springboot버전에 맞춰짐) 유효성 검사 아래 어노테이션은 VO(DTO) 클래스의 멤버변수에 적용해서 사용합니다. Import는 javax.validation패키지를 .. Spring Boot 2023. 2. 14. Thymeleaf in Spring Boot Thymeleaf -자바에서 제공하는 라이브러리이며, 텍스트, HTML, XML, Javascript, CSS를 생성할 수 있는 템플릿 엔진 -스프링 MVC와의 통합 모듈을 제공하며, 애플리케이션에서 JSP로 만든 기능들을 완전히 대체할 수 있다. -스프링부트에서는 JSP보다 Thymeleaf사용을 권장한다. 타임리프를 사용하려면 html최상단부에 xmlns:사용명을 명시한다 생략해도 사용은 가능하다. 타임리프 문법 공식홈페이지 참조. jstl과 문법이 약 80% 유사하다. 중요! 변수 표현 : ${} a링크 : @{} fragment expression : ~{} 타일즈 뷰 템플릿을 기본적으로 제공. fragment태그 사용. 이때 ~{}을 사용한다. 텍스트 : '' 텍스트 결합 : + ${값 + 값}.. Spring Boot 2023. 2. 13. Spring Boot Lombok으로 Builder패턴 만들기 롬복을 이용해서 Builder패턴 만들기 @Builder : 빌더패턴 사용. 클래스에 사용하는 어노테이션이다. @Builder setter가 set변수명()이 아니라 변수명()으로 바뀐다. @Data //get, set, toString @NoArgsConstructor //기본생성자 @AllArgsConstructor //모든생성자 @Builder //빌더패턴 public class BuilderVO2 { private String name; private int age; } @Builder어노테이션과 함께 @Data, @생성자 어노테이션도 사용가능하다. BootTest.java에서 BuilderVO2 vo2=BuilderVO2.builder().age(20).name("이순신").build(); Sy.. Spring Boot 2023. 2. 13. Spring Boot 기본 설정 처음에 Spring Boot 프로젝트를 생성하면 데이터베이스연결과 커넥션풀 연결을 자동으로 처리해주는 application.properties에 아래 코드처럼 설정해준다 server.port=포트번호(숫자 4자리) #############데이터베이스 연결, 커넥션풀 자동연결############## spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:"포트번호"/spring?serverTimezone=Asia/Seoul spring.datasource.username="아이디" spring.datasource.password="비밀번호" 타임리프 뷰를 사용하기 위해선 .. Spring Boot 2023. 2. 10. SpringBoot 생성 Spring Boot Project를 생성할땐 Spring Starter Project 생성 기본 생성시 만들어지는 내용물들 추가할 모듈이 있다면 build_gradle의 dependencies에 추가로 작성한다. jsp를 사용하려면 해당 모듈을 추가한다 //jsp를 뷰로 사용하려면 jsp해석기, jstl를 추가한다 // https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper //implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:9.0.71' // https://mvnrepository.com/artifact/javax.servlet/jstl //implement.. Spring Boot 2023. 2. 10. Spring 게시판 유형의 페이지 구현 실습 ✶ 게시판 유형의 페이지 구현 실습 1. 페이지에 정적 파일(css, js, img) 적용 servlet-context.xml 에 resources mapping 을 해줬지만 일부 적용이 되지 않는 경우가 발생하여 ${pageContext.request.contextPath }/resources/ 를 붙여주어 절대경로로 설정해줬다. 2. 페이지간 연결 (1) a태그 이용 → ${info.title } (2) onclick="location.href=' '" 기능 이용 → onclick="location.href='notice_view?num=${fn:length(enquiryList) - num.count + 1 }&tno=${info.tno}'" *Layout 에 있는 파일의 경우, .. Spring 2023. 2. 9. Spring 페이징 처리 페이징 페이징은 get방식으로 처리한다. 이동할 때 페이지 번호를 가지고 다닌다. 페이징 처리하는 로직을 클래스로 분류한다 ->Criteria클래스, PageVO클래스 sql에 변경을 주는 클래스, sql로 화면을 그리는 클래스. (반드시는 아님) MYSQL 오라클은 limit함수가 없어서 인라인뷰로 해줘야 한다. MySQL에서 페이징은 limit함수를 이용한다! limit(데이터시작, 데이터개수) select * from table order by num desc limit 0,10; 1~10번 데이터가 조회된다. select * from table order by num desc limit 10,20; 11번~30번 데이터가 조회된다. select * from trip order by tno desc.. Spring 2023. 2. 9. ??? root context의 sqlSessionFactory빈에 MapperLocation추가 ->매퍼파일 경로 추가 Service & Mapper생성 컨트롤러에 service연결 컨트롤러에서 작업해서 넘어가는 화면이 완전히 일치한다면 requestMapping 에 객체형식으로 넣고 void형식을 사용한다면 하나로 합칠수 있다. ////수정 상세화면이 완전 동일하다면 //@RequestMapping({"notice_view", "notice_modify"}) //public void notice_view(@RequestParam("tno") int tno, Model model ) { // //TripVO vo = tripService.getContent(tno); //model.addAttribute("v.. 카테고리 없음 2023. 2. 7. 이전 1 2 3 4 ··· 31 다음