본문 바로가기
Spring

웹 spring boot 프로젝트 ( JSP View, DB 연동 )

by doriver 2022. 9. 14.

프로그램 다운로드

STS(Spring Tool Suite) 다운로드
JDK 15버전 다운로드

 

STS

플러그인 설치 - Eclipse Enterprise Java and Web Developer Tools ( jsp쓰기 위해 )
글자 인코딩 설정 - UTF-8로
프로젝트 만들기 - Spring Starter Project (gradle, 필요한 Dependencies 설정)

https://dorivertt.tistory.com/144?category=1016826 

 

Spring Web (Spring Starter Project Dependencies )

STS4에서 Spring Starter Project ( gradle ) 를 생성할때 Dependencies를 하나도 추가 안한것과 , Spring Web만 추가한것 두개의 프로젝트를 관찰함 STS4의 Boot Dashboard에서 프로젝트들을 Start했을때 Spring..

dorivertt.tistory.com

 

웹브라우저에 글자 띄우기

위와 같은 과정을 거쳐 Spring Starter Project를 만든후

@Controller를 달고있는 클래스를 아래와 같이 만든다

DB설정 에러를 잡기 위해 MemoMiniApplication.java에서 클래스명 위에 아래코드(어노테이션) 추가

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})   :  디비 연동전에 임시로 넣는 코드

Boot Dashboard 쪽 local에 해당 프로젝트 클릭하고 start 시킴(서버를 킴)

웹 브라우저 주소창에 http://localhost:8080/hello 를 입력

 

 

JSP View 연동하기

1. build.gradle에 dependency 추가

implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl:1.2'


2. jsp담을 폴더 만들기

톰캣 기반 웹 어플리케이션은 WEB-INF 아래 위치시키면 URL로 직접 접근을 막는다.(보안!)
src/main/webapp/WEB-INF/jsp/test/hello.jsp

 

 

3. application.properties에 코드 추가

( String경로 view찾을때, 경로의 시작과 끝부분 )

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

 

4. 컨트롤러와 메소드 만들기

@Controller만 붙은 클래스의 메소드에서 String을 리턴하면 String 경로의 view를 찾는다.

 

 

5. 요청해보기

웹 브라우저 주소창에 http://localhost:8080/jspp 입력

 

EL(Expression Language)

JSP에서 변수값을 사용하기 위한 문법
<%= value %>이 문법 대신 ${value} 형태로 사용한다.

JSTL(Jsp Standard Tag Library)

if문, foreach문 등의 제어문과 그 밖에 유용한 기능을 태그로 사용할 수 있도록 만든 라이브러리
JSTL을 사용하기 위해서는 jsp 상단에 태그를 포함시켜야 한다.

라이브러리 명 접두어 주요기능 uri
core c 변수 지원, 제어문, 페이지 관련 처리 http://java.sun.com/jsp/jstl/core
fmt (포메팅) fmt 포맷 처리, 국제화 지원 http://java.sun.com/jsp/jstl/fmt
functions (함수) fn collection 처리, String 처리 http://java.sun.com/jsp/jstl/fuctions

 

DB연동하기

1. DB설정용 클래스 만들기

2. 쿼리가 들어갈 mapper 위치

src/main/resources 밑에 mappers package를 만들고 *Mapper.xml로 지어 사용한다.

3. application.properties에 코드추가

( 접근할 db의 url +아이디 + 비번, db접근 도와주는 드라이버 )

 

4. DB에 있는거 웹브라우저에 뿌려보기

( controller, bo, dao, mapper, model )

mysql에 있는 db

mysql로 날릴 쿼리와 , 데이터를 담을 클래스 , 데이터를 전달해주는 DAO

mapper namespace: 명시된 인터페이스와 xml을 매핑한다.
id: mapper namespace에 명시된 인터페이스의 메소드명과 일치하는 쿼리가 수행된다.

parameterType: 쿼리를 동적으로 구성하기 위한 데이터의 타입(자료형 또는 객체)
resultType: 쿼리 수행 후 결과의 타입(자료형 또는 객체)

 

브라우저의 요청을 받고 Controller 데이터를 전달하는 , 비지니스 로직을 구성하는 BO

웹 브라우저 주소창에 입력했을때의 결과