Top 44 스프링 웹 사이트 만들기 The 78 Top Answers

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 스프링 웹 사이트 만들기 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.Experience-Porthcawl.com team, along with other related topics such as: 스프링 웹 사이트 만들기 스프링 부트 웹사이트 만들기, 스프링 쇼핑몰 만들기, 스프링으로 만든 사이트, 스프링 홈페이지 오픈소스, 스프링 mvc – 웹 페이지 만들기, 스프링 메인페이지 만들기, 전자정부프레임워크 홈페이지 만들기, 스프링 부트 홈페이지

설명
  1. 템플릿 엔진이 X –> HTML내에 Java코드를 삽입해서 동적 페이지를 생성하는 서버사이드 스크립트 언어
  2. Java Servlet으로 변환되어 실행 O.
  3. 배포를 위해 WAR(Web Application Archive) 타입이 사용 (JAR에 비해 무거움)

Spring MVC (스프링 웹 MVC) 강의 03 – 메이븐을 이용한 기본 웹 프로젝트 생성하기
Spring MVC (스프링 웹 MVC) 강의 03 – 메이븐을 이용한 기본 웹 프로젝트 생성하기


스프링 MVC 기본 기능 – 웹 페이지 만들기 :: 개발자 한선우

  • Article author: yadon079.github.io
  • Reviews from users: 42856 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 스프링 MVC 기본 기능 – 웹 페이지 만들기 :: 개발자 한선우 Updating …
  • Most searched keywords: Whether you are looking for 스프링 MVC 기본 기능 – 웹 페이지 만들기 :: 개발자 한선우 Updating
  • Table of Contents:

개발자 한선우

설명

문법

개요

패턴 적용

개념

적용

GitHub File

Category

Tags

Comments

SPRING 의 다른 글

스프링 MVC 기본 기능 - 웹 페이지 만들기 :: 개발자 한선우
스프링 MVC 기본 기능 – 웹 페이지 만들기 :: 개발자 한선우

Read More

02. Spring 웹 사이트 만들어보기!(feat. 스프링 MVC 하루만에 배우기)

  • Article author: velog.io
  • Reviews from users: 36947 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 02. Spring 웹 사이트 만들어보기!(feat. 스프링 MVC 하루만에 배우기) 1. 책 입력화면 만들기! 01. 책 입력 화면 개요! 책 정보를 입력하기 위한 화면을 만든다; 브라우저에서 /create 주소에 접속하면 … …
  • Most searched keywords: Whether you are looking for 02. Spring 웹 사이트 만들어보기!(feat. 스프링 MVC 하루만에 배우기) 1. 책 입력화면 만들기! 01. 책 입력 화면 개요! 책 정보를 입력하기 위한 화면을 만든다; 브라우저에서 /create 주소에 접속하면 … 책 정보를 입력하기 위한 화면을 만든다브라우저에서 /create 주소에 접속하면 책 정보를 입력할 수 있는 화면을 보여준다.브라우저를 비롯한 클라이언트의 요청을 받아서 응답을 만들어내는 컨트롤러 클래스를 생성@Controller 어노테이션 추가!@Controller 어
  • Table of Contents:

스프링MVC하루만에 끝내기!

01 책 입력 화면 개요!

02 책 컨트롤러 클래스 생성

03 책 생성 화면 컨트롤러 메소드 작성

04 책 생성 화면 뷰 생성

05 책 생성 화면 뷰 내용작성

06 책 입력화면 확인하기!

01 책 관리 데이터베이스 생성

02 책 관리 테이블 생성

03 데이터베이스 라이브러리 설정

04 데이터 소스 설정하기

02. Spring 웹 사이트 만들어보기!(feat. 스프링 MVC 하루만에 배우기)
02. Spring 웹 사이트 만들어보기!(feat. 스프링 MVC 하루만에 배우기)

Read More

[Spring] 4. 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원 정보 삭제

  • Article author: upcake.tistory.com
  • Reviews from users: 10529 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Spring] 4. 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원 정보 삭제 교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. gif 파일은 클릭해서 보는 것이 정확합니다. – 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 … …
  • Most searched keywords: Whether you are looking for [Spring] 4. 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원 정보 삭제 교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. gif 파일은 클릭해서 보는 것이 정확합니다. – 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 … https://github.com/upcake/Class_Examples 교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. gif 파일은 클릭해서 보는 것이 정확합니다.  – 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원..
  • Table of Contents:

오늘이라도

[Spring] 4 웹사이트 만들기 ③ 회원 신규 등록 회원 정보 수정 회원 정보 삭제 본문

티스토리툴바

[Spring] 4. 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원 정보 삭제
[Spring] 4. 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원 정보 삭제

Read More

