Server 프로그래밍 패턴 - MVC 패턴
Model - Dto, Service -> Model 객체
View - JSP, Thymeleaf(기본)
Controller
spring boot 프로젝트(JSP)
프로젝트 생성
New Project
1. Name : 프로젝트 명
2. Builder Type : Maven
3. Group : com.raspberry
4. Packaging : War
> Next (라이브러리 설정)
Lombok, Spring Web
> Create
추가 라이브러리(pom.xml)
* 복사 붙여넣기 후 아이콘 눌러서 설치하기
1. tomcat-embed-jasper
2. jstl
JSP : View (HTML + JAVA) - Java Server Page
Java로 웹 프로그래밍을 하기위한 방식
빌더(Builder)
자바코드를 기계어로 변환(컴파일)하고, 프로젝트 실행에 필요한 라이브러리를 포함시켜
최종적으로 프로그램을 완성하시키는 도구
1) Maven - pom.xml에 라이브러리를 설정
2) Gradle - .xxx.gradle에 라이르러리 설정
JSP 설정(기본이 아니기 때문에 폴더 생성해 주어야 한다.) 프리픽스(앞경로)
1. views 폴더 생성
src > main > webapp > WEB-INF > views
2. application.properties
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# 주석작성 시 사용
spring.web.resource.static-locations=classpath:static/
URL mapping - url과 controller 메소드의 연결
URL : 사용자가 서버에 접속하여 서비스를 받기 위한 주소
URL 사용 위치
1) 브라우저의 주소 입력칸
2) a 태그의 href 속성
3) form 태그의 action 속성
4) 자바스크립트의 location.href='url'
모든페이지(jsp)는 controller의 하나 이상의 메소드와 연계되어야 한다.
인터넷에서의 전송 방식 : form태그의 method 속성
1) Get 방식 : 전송하는 데이터가 주소칸에 노출됨
2) Post방식 : 전송하는 데이터를 숨김
controller에서의 방식 지정 : annotation 방식
1) @GetMapping("url") : get 방식용
2) @PostMapping("url") : post 방식용
참고) @RequestMapping(values="url", method = 방식)
한 컨트롤러 메소드에 두 url을 매핑할 수는 없다!
상황처리
0. 첫페이지 출력 : Controller를 거쳐서 처리되야 함
첫 페이지의 url : '/' (시작 경로, root url)
시작페이지로 주로 사용하는 파일명
1) index.jsp
2) default.jsp
3) home.jsp - spring에서 주로 사용
Controller 클래스 작성하기
1) 프로젝트 패키지 밑에 controller 패키지 생성
2) 자바 클래스 생성
3) 클래스 선언문 위에 '@Controller' 어노테이션 작성, spring 프레임워크에 컨트롤러 클래스를 등록
=> DI에 사용, HandlerMapping 객체에도 등록
1. 링크(a 태그)를 통한 페이지 이동
페이지(JSP) - > 페이지(JSP) : 페이지만 변경
html처럼 href에 주소를 넣어도 이동할 수 없다. 중간에 controller가 끼어 있어야 한다.
* 똑같아야 하는 것들
1) href에 들어간 문자열과 GetMapping에 들어간 문자열
<a href = "secondurl"> == @GetMapping("secondurl")
2) return 뒤의 문자열과 jsp 파일명
return "abcd"; == abcd.jsp
첫페이지로의 이동 url : '/'
<a href = "/">첫페이지</a>
2. 페이지(jsp) - [DATA] -> controller (-> 페이지)
사용자의 입력값을 서버로 전달
form 태그와 iuput 태그를 사용한 입력 처리
'공부기록 > Spring' 카테고리의 다른 글
5월 31일 Spring - thymeleaf, JPA (0) | 2023.05.31 |
---|---|
5월 10일 (1) Spring - JSP (0) | 2023.05.10 |
5월 9일 (2) Spring - 출력 (0) | 2023.05.09 |
5월 9일 (1) Spring - 데이터 전송 방식 (0) | 2023.05.09 |
5월 8일 (1) Spring이란? - Java로 spring 사용하기 (0) | 2023.05.08 |