2018년 4월 6일 금요일

패스트 캠퍼스 JAVA 웹 프로그래밍 마스터 11일차(게시판 실습, Spring)

  • @GetMapping(path="/userform") (버전 4.3이상)
    • @RequestMapping(path="/userform", method=RequestMethod.GET) 와 같다.
  • @GetMapping("/goods/{id}") 
    • id부분은 가변적으로 사용할수 있다.
    • {id} 부분을 @PathVariable 이라 부른다.
  • http method(Rest API - WEB API(HTTPAPI))
    • GET - 정보를 요청, body정보가 전달이 안된다.
    • POST - 등록 
    • PUT - 수정 
    • DELETE - 삭제
    • 초창기 서블릿은 get, post 있었다.
  • client -----> was 에게 요청
    • 요청정보
    • GET / http1.1 : RequestMethod 방식
    • 헤더정보(파라미터, 쿠키, 브라우저정보, 언어정보, OS ....)
    • 빈줄
    • 바디
  • 컨트롤러의 메소드
    • 컨트롤러가 리턴하는 정보는 view에 대한 정보
    • String or ModelAndView 등을 리턴한다.
    • client에서 text/html 콘텐츠 타입으로 요청을 하면 InternalResourceViewResolver 사용된다.

// 컨트롤러의 메소드, 컨트롤러가 리턴하는 정보는 view에 대한 정보
// 컨트롤러의 메소드
// String or ModelAndView 메소드이름( 파라미터 )
// InternalResourceViewResolver 가 사용된다.
// http://localhost:8080/plusform (text/html 을 요청)
// /WEB-INF/views/ + lpusform(view name) + .jsp
// jsp를 객체로 삼을수 있는 객체가 있다.
@GetMapping(path = "/plusform")
public String plusform() {
 return "plusForm";
}
  • HttpServletRequest, HttpServletResponse, HttpSession 등을 파라미터에 적어주면 dispatcherservlet이 자동으로 값을 넣어주니 필요한 경우에만 사용한다.
  • @Controller의 메소드 인수 타입
    • 지원하는 타입들은 dispatcherservlet이 자동으로 넣어준다.
    • javax.servlet.http.HttpServlet등등 
  • @RequestParam
    • 클라이언트가 보내는 파라미터를 변수에 담을수 있다.
    • defaultValue 옵션을 통해 값이 없을때 기본값을 지정할 수있다.
    • 필수여부를 설정할수 있다.
  • @ModelAttribute
    • 클라이언트가 보내는 파라미터를 자바 객체로 받을수 있게 해준다.
    • 객체를 하나 만들고 set, get 메소드를 만든다.
    • 사용하려는 메소드에서 생성한 객체를 사용하고 어노테이션을 명시하면 jsp에서 'blod.name' 등으로 사용이 가능하다.

public String input(@ModelAttribute Blod blod, ModelMap modelMap){

   return "blodResult";
}

public class Blod {
    private String name;
    private String blod;
    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBlod() {
        return blod;
    }

    public void setBlod(String blod) {
        this.blod = blod;
    }

    @Override
    public String toString() {
        return "Blod{" +
                "name='" + name + '\'' +
                ", blod='" + blod + '\'' +
                ", msg='" + msg + '\'' +
                '}';
    }
}

  • @RequestHeader  
    • 요청정보중에서 헤더값을 읽을떄 사용
  • @PathVariable
    • path의 일부분을 읽어들일 때 사용
  • Spring프로젝트 실습
    • new project 를 선택후 maven프로젝트를 만든다.
    • web.xml을 설정한다.
      contextConfigLocation에 path를 설정하고 설정을 셋팅한다.
    • pom.xml을 설정한다.
    • git에 등록 안할 파일 설정하기 :프로젝트에서 오른쪽 버튼 누르고 new 에 가서 ignore목록에서 gitignore 선택후 java, maven ,jetbrain을 선택한후 generate를 누른다.
    • Controller를 만든다.
    • 게시판을 만들때는 검색 및 페이지 번호를 항상 가지고 다녀야 사용자가 불편하지 않다.
  • viewname 설정에 따른 redirect 와forward
    • 단순 view name을 리턴하면 forward 처리
    • redirect:뷰네임 으로 사용하면 redirect처리가 된다.
Share:

0 개의 댓글:

댓글 쓰기