2018년 3월 30일 금요일

패스트 캠퍼스 JAVA 웹 프로그래밍 마스터 7일차(JSP, MVC, Redirect, forward)

  • Session
    • 브라우저마다 세션아이디를 생성하고 HttpSession를 생성한다.
  • Http get
    • get방식은 key=value
    • get방식으로 요청하면 주소뒤에 ?name=값 형태로 붙어서 요청한다.
    • 파라미터가 없으면 null이 반환된다.
  • Jsp Ecriptlets
    • 주소 요청이 오면 jsp가 있는지 없는지 검사한다. 
    • HttpJspBase를 상속받는다.
    • jsp 파일이 있다면 .java파일로 변경하고 _jspService()메소드에서 out.write()메소드로 사용자가 작성한 내용을 출력한다.
    • jsp파일에서 out.write()메소드를 사용하여 실행하면 화면에 출력된다. 그 이유는 JSP파일에서 내장객체로 out을 가지고 있기 때문이다.
    • 소스를 보고 싶으면 쉘에서 find / -name index_jsp.java 명령어로 위치를 찾아서 vi 명령어로 본다. 예를들면 다음과 같은 경로에 파일이 있다.(/Users/mac/Library/Caches/IntelliJIdea2017.2/tomcat/Tomcat_8_0_33_FastCampusJavaWebMaster_3/work/Catalina/localhost/ROOT/org/apache/jsp/index_jsp.java)
    • HTML + JAVA 로직이 섞여있어서 개발 후 유지보수 할때 불편한 점이 있다.
    • <%@ 지시문 %>  , <% 자바코드  %>로 사용 가능하다.
    • EL문을 사용할수 있다.
    • taglib는 태그라이브러리를 사용할수 있다. WAS는 태그라이브러리 설정이 있는지 확인한다. classpath에서 taglib에 적혀있는 uri가 있는지 확인한다. 
    • 만약에 jstl taglib를 사용하려면 maven dependency에 'jstl'을 추가하고 jsp에서 taglib jstl 지시문을 설정한다.
  • MVC1
    • JSP <-> CLASS <-> DB 와 같은 구조가 MVC1구조다.
    • 단점은  JSP가 가지고 있는 단점이다.
  • MVC2
    • 서블릿(로직) -> CLASS -> DB 호출후 결과를 JSP에게 넘기고 JSP에서는 JSTL, EL문만 사용해서 개발한다.(Forward방식으로 전달한다.
  • Redirect
    • 1. 브라우저는 서버에 요청을 한다.
      2. Redirect가 되어있으면  Status Code : 302, location: 주소값 을 반환한다.
      3. 브라우저는 302코드 받았으면 자동으로 서버에 location에 적혀있는 주소로 요청한다.
      4. 서버가 응답한다.



  • Forward
    • 포워딩할때는 path가 반드시 '/' 로 시작한다. 
    • 포워딩 대상에 값을 전달하려면 request가 가지고 있는 setAttribute메소드를 이용하면 된다.
    • JSP에서 setAttribue한 값을 출력할수 있다.


  • 실습
    • 서블릿 게시판, 상세 보기, 페이징 처리 만들기

Share:

0 개의 댓글:

댓글 쓰기