본문 바로가기
공부기록/Spring

5월 8일 (2) Spring - Java로 spring 사용하기 html 연결

by project100 2023. 5. 8.

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 태그를 사용한 입력 처리