ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ MVC02 / Controller ] BoardController.java
    Spring 2022. 7. 22. 08:11
    package com.smhrd.web;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.omg.CORBA.Request;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.smhrd.domain.Board;
    import com.smhrd.mapper.BoardMapper;
    
    // annotation
    // pojo임을 알 수 있도록 인지 시켜줌
    @Controller
    public class BoardController {
    
    	// IOC : Inversion Of Controll (제어 역전)
    	// 우리가 xml에 적어두면, Spring이 알아서 객체 생성, 사용을 한다.
    	
    	// DI : Dependency Injection (의존성 주입) 지금은 BoardController가 BoardMapper에 의존하고 있음
    	@Autowired //self service
    	BoardMapper mapper;
    	
    	@RequestMapping("/")
    	public String base() {
    		return "base";
    	}
    	
    	@RequestMapping("/boardList.do")
    	
    	public @ResponseBody List<Board> boardList() {
    		// 일반적인 Controller를 만들면 forward 이동 void로 지정을 해주면 그렇게 된다.
    		// @ResponseBody 라는 Annotation을 붙혀주게 되면 페이지 이동을 하지 않게 된다.
    		
    		// DB에서 게시글 목록 꺼내오기
    		List<Board> list = mapper.boardList();
    		
    		// ajax에서 사용하는 데이터 포맷(xml, csv, json)
    		// xml : html처럼 태그와 속성을 이용해서 데이터를 저장하는 방식   / 단점은 필요없는 데이터도 가져오기 때문에 파일 크기가 크다. / 다른 파일도 다운로드를 해야 사용이 가능하다.
    		// csv : 데이터의 크기 자체가 많이 줄어듬 comma(,)로만 데이터 구분 하기 때문이다. 가독성이 많이 떨어짐
    		// json : xml과 csv의 장점을 섞은 느낌   크기 ->   xml > json > csv   가독성 ->  json > xml > csv
    		// 	 	  javascript의 객체 형식으로 데이터 저장
    		// 		  java, python, javascript에서 쉽게 사용이 가능  자바에서는 library를 사용해야 되서 조금 귀찮음
    		
    		// Spring에서의 응답은 @responseBody만 annotation을 붙혀주게 된다면
    		// return한내용이 out.print처럼 그대로 내용이담긴다.
    		// jsp/Servlet에서의 응답 --> out.print("응답할 내용");
    		
    		return list;
    	}
    	
    	@RequestMapping("/boardUpdate2.do")
    	public @ResponseBody void boardUpdate2(Board vo) {
    		mapper.boardUpdate2(vo);
    	}
    }

    'Spring' 카테고리의 다른 글

    [ MVC02 / Mapper ] BoardMapper  (0) 2022.07.22
    [ MVC02 / Domain ] SQL.sql  (0) 2022.07.22
    [ MVC02 / Domain ] BoardVO.java  (0) 2022.07.22
    [ MVC02 / JS ] Board.js  (0) 2022.07.22
    [ MVC02 / View ] Base.jsp  (0) 2022.07.22

    댓글

Designed by Tistory.