스프링 웹 사이트 만들기

  • Article author: catsbi.oopy.io
  • Reviews from users: 713 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 스프링 웹 사이트 만들기 스프링 MVC- 웹 페이지 만들기 … https://github.com/catsbi/spring-mvc-shoping … 부트 스트랩은 웹사이트를 쉽게 만들 수 있도록 도와주는 HTML, CSS, … …
  • Most searched keywords: Whether you are looking for 스프링 웹 사이트 만들기 스프링 MVC- 웹 페이지 만들기 … https://github.com/catsbi/spring-mvc-shoping … 부트 스트랩은 웹사이트를 쉽게 만들 수 있도록 도와주는 HTML, CSS, …
  • Table of Contents:
스프링 웹 사이트 만들기
스프링 웹 사이트 만들기

Read More

꿈꾸는 자 :: spring mvc homepage 스프링 홈페이지 만들기 1

  • Article author: s00741.tistory.com
  • Reviews from users: 28454 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 꿈꾸는 자 :: spring mvc homepage 스프링 홈페이지 만들기 1 spring mvc homepage 스프링 홈페이지 만들기 1. 스프링을 이용하여 홈페이지를 제작해볼 예정입니다. 최대한 간단하게 필요한 결과 위주로 구성해볼 … …
  • Most searched keywords: Whether you are looking for 꿈꾸는 자 :: spring mvc homepage 스프링 홈페이지 만들기 1 spring mvc homepage 스프링 홈페이지 만들기 1. 스프링을 이용하여 홈페이지를 제작해볼 예정입니다. 최대한 간단하게 필요한 결과 위주로 구성해볼 … spring  mvc homepage  스프링 홈페이지 만들기 1 스프링을 이용하여 홈페이지를 제작해볼 예정입니다. 최대한 간단하게 필요한 결과 위주로 구성해볼 예정입니다. UI는 https://adminlte.io/themes/v3/pa..
  • Table of Contents:

spring mvc homepage 스프링 홈페이지 만들기 1

spring  mvc homepage  스프링 홈페이지 만들기 1

꿈꾸는 자 :: spring  mvc homepage  스프링 홈페이지 만들기 1
꿈꾸는 자 :: spring mvc homepage 스프링 홈페이지 만들기 1

Read More

spring boot 로 웹사이트 만들기 :: SourceBox

  • Article author: emflant.tistory.com
  • Reviews from users: 44303 ⭐ Ratings
  • Top rated: 3.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about spring boot 로 웹사이트 만들기 :: SourceBox 웹서비스를 하나 만들려고 한다. 오픈소스, 무료 서비스만 이용하고 서버운영시 과금없는 서비스를 우선 목표로 했다. 학원 운영자가 사용할 회원 … …
  • Most searched keywords: Whether you are looking for spring boot 로 웹사이트 만들기 :: SourceBox 웹서비스를 하나 만들려고 한다. 오픈소스, 무료 서비스만 이용하고 서버운영시 과금없는 서비스를 우선 목표로 했다. 학원 운영자가 사용할 회원 … 웹서비스를 하나 만들려고 한다. 오픈소스, 무료 서비스만 이용하고 서버운영시 과금없는 서비스를 우선 목표로 했다. 학원 운영자가 사용할 회원관리/일정관리/수납관리 기능을 가진 웹사이트 java 가 그나마 익..
  • Table of Contents:

spring boot – the world’s most popular Java framework

bootstrap – the world’s most popular front-end open source toolkit

mongodb

Fullcalendar – The Most Popular JavaScript Calendar

Datatables – To enhance the accessibility of data in HTML tables

flatpickr – lightweight and powerful datetime picker

chartjs – Open source HTML5 Charts for your website

TAG

spring boot 로 웹사이트 만들기 :: SourceBox
spring boot 로 웹사이트 만들기 :: SourceBox

Read More

Java and Python

  • Article author: hihaoun.tistory.com
  • Reviews from users: 38676 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Java and Python 프론트앤드 개발은 웹페이지 사용자가 직접 눈으로 보게되는 사이트의 디자인, 즉 VIEW를 만드는 … 스프링부트를 이용한 웹페이지 만들기 도전!!/ …
  • Most searched keywords: Whether you are looking for Java and Python 프론트앤드 개발은 웹페이지 사용자가 직접 눈으로 보게되는 사이트의 디자인, 즉 VIEW를 만드는 … 스프링부트를 이용한 웹페이지 만들기 도전!!/ 웹페이지의 개발은 크게 2가지로 나뉜다고 한다. 하나는 프론트앤드 개발이고 다른 하나는 백앤드 개발이다. 프론트앤드 개발은 웹페이지 사용자가 직접 눈으로 보게되는 사이트의 디자인, 즉 VIEW를 만드는 것이..파이썬,자바,딥러닝,머신러닝,pytorch
  • Table of Contents:
