728x90
반응형
🎯 목표
💡 나는 최고의 프로그래머당!
🖋️ 수업 내용
※ 요약 주의
📆 230720
- 🌸Spring
- JSTL(JSP Standard Tag Library): 개발자들이 자주 사용하는 패턴을 모아놓은 집합. 컨트롤러에서 보내준 데이터를 뷰에 표현하도록 도와줌
- servlet-context.xml
<resources mapping="/resources/**" location="/resources/"/>
- static folder 설정: css, images, upload, js 등 서버에서 앞서 처리될 필요가 없는 정적 리소스 파일을 처리하는 역할을 수행함. 웹 애플리케이션의 물리적 경로 이름을 설정하고 이 경로에 정적 리소스 파일들을 저장하면 소스 코드나 웹 브라우저의 주소창에서 해당 리소스의 경로를 사용하여 직접 접속할 수 있음.
- 정적 리소스란 클라이언트에서 요청이 들어왔을 대 요청 리소스가 이미 만들어져 있어 그대로 응답하는 것
- mapping 속성: 웹 요청 경로 패턴을 설정. 컨텍스트 경로를 제외한 나머지 부분의 경로와 매핑
- location 속성: 웹 애플리케이션 내에서 실제 요청 경로의 패턴에 해당하는 자원 위치를 설정, 위치가 여러 곳이면 각 위치를 쉼표로 구분
- static folder 설정: css, images, upload, js 등 서버에서 앞서 처리될 필요가 없는 정적 리소스 파일을 처리하는 역할을 수행함. 웹 애플리케이션의 물리적 경로 이름을 설정하고 이 경로에 정적 리소스 파일들을 저장하면 소스 코드나 웹 브라우저의 주소창에서 해당 리소스의 경로를 사용하여 직접 접속할 수 있음.
- form의 method속성
- GET: 데이터를 변경하지 않을 때 사용 ex) select문 등
- POST: 데이터를 변경할 때 사용 ex) insert, update, delete문 등
- ModelAndView 타입 메서드를 정의할 때 파마미터로 vo(dto)필요로 할 때 @ModelAttribute를 사용하고, 단일매개변수에는 @RequestParam을 사용한다.
- @RequestParam의 속성
- value: 파라미터명
- required: true(필수 -> list(x)), false(선택 -> list(o))
- defaultValue: 파라미터의 기본값 설정
- ModelAndView의 setViewName()메서드는 기본적으로 forward 방식인데, 이를 redirect 방식으로 전송하려면 인자로 지정하면 된다
@RequestMapping(value = "**uri**", method = RequestMethod.GET) public ModelAndView method(ModelAndView mav) { mav.setViewName("redirect:/뷰페이지"); return mav; }
📆 230721
- 🌸Spring
- 프로그램 개발 시 테이블이 모두 정의 됐고 UI가 완성됐다는 전제 하에 수업 진행 순서
- Controller -> vo ->
- 스프링에서 개발할 때 파일을 다루는 vo가 있다면 해당 필드의 자료형은 MultipartFile, 파일이 여러개일 경우 MultipartFile[]로 지정한다
- pom.xml에 추가할 파일 업로드용 라이브러리
- commons-fileupload(https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload)
- commons-io(https://mvnrepository.com/artifact/commons-io/commons-io)
- imgscalr-lib(https://mvnrepository.com/artifact/org.imgscalr/imgscalr-lib)
- thumnailator(https://mvnrepository.com/artifact/net.coobird/thumbnailator)
- root-context.xml
- 파일 처리
<!-- 파일 업로드 설정 --> <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver"> <property name="maxUploadSize" value="10485760"/> <property name="defaultEncoding" value="UTF-8"/> </bean> <!-- 파일 업로드 디렉토리 설정 --> <bean class="java.lang.String" id="uploadPath"> <constructor-arg value="/Users/leehyejin/Project/ddit/upload/springShopping"/> </bean>
- 파일 처리
- web.xml
- 파일 처리
<servlet> ... <multipart-config> <location>/Users/leehyejin/Project/ddit/upload/springShopping</location> <max-file-size>20971520</max-file-size> <!-- 최대 20메가 --> <max-request-size>41943040</max-request-size> <!-- 한번에 최대 40메가 --> <file-size-threshold>20971520</file-size-threshold> <!-- 메모리 사용 20메가 --> </multipart-config> </servlet>
<filter> <display-name>springMultipartFilter</display-name> <filter-name>springMultipartFilter</filter-name> <filter-class> org.springframework.web.multipart.support.MultipartFilter </filter-class> </filter> <filter-mapping> <filter-name>springMultipartFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- 파일 처리
- 프로그램 개발 시 테이블이 모두 정의 됐고 UI가 완성됐다는 전제 하에 수업 진행 순서
📆 230724
- 🌸Spring
- pom.xml에 추가할 JSON 관련 의존성
- JSON(JavaScript Object Notation): 자바스크립트 객체 표기법. 텍스트에 기반을 둔 데이터 저장 및 교환을 위한 구문. 브라우저와 서버 간에 데이터를 교환할 때 데이터는 텍스트일 뿐이다. 모든 자바스크립트 객체를 JSON 객체로 변환하고 JSON을 서버로 보낼 수있다. 서버에서 받은 JSON을 자바스크립트 객체로 변환할 수 있다.
- @ResponseBody을 선언한 메서드의 리턴 타입이 JSON으로 변환되어 리턴된다 JSON 값은 문자열이기 떄문에 해당 메서드의 자료형을 String으로 지정한다
- 컨트롤러에서 mav.addObject("키", "밸류")값으로 저장한 후 뷰(jsp)에서 ${키}로 받아올 경우 해당 키의 scope를 스캔함
- pageScope.키: pageContext.setAttribute("키")의 결과테이터를 찾음
- requestScope.키: request.setAttribute("키")의 결과테이터를 찾음
- sessiontScope.키: session.setAttribute("키")의 결과테이터를 찾음
- applicationScope.키: application.setAttribute("키")의 결과테이터를 찾음
- 위 내용에 없을 때 model.addObject("키", "밸류")의 값을 스캔함
- 둘 다 없으면 걍 null됨
- 자바스크립트
- AJAX(Asynchronouse JAvascript Xml)
- 기본 형태
- XMLHttpRequest 객체를 xhr 변수에 할당하고 xhr의 인자로 할일을 지정한다. 전역변수로 지정하면 심부름꾼 한명에게 모든 일을 시킨다는 의미로, xhr 변수는 항상 함수 내에 선언되어 있어야함
- xhr.open("방식", "장소", 비동기여부)
- 방식: get, post, put, delete 사용 가능
- 장소: 데이터를 전송받을 url 지정. csv, html, json 모두 가능함
- 비동기여부: 항상 true를 쓰는 것을 권장함.
- xhr.onreadystatechange: 시킨 일이 끝났는지 모니터링(이벤트 기반)
- xhr.readyState
- xhr.status
- xhr.send(): 지정한 할일을 서버에 전송시킴. onreadystatechange를 다 한 후에 일시킴
- AJAX(Asynchronouse JAvascript Xml)
📆 230725
- 🌸Spring
- 리팩토링
- 자바스크립트
- 수업들음
📆 230726
- 🌸Spring
- 리팩토링
💭 기록
생각한 내용 찌끄리기
728x90
반응형