GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Back to the Spring 25

[AJAX] Upload 하기 => FormData

[ 파일upload AJAX 처리 ] ( HTTP 방식 처리 ) MultipartFile mf1 = dto.getFile1(); [ AJAX 방식 ] - 최소한의 입력 form만 만들고, => method / encType 등 업로드 설정은 JavaScript / AJAX 에서 한다. $("#uploadBTN").on("click", function(e){ e.preventDefault(); var form = $("#uploadForm")[0]; var data = new FormData(form); $.ajax({ url : "ajaxUpload", data : data, type : "post", dataType : "json", encType : "multipart/form-data", proce..

Back to the Spring 2022.08.26

[AJAX] 동적태그에 AJAX 적용하기

$("#allmember").on("click", function(){ $.ajax({ url : "ajaxmemberlist", dataType:"json", success : function(resp) {for(var i =0; i a 태그에 이벤트 걸때, 해당 dto 정보를 같이 보낼 수 있다. { "id" : {this}.attr("id") } 이렇게 동적으로 생성된 a 태그들에 이벤트를 걸어줄 때, JS 문법은 아래와 같다. : $( 동적으로생성되는 태그의 부모태그 ). on ( "click", "동적으로 생성되는태그", function() { } ) $("#ajaxresult2").on( "click", "a", function(event){ event.preventDefault(); $.aj..

Back to the Spring 2022.08.26

[ AJAX ] REST API / JSON / ResponseBody

[ 1. HTTP 프로토콜 방식 ] : Synchronous 동기적 처리 방식 클라요청1 => 응답1 클라요청2 => 응답2 클라요청3 => 응답3 ... - 응답이 나오기 전에는 다른 요청을 받지 못한다 - 응답이 나온 후에 다음 요청을 받는 방식 - + = > @GetMapping => return JSP (새로운 페이지) 방식 => 요청에 대해 새로운 페이지로 응답 - 코드 반복 - 2개의 개별적 페이지 => Multi Page Application ( MPA ) [ 2. REST API 방식 ] REpresentational State Transfer : Asynchronous 비동기적 처리 방식 클라요청1/요청2 => 여러개 동시에 들어오고 처리 가능 => 응답2/ 응답1 =..

Back to the Spring 2022.08.25

[ 파일 업로드 ] MultipartFile 사용 => transferTo / UUID 파일명 중복방지

[[ 파일 업로드 ]] => Multipart 이용 [ Multipart 개념 ] 1. 도입부 내용 : (1) uri?파라미터 내용(get요청 일 때) (2) Method 방식 ( get / post ) (3) http 버전 이용가치 : request.getMethod( ) / request.getRequestURI( ) 2. Header 내용 : (1) 브라우저이름 (2) 요청 ip 이용가치 : req.getHeader(" 요청정보 ") / req.getRemoteAddr( ) 3. Body 내용 : (1) post요청일때 파라미터 내용 이용가치 : req.getParameter( ) / MultipartFile - 도입부에는 길이에 제한이 있다. 즉, get방식으로 요청할 ..

Back to the Spring 2022.08.24

@Mapping 사용법 ( @RequestParam / @ModelAttribute / @PathVariable )

[ @Controller ] @GetMapping("/ url ") public String A( ) { } - Mapping 해주는 메소드의 타입은 기본적으로 String 이다. => return 값으로 호출할 HTML/JSP 파일 이름으로 주기 때문. => ViewResolver 가 자동으로 연결 1. public String( ) { return "A"} - Model 담는거 없이 그냥 바로 연결 2. public String(Model model) { return "A"} - Model 담아서 가져간다. 3. public String(String id, int pw) { return "A" } - 자동으로 form태그에서 name == 파라미터명 같은거 매칭해서 가져옴 ( url 파라미터 => 메..

Back to the Spring 2022.08.18

DispatcherServlet // HandlerMapping // ViewResolver

[ MVC servlet-context.xml 태그 이용 Mapping ] - @Mapping 방식을 사용하기 이전의 방식 - 단점이 많다. [ Mapping 과정 ] 사용자가 특정 URL로 요청 => Dispatcher Servlet("/")이 받아서 servlet-context.xml 참조 => handlerMapping ( 마치 HashMap처럼 어떤 key 값 ("/url") 이 들어오면 어떤 Controller 로 연결시킬지 저장해둠 ) => 해당 Controller(servlet)에서 요청에 대한 처리를 한 후 => ModelAndView / handleRequest 모델에 응답을 담음 ( addObject / setViewName ) => return mv 응답 [ web.xml ] : 전반..

Back to the Spring 2022.08.18

[DI] xml 방식 / Componenet - Scan 방식

[ xml 방식 ] - Spring-Bean configuratioin.xml 1. Bean 등록 - 해당 패키지에 Spring Bean Configuration.xml 생성 ( new - other ) == MemberDTO dto1 = new MemberDTO( ); dto1.setId = "spring"; dto1.setPw = 1111; dto1.setName = "backcoder"; - : 기본생성자 필요 - : setter 필요 - set 할 개수에 맞춘 생성자 필요 ( new 로 객체 생성할때와 마찬가지 규칙 ) 2. Bean 가져다 쓰기 ApplicationContext fac = new ClassPathXmlApplicationContext( "패키지..

Back to the Spring 2022.08.18

Dependency Injection => Inversion Of Control

Spring 하면 빠질 수 없는 특징이 Dependency Injection 이다. [[ DI ]] : Spring 프로그래밍 기법으로써, 현재 자바클래스에서 객체 생성 주도권을 없애고, Spring 의 Bean container 에서 객체 생성, 전달의 주도권을 갖는다. 이렇게 주도권이 뒤바뀌면서 Inversion Of Control 이 되는 것. 무엇이냐 도 중요하지만 왜? 가 더 중요한 것 같다. Member m1 = new Member( ); 여태 잘만 자바 클래스에서, 주도적으로다가 객체를 생성해서 편하게 사용했는데, 왜 불편하게 Bean container 라는 놈에서만 객체생성해서 사용하라는거야 그냥 쓰면 안되나? 1. Coupling - 객체를 생성한다는 건, 말 그대로 새롭게 new 하나의..

Back to the Spring 2022.08.18

[Spring] Spring MVC 의 등장

Servlet 과 JSP 의 시대였다. Servlet 가지고 로직처리하고, 특히 뷰단까지 직접 만들다보니 불편하다. 뷰단만드는거 불편해 죽는줄 알았네 차라리 뷰단에서 자바를 가져다 쓰자 => JSP 등장. 뷰단에서 자바는 최대한 조금만 사용하면서 만들어보자 불편하니? EL 을 써봐. 불편하니? JSTL을 써봐. 좋긴한데, 그래도 로직처리는 자바가 편한거 같은데? JSP 너는 뷰단 꾸미는건 기가막히네. 그럼 각각의 장점을 살려보자. Servlet은 컨트롤러, 서비스단 로직처리, 맵핑역할 전담하고 JSP는 뷰단 역할 전담하자. 이렇게 하다보니 VIEW 단과 비지니스로직단이 점차 분명히 나뉘어지게 되었고, Model : 로직을 뒤에서 열심히 처리한 최종 결과값을 Model 에 담아두고 View : 따로 이쁘게..

Back to the Spring 2022.08.18

변수 { id } 를 품은 URL

변수를 품은 URL @GetMapping("/board/ { id }/" ) => { id } @PathVariable < - 변수URL 값을 파라미터로 가져오겠다. Optional boardEntity = boardrepository . findById(id); // 입력받을 변수URL을 pk값처럼 사용 // repository . find 해서 찾은 객체를 Entity 에 넣기 ( DB에서 data 가져오는건 Repository 역할 ) 이 Entity 를 VIEW 에 뿌려주면 되는데, 그러려면 Model 이 필요함 public String show( @PathVari Long id , Mode..

Back to the Spring 2022.06.15