Java and Python
Java and Python

Read More

스프링부트+jsp로 배달사이트 만들기-01 프로젝트 생성

  • Article author: sumin2.tistory.com
  • Reviews from users: 23569 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 스프링부트+jsp로 배달사이트 만들기-01 프로젝트 생성 스프링부트+ jsp + mybatis로 배달 사이트 만드는 과정입니다. sts4, 오라클, maven을 사용합니다. 혼자서 프로젝트를 만드는 과정을 올린 것이니 … …
  • Most searched keywords: Whether you are looking for 스프링부트+jsp로 배달사이트 만들기-01 프로젝트 생성 스프링부트+ jsp + mybatis로 배달 사이트 만드는 과정입니다. sts4, 오라클, maven을 사용합니다. 혼자서 프로젝트를 만드는 과정을 올린 것이니 … 스프링부트+ jsp + mybatis로 배달 사이트 만드는 과정입니다 sts4, 오라클, maven을 사용합니다 혼자서 프로젝트를 만드는 과정을 올린 것이니 잘못된 점이나 고쳐야 할 점이 있을 경우 지적해주시면 감사하겠습..
  • Table of Contents:
스프링부트+jsp로 배달사이트 만들기-01 프로젝트 생성
스프링부트+jsp로 배달사이트 만들기-01 프로젝트 생성

Read More

[Inflearn] 스프링 MVC (8) 웹 페이지 만들기

  • Article author: stella-ul.tistory.com
  • Reviews from users: 37864 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Inflearn] 스프링 MVC (8) 웹 페이지 만들기 [Inflearn] 스프링 MVC (8) 웹 페이지 만들기. UL 🙂 2022. 3. 7. 18:18. 김영한 강사님의 ‘스프링 MVC 1편 – 백엔드 웹 개발 핵심 기술’ 강의 정리. …
  • Most searched keywords: Whether you are looking for [Inflearn] 스프링 MVC (8) 웹 페이지 만들기 [Inflearn] 스프링 MVC (8) 웹 페이지 만들기. UL 🙂 2022. 3. 7. 18:18. 김영한 강사님의 ‘스프링 MVC 1편 – 백엔드 웹 개발 핵심 기술’ 강의 정리. 백엔드 개발자를 목표로 달리고 있습니다🔥
  • Table of Contents:
[Inflearn] 스프링 MVC (8) 웹 페이지 만들기

상품 도메인

부트스트랩 적용

타임리프 사용 – 상품 목록상세등록 폼

하나의 URL로 꿩먹고 알먹고

ModelAttribute로 상품 등록 처리

Redirect – 상품수정

PRG PostRedirectGet

RedirectAttributes

[Inflearn] 스프링 MVC (8) 웹 페이지 만들기
[Inflearn] 스프링 MVC (8) 웹 페이지 만들기

Read More

스프링으로 홈페이지 만들기 #2 (프로젝트 생성 및 설정)

  • Article author: tuta.tistory.com
  • Reviews from users: 2616 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 스프링으로 홈페이지 만들기 #2 (프로젝트 생성 및 설정) 스프링으로 홈페이지 만들기 #1 (설치 및 설정) … 이클립스의 파생으로, Spring MVC 프로젝트를 개발하기 위한 여러가지 플러그인? …
  • Most searched keywords: Whether you are looking for 스프링으로 홈페이지 만들기 #2 (프로젝트 생성 및 설정) 스프링으로 홈페이지 만들기 #1 (설치 및 설정) … 이클립스의 파생으로, Spring MVC 프로젝트를 개발하기 위한 여러가지 플러그인? https://tuta.tistory.com/2 스프링으로 홈페이지 만들기 #1 (설치 및 설정) https://kuzuro.blogspot.com/search/label/%EC%8A%A4%ED%94%84%EB%A7%81%20%EA%B2%8C%EC%8B%9C%ED%8C%90%20%EB%A7%8C%EB%93%A4%EA%B8%..
  • Table of Contents:

‘Spring 웹페이지 만들기’ Related Articles

티스토리툴바

스프링으로 홈페이지 만들기 #2 (프로젝트 생성 및 설정)
스프링으로 홈페이지 만들기 #2 (프로젝트 생성 및 설정)

Read More


See more articles in the same category here: Top 74 tips update new.

02. Spring 웹 사이트 만들어보기!(feat. 스프링 MVC 하루만에 배우기)

1. 책 입력화면 만들기!

01. 책 입력 화면 개요!

책 정보를 입력하기 위한 화면을 만든다

