Cute Blinking Unicorn

백엔드/스프링부트

jsp, 스프링부트 간단한 게시판 만들기

민밥통 2023. 12. 27. 11:20

Ex14_SimpleBBS.zip
0.07MB

 

 

 

프로젝트를 스프링부트로 만들고 

MariaDB에서 테이블을 생성하기

CREATE TABLE simple_bbs (
   id INT auto_increment PRIMARY KEY,
   writer VARCHAR(100) CHARACTER SET UTF8MB4,
   title VARCHAR(100) CHARACTER SET UTF8MB4,
   content VARCHAR(100) CHARACTER SET UTF8MB4
);

여기서

" CHARACTER SET utf8mb4"

은 mariaDB에서 한글이 지원되지 않기 때문에 테이블 만들때 뒤에 이거를 넣으면 한글 입력이 된다.

 

의존성 선택시 MariaDB 체크해야함

위의 압축파일을 통해서 buid.gradle, application.properties 넣기


buid.gradle

plugins {
	id 'java'
	id 'war'
	id 'org.springframework.boot' version '3.2.1'
	id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.study'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
   implementation 'org.springframework.boot:spring-boot-starter-jdbc'
   implementation 'org.springframework.boot:spring-boot-starter-web'
   compileOnly 'org.projectlombok:lombok'
   runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
   annotationProcessor 'org.projectlombok:lombok'
   providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
   testImplementation 'org.springframework.boot:spring-boot-starter-test'
   implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
    implementation 'jakarta.servlet:jakarta.servlet-api'                //스프링부트 3.0 이상
    implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'    //스프링부트 3.0 이상
    implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'  
}

tasks.named('test') {
	useJUnitPlatform()
}

application.properties

mariaDB 입력방식 (포트번호 주의 3306으로 되어있을 것 평소부분) 

server.port=8081
# JSP
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

#MariaDB
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3307/gurodb
spring.datasource.username=root
spring.datasource.password=1234

이빨간 엑스모양은 나도 모르겠음. 그래서 인터넷에 검색해서 해본 결과 > 톰캣으로 실행이 안돼서 그런다는데,

그렇게해도 안되는 사람도 있음. 

나는 이번에 했는데 엑스가 안없어짐 ㅠ 없어질 사람은 없어지더라!!

https://velog.io/@maxine45/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-was-not-found-on-the-Java-Build-Path-%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9-%EC%9B%B9-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%97%90%EB%9F%AC

 

[이클립스] was not found on the Java Build Path 다이나믹 웹 프로젝트 에러

hoho

velog.io


MyController.java

package com.study.springboot;

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 com.study.springboot.dao.ISimpleBbsDao;

import jakarta.servlet.http.HttpServletRequest;

@Controller
public class MyController {

    @Autowired
    ISimpleBbsDao dao;

    @RequestMapping("/")
    public String root() throws Exception{
        // JdbcTemplate : SimpleBBS
        return "redirect:list";
    }

    @RequestMapping("/list")
    public String userlistPage(Model model) {
        model.addAttribute("list", dao.listDao());
        return "list";
    }

    @RequestMapping("/view")
    public String view(HttpServletRequest request, Model model) {
        String sId = request.getParameter("id");
        model.addAttribute("dto", dao.viewDao(sId));
        return "view";
    }
    
    @RequestMapping("/writeForm")
    public String writeForm() {
        
        return "writeForm";
    }
    
    @RequestMapping("/write")
    public String write(Model model, HttpServletRequest request) {
        dao.writeDao(request.getParameter("writer"),
                     request.getParameter("title"),
                     request.getParameter("content"));
        return "redirect:list";
    }
    
    @RequestMapping("/delete")
    public String delete(HttpServletRequest request, Model model) {
        dao.deleteDao(request.getParameter("id"));
        return "redirect:list";
    }

}

처음에 서블릿 뭐시기 때문에 x가 떴는데 

HttpServletRequest 이부분을 컨+쉬+O import 시키니까 x가 사라짐.

왠지를 알아야할 것 같은데 일단.. pass....... 


요정도 수정하고나시 게시판이 만들어졌따,

좀 많이 만들어보면서 익숙해져야할 것 같다.