브라우저에서 /create 주소에 접속하면 책 정보를 입력할 수 있는 화면을 보여준다.

02. 책 컨트롤러 클래스 생성

브라우저를 비롯한 클라이언트의 요청을 받아서 응답을 만들어내는 컨트롤러 클래스를 생성

@Controller 어노테이션 추가! @Controller 어노테이션이 있는 클래스는 스프링이 브라우저의 요청을 받아들이는 컨트롤러라고 인지해서 자바 빈으로 등록해서 관리

03. 책 생성 화면 컨트롤러 메소드 작성

브라우저 주소가 /create일때 실행되는 자바 컨트롤러 메소드를 작성

package sample.spring.yse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller public class BookController { @RequestMapping(value = “/create”, method = RequestMethod.GET) public ModelAndView create() { return new ModelAndView(“book/create”); } }

@RequestMapping 어노테이션은 브라우저의 요청에 실행되는 자바 메소드를 지정 value 속성은 브라우저의 주소(URL)를 지정 method 속성은 http 요청 메소들를 의미 GET 메소드는 데이터를 변경하지 않는 경우(select) Post 메소드는 데이터가 변경될 경우 사용(insert, delete, update)

이 경우 화면을 보여주는 경우는 GET을 사용

ModelAndView는 컨트롤러가 반환할 데이터를 담당하는 모델(Model)과(And)화면을 담당하는 뷰(View)의 경로를 합쳐놓은 객체 생성자에 문자열 타입 파라미터가 입력되면 뷰의 경로라고 간주

따라서 create 메소드는 브라우저에서 /create 주소가 GET방식으로 입력되었을 때 book/create 경로의 뷰를 보여준다

04. 책 생성 화면 뷰 생성

책 생성 컨트롤러에서 book/create 경로를 반환했으므로, 실제 화면을 담당하는 뷰 코드를 작성, 최종 경로는 src/main/webapp/web-inf/views/book/create.jsp

05. 책 생성 화면 뷰 내용작성

<%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> < html > < head > < title > 책 생성하기 < body > < h1 > 책 생성하기 < form method = " POST " > < p > 제목 : < input type = " text " name = " title " /> < p > 카테고리 : < input type = " text " name = " category " /> < p > 가격 : < input type = " text " name = " price " /> < p > < input type = " submit " value = " 저장 " />

뷰는 화면을 담당

웹 어플리케이션에서 화면은 웹 브라우저가 렌더링하므로 브라우저가 읽어서 해석할 수 있는 HTML로 최종 변환할 수 있도록 작성한다!

서버로 전달되는 키 : 값 쌍을 HTTP 파라미터라고 부른다

06. 책 입력화면 확인하기!

서버를 클릭하고 ctrl + alt + d를 눌러 디버깅 모드로 시작하거나 ctrl + alt + s를 눌러서 서버 모드로 시작한다

5. 데이터베이스 준비하기

01. 책 관리 데이터베이스 생성

데이터베이스 생성

CREATE database yse_spring_mvc;

데이터베이스 사용을 위한 유저 생성

CREATE user ‘yse_spring_mvc_user’@’%’IDENTIFIED BY ‘1234’;

유저에게 권한 추가

GRANT EXECUTE, SELECT, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, event, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES ON `yse_spring_mvc`.* TO ‘yse_spring_mvc_user’@’%’ WITH GRANT OPTION; FLUSH PRIVILEGES;

02. 책 관리 테이블 생성

제목, 분류, 가격

CREATE TABLE `book`( `book_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `title` VARCHAR(200) NOT NULL, `category` VARCHAR(200) NOT NULL DEFAULT ”, `price` INT NULL, `insert_date` DATETIME NOT NULL DEFAULT NOW(), PRIMARY KEY (`book_id`) ) COLLATE=’utf8mb4_general_ci’ ;

book_id는 책의 고유 번호이며 자동 번호가 설정

title은 제목이고 최대 200글자까지 저장 가능

category는 책의 분류로 RDBMS의 정규화 규칙에 의하면 테이블을 따로 분리하는것이 맞지만 예제의 단순성을 위해 단순 문자열로 저장

price는 책 가격

inser_date는 책 정보를 입력한 날짜, 데이터가 입력되면 마리아디비의 now()함수가 실행되면서 자동으로 입력

03. 데이터베이스 라이브러리 설정

스프링에서 데이터베이스에 접속하기 위해서는 추가 라이브럴리가 필요

마이바티스라는 라이브럴리를 써서 데이터베이스에 접근하는 방식을 취할것이다

메이븐 프로젝트에서 모든 라이브러리 괸리는 메이븐이 담당, 메이븐 설정 파일인 pom.xml 파일에 아래의 내용을 추가

< project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd " > < modelVersion > 4.0.0 < groupId > sample.spring < artifactId > yse < name > SampleSpringYse < packaging > war < version > 1.0.0-BUILD-SNAPSHOT < properties > < java-version > 1.8 < org.springframework-version > 5.3.6 < org.aspectj-version > 1.6.10 < org.slf4j-version > 1.6.6 < dependencies > < dependency > < groupId > org.springframework < artifactId > spring-context < version > ${org.springframework-version} < exclusions > < exclusion > < groupId > commons-logging < artifactId > commons-logging < dependency > < groupId > org.springframework < artifactId > spring-webmvc < version > ${org.springframework-version} < dependency > < groupId > org.aspectj < artifactId > aspectjrt < version > ${org.aspectj-version} < dependency > < groupId > org.slf4j < artifactId > slf4j-api < version > ${org.slf4j-version} < dependency > < groupId > org.slf4j < artifactId > jcl-over-slf4j < version > ${org.slf4j-version} < scope > runtime < dependency > < groupId > org.slf4j < artifactId > slf4j-log4j12 < version > ${org.slf4j-version} < scope > runtime < dependency > < groupId > log4j < artifactId > log4j < version > 1.2.15 < exclusions > < exclusion > < groupId > javax.mail < artifactId > mail < exclusion > < groupId > javax.jms < artifactId > jms < exclusion > < groupId > com.sun.jdmk < artifactId > jmxtools < exclusion > < groupId > com.sun.jmx < artifactId > jmxri < scope > runtime < dependency > < groupId > javax.inject < artifactId > javax.inject < version > 1 < dependency > < groupId > javax.servlet < artifactId > servlet-api < version > 2.5 < scope > provided < dependency > < groupId > javax.servlet.jsp < artifactId > jsp-api < version > 2.1 < scope > provided < dependency > < groupId > javax.servlet < artifactId > jstl < version > 1.2 < dependency > < groupId > junit < artifactId > junit < version > 4.7 < scope > test < dependency > < groupId > org.mybatis < artifactId > mybatis < version > 3.5.4 < dependency > < groupId > org.mybatis < artifactId > mybatis-spring < version > 2.0.4 < dependency > < groupId > org.springframework < artifactId > spring-jdbc < version > ${org.springframework-version} < dependency > < groupId > org.apache.commons < artifactId > commons-dbcp2 < version > 2.7.0 < dependency > < groupId > org.bgee.log4jdbc-log4j2 < artifactId > log4jdbc-log4j2-jdbc4 < version > 1.16 < dependency > < groupId > mysql < artifactId > mysql-connector-java < version > 8.0.19 < build > < plugins > < plugin > < artifactId > maven-eclipse-plugin < version > 2.9 < configuration > < additionalProjectnatures > < projectnature > org.springframework.ide.eclipse.core.springnature < additionalBuildcommands > < buildcommand > org.springframework.ide.eclipse.core.springbuilder < downloadSources > true < downloadJavadocs > true < plugin > < groupId > org.apache.maven.plugins < artifactId > maven-compiler-plugin < version > 2.5.1 < configuration > < source > 1.6 < target > 1.6 < compilerArgument > -Xlint:all < showWarnings > true < showDeprecation > true < plugin > < groupId > org.codehaus.mojo < artifactId > exec-maven-plugin < version > 1.2.1 < configuration > < mainClass > org.test.int1.Main

mybatis는 XML로 쿼리를 작성하게 해주는 라이브러리다, 쿼리를 문자열로 코딩하지 않고 XML을 사용해서 관리하게 해준다

mybatis-spring은 스프링과 mybatis를 연동하게 해주는 라이브러리다

jdbc는 자바에서 데이터베이스에 접속하기 위한 API다, spring-jdbc는 스프링에서 jdbc(java database connectivity)를 통해 데이터베이스와 연결할수 있게 해준다

dbcp2는 데이터베이스 커넥션 풀(database connection pool)이다, 데이터베이스 서버와 웹 서버는 서로 다른 프로그램이고, 실무에서는 전혀 다른 컴퓨터에 설치되어 있을 가능성이 높다, 서로 다른 컴퓨터와 프로그램이 통신을 하기 위해서는 서로 연결을 맺는 과정이 필요한데, 이 시간이나 네트워크 비용이 꽤 비싼 편이다, 따라서 미리 데이터베이스와 연동하기 위한 길을 만들어놓는 라이브러리가 dbcp2이다, 최근에는 커넥션 풀로 dbcp2 대신 hikaricp를 자주 사용하기도 한다

log4jdbc-log44j2-jdbc4는 로깅을 위한 라이브러리다, 데이터베이스에 연동하는 쿼리를 콘솔이나 파일 로그로 볼 수 있게 해준다

mysql은 mysql 데이터베이스 연동라이브러이다, mariaDB도 같은 드라이버를 사용하욘다

pom.xml을 수정후에는 메이븐 빌드를 꼭 해야한다!

만역에 fail이 되면 프로젝트 클린을 해준 후 다시 빌드해준다(이클립스->project->clean)

04. 데이터 소스 설정하기

데이터베잇에 접속하기 위한 정보를 설정한다

외부 연동 관련정보는 context에서 설정

< bean id = " dataSource " class = " org.apache.commons.dbcp2.BasicDataSource " destroy-method = " close " > < property name = " driverClassName " value = " com.mysql.cj.jdbc.Driver " /> < property name = " url " value = " jdbc:mysql://localhost:3306/yse_spring_mvc?serverTimezone=UTC & useSSL=false & useUnicode=true & characterEncoding=UTF-8 " /> < property name = " username " value = " yse_spring_mvc_user " /> < property name = " password " value = " 1234 " /> < bean id = " sqlSessionFactory " class = " org.mybatis.spring.SqlSessionFactoryBean " > < property name = " dataSource " ref = " dataSource " /> < property name = " mapperLocations " value = " classpath:/sqlmap/**/*_SQL.xml " /> < bean id = " sqlSessionTemplate " class = " org.mybatis.spring.SqlSessionTemplate " > < constructor-arg index = " 0 " ref = " sqlSessionFactory " />

[Spring] 4. 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원 정보 삭제

반응형

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다.

gif 파일은 클릭해서 보는 것이 정확합니다.

– 웹사이트 만들기 ③ : 회원 신규 등록, 회원 정보 수정, 회원 정보 삭제 –

▲회원 신규 등록 작동 화면

▲회원 정보 수정 작동 화면

▲회원 정보 삭제 작동 화면

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> new JSP

신규 고객

성명
성별
이메일
전화번호

▲new.jsp

@charset “UTF-8”; @import url(‘https://fonts.googleapis.com/css2?family=Noto+Sans+KR&display=swap’); body { margin: 0 auto; text-align: center; font-size: 16px; font-family: ‘Noto Sans KR’, sans-serif; } a:link, a:visited { text-decoration: none; color: #000; } #content { padding: 20px 0; min-width: 1024px; /* 창의 최소 크기 지정 */ } img { vertical-align: middle; /* 세로축 가운데 정렬 */ } table { width: 80%; margin: 0 auto; border: 1px solid; border-collapse: collapse; /* 테두리 겹침 설정 collapse: 겹치지 않게 처리 */ } table th, table td { border: 1px solid; padding: 5px 10px; } table td a:hover { font-weight: bold; } .btnSet { margin-top: 20px; } a.btn-fill, a.btn-empty { text-align: center; padding: 3px 10px; border:1px solid #3367d6; border-radius: 3px; box-shadow: 2px 2px 3px #022d72; /* 오른쪽, 아래쪽, 번진 정도 */ } a.btn-fill { background-color: #3367d6; color: #fff; } a.btn-empty { background-color: #fff; color: #3367d6 } .btnSet a:not(:first-child) { margin-left: 3px; } a:hover { cursor:pointer; } input { height: 22px; padding: 3px 5px; font-size: 15px; } input[type=radio] { width: 18px; margin: 0 5px 3px; vertical-align: middle; } table tr td label:not(:last-child) { margin-right: 20px; } .w-pct60 { width: 60% } .w-pct70 { width: 70% } .w-pct80 { width: 80% } .w-px40 { width: 40px } .w-px60 { width: 60px } .w-px80 { width: 80px } .w-px100 { width: 100px } .w-px120 { width: 120px } .w-px140 { width: 140px } .w-px160 { width: 160px } .w-px180 { width: 180px } .w-px200 { width: 200px }

▲common.css

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core" %> list JSP

고객 목록

번호 고객명 전화번호
${vo.no } ${vo.name } ${vo.phone }

▲list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core" %>

▲header.jsp

package com.hanul.iot; import java.util.List; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import customer.CustomerServiceImpl; import customer.CustomerVO; @Controller public class CustomerController { @Autowired private CustomerServiceImpl service; //컨트롤러 – 서비스 – DAO – 맵퍼 순으로 연결된다. //고객 관리 목록 화면 @RequestMapping(“/list.cu”) public String list(HttpSession session, Model model) { //서블릿에서는 request에서 getsession으로 세션을 가져왔다면, //스프링에서는 바로 세션에 접근할 수 있게 HttpSession을 지원한다. //category 어트리뷰트의 값에 따라 active 속성을 결정한다. session.setAttribute(“category”, “cu”); //카테고리 어트리뷰트에 cu를 설정 List list = service.customer_list(); model.addAttribute(“list”, list); return “customer/list”; } //고객 상세 화면 요청 @RequestMapping(“/detail.cu”) public String detail(int id, Model model) { //선택한 고객 정보를 DB에 조회해와서 CustomerVO vo = service.customer_detail(id); //화면에 출력할 수 있도록 Model에 담는다. //원래는 string타입으로 담겨야하지만 스프링에서는 자동으로 형변환이 되서 int타입으로 담긴다. model.addAttribute(“vo”, vo); return “customer/detail”; } //신규 고객 등록 화면 요청 @RequestMapping(“/new.cu”) public String customer() { return “customer/new”; } //20/07/02==================================================== //신규 고객 등록 처리 요청 @RequestMapping(“/insert.cu”) public String insert(CustomerVO vo) { //화면에서 입력한 정보를 DB에 저장한 후 service.customer_insert(vo); //목록 화면으로 연결 return “redirect:list.cu”; } //고객 정보 수정 화면 요청 @RequestMapping(“/modify.cu”) public String modify(int id, Model model) { //선택한 고객의 정보를 DB에서 조회해온 후 //수정 화면에 출력할 수 있도록 Model에 담는다 model.addAttribute(“vo”, service.customer_detail(id)); return “customer/modify”; } //고객 정보 수정 저장 처리 요청 @RequestMapping(“/update.cu”) public String update(CustomerVO vo) { //화면에서 수정 입력한 정보를 DB에 저장한 후 service.customer_update(vo); //화면으로 연결 return “redirect:detail.cu?id=” + vo.getId(); } //고객 정보 삭제 처리 요청 @RequestMapping(“/delete.cu”) public String delete(int id) { //선택한 고객 정보를 DB에서 삭제한 후 service.customer_delete(id); //목록 화면으로 연결 return “redirect:list.cu”; } }

▲CustomerController.java

package customer; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service //서비스 역할을 하는 클래스를 객체로 만들어둘때 사용 public class CustomerServiceImpl implements CustomerService { @Autowired private CustomDAO dao; @Override public void customer_insert(CustomerVO vo) { dao.customer_insert(vo); } @Override public List customer_list() { return dao.customer_list(); } @Override public CustomerVO customer_detail(int id) { return dao.customer_detail(id); } @Override public void customer_update(CustomerVO vo) { dao.customer_update(vo); } @Override public void customer_delete(int id) { dao.customer_delete(id); } }

▲CustomerServiceImpl.java

package customer; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; //어노테이션은 클래스를 객체로 생성하는 역할을 해줌 //@Component는 다용도, 특정역할이 있으면 역할군에 맞는 어노테이션을 사용한다. @Repository //저장소 역할을 하는 클래스를 객체로 만들때 사용 public class CustomDAO implements CustomerService { @Autowired private SqlSession sql; //SqlSession : PreparedStatement와 표현 방법이 다를뿐 같은 기능을 한다. //Autowired : 메모리에 올려둔 주소들이 자동으로 연결 됨 @Override public void customer_insert(CustomerVO vo) { sql.insert(“customer.mapper.insert”, vo); } @Override public List customer_list() { //customer.mapper라는 맵퍼에서 id가 list인 곳을 찾는다 return sql.selectList(“customer.mapper.list”); } @Override public CustomerVO customer_detail(int id) { return sql.selectOne(“customer.mapper.detail”, id); } @Override public void customer_update(CustomerVO vo) { sql.update(“customer.mapper.update”, vo); } @Override public void customer_delete(int id) { sql.delete(“customer.mapper.delete”, id); } }

▲CustomDAO.java

INSERT INTO customer(name, gender, email, phone) VALUES (#{name }, #{gender }, #{email }, #{phone }) UPDATE customer SET gender=#{gender }, email=#{email }, phone=#{phone } WHERE id=#{id } DELETE FROM customer WHERE id=#{id }

▲customer-mapper.xml

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> detail JSP

[ ${vo.name } ]고객 정보

성별 ${vo.gender }
이메일 ${vo.email }
전화번호 ${vo.phone }

▲detail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> modify JSP

[ ${vo.name } ]고객 정보 수정

성별
이메일
전화번호

▲modify.jsp

–테이블 생성 CREATE TABLE customer ( id NUMBER CONSTRAINT customer_id_pk PRIMARY KEY, name VARCHAR2(50) NOT NULL, gender VARCHAR2(3) NOT NULL, email VARCHAR2(50), phone VARCHAR2(13) ); –시퀀스 생성 CREATE SEQUENCE seq_customer START WITH 1 INCREMENT BY 1; –레코드 삽입 INSERT INTO customer(id, name, gender) VALUES (seq_customer.NEXTVAL, ‘홍길동’, ‘남’); INSERT INTO customer(name, gender) VALUES (‘심청’, ‘여’); –트리거(trigger) 설정 CREATE OR REPLACE TRIGGER trg_customer BEFORE INSERT ON customer –커스터머 테이블에 인서트가 되기전에 FOR EACH ROW –모든 행에 대하여 BEGIN –시작한다 SELECT seq_customer.NEXTVAL INTO :new.id FROM dual; –시퀀스의 데이터를 담고있는 테이블은 없으므로 더미 테이블(dual)에서 조회한다. END; / –끝 슬래쉬까지 써줘야한다 drop trigger trg_customer; CREATE OR REPLACE TRIGGER trg_customer BEFORE INSERT ON customer FOR EACH ROW BEGIN SELECT seq_customer.NEXTVAL INTO :new.id FROM dual; END; / –조회 SELECT * FROM customer; –커밋 COMMIT; –20/07/02================================================================== –회원 관리 테이블 CREATE TABLE member( irum VARCHAR2(20) NOT NULL, id VARCHAR2(20) CONSTRAINT member_id_pk PRIMARY KEY, pw VARCHAR2(20) NOT NULL, age NUMBER, gender VARCHAR2(3) NOT NULL, birth DATE, post VARCHAR2(7), addr VARCHAR2(50), email VARCHAR2(50) NOT NULL, –유니크가 들어간다 생각하고 NOT NULL만 지정 tel VARCHAR2(20), admin VARCHAR2(1) DEFAULT ‘N’ ); –기존에 있던 member 테이블 수정 ALTER TABLE member ADD( gender VARCHAR2(3) DEFAULT ‘남’ NOT NULL, birth DATE, post VARCHAR2(7), email VARCHAR2(50), admin VARCHAR2(1) default ‘N’ ); UPDATE MEMBER SET email = id || ‘@naver.com’; ALTER TABLE member MODIFY (irum NOT NULL, pw NOT NULL, email NOT NULL); ALTER TABLE member RENAME COLUMN irum TO name; ALTER TABLE member ADD CONSTRAINT member_id_pk PRIMARY KEY(id); –관리자 회원 정보 저장 INSERT INTO member(name, id, pw, age, gender, email, admin) VALUES (‘관리자’, ‘admin’, ‘1234’, 25, ‘남’, ‘[email protected]’, ‘Y’); SELECT * FROM member;

▲table.sql

반응형

스프링 MVC- 웹 페이지 만들기

< html xmlns: th = " http://www.thymeleaf.org " > < head > < meta charset = " utf-8 " > < link th: href = " @{/css/bootstrap.min.css} " href = " /css/bootstrap.min.css " rel = " stylesheet " > < style > .container { max-width : 560px ; } < body > < div class = " container " > < div class = " py-5 text-center " > < h2 > 상품 상세 < h2 th: if = " ${param.status} " th: text = " ' 저장 완료 ' " > < div > < label for = " itemId " > 상품 ID < input type = " text " id = " itemId " name = " itemId " class = " form-control " value = " 1 " th: value = " ${item.id} " readonly > < div > < label for = " itemName " > 상품명 < input type = " text " id = " itemName " name = " itemName " class = " form-control " value = " 상품A " th: value = " ${item.itemName} " readonly > < div > < label for = " price " > 가격 < input type = " text " id = " price " name = " price " class = " form-control " value = " 10000 " th: value = " ${item.price} " readonly > < div > < label for = " quantity " > 수량 < input type = " text " id = " quantity " name = " quantity " class = " form-control " value = " 10 " th: value = " ${item.quantity} " readonly > < hr class = " my-4 " > < div class = " row " > < div class = " col " > < button class = " w-100 btn btn-primary btn-lg " onclick = " location . href = 'editForm.html' " th: onclick = " |location.href= ' @{/basic/items/{itemId}/edit(itemId=${item.id})} ' | " type = " button " > 상품 수정 < div class = " col " > < button class = " w-100 btn btn-secondary btn-lg " onclick = " location . href = 'items.html' " th: onclick = " |location.href= ' @{/basic/items} ' | " type = " button " > 목록으로

HTML

So you have finished reading the 스프링 웹 사이트 만들기 topic article, if you find this article useful, please share it. Thank you very much. See more: 스프링 부트 웹사이트 만들기, 스프링 쇼핑몰 만들기, 스프링으로 만든 사이트, 스프링 홈페이지 오픈소스, 스프링 mvc – 웹 페이지 만들기, 스프링 메인페이지 만들기, 전자정부프레임워크 홈페이지 만들기, 스프링 부트 홈페이지

Leave a Comment