- Mac
- intelliJ
- JDK 1.8.0
1. 프로젝트 생성
생성하고 나면 다음과 같은 폴더구조를 갖습니다.
2. build.gradle 수정
build.gradle의 코드를 다음과 같이 수정합니다. (전체코드)
buildscript{
repositories {
jcenter()
}
dependencies {
classpath 'org.akhikhl.gretty:gretty:+'
}
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'
apply plugin: 'idea'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
jcenter()
}
compileJava.options.encoding = 'UTF-8'
dependencies {
compile 'org.slf4j:slf4j-api:1.7.7'
testCompile 'junit:junit:4.12'
providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
}
gretty{
httpPort = 8080
contextPath = '/'
servletContainer = 'jetty9'
}
def webappDir = "$rootDir/src/main/webapp"
idea{
module{
downloadSources = true
downloadJavadoc = false
inheritOutputDirs = false
outputDir = file("${buildDir}/classes/main")
}
}
오른쪽 상단 버튼을 눌러 빌드해줍니다.
3. initServlet 클래스 생성
src/main/java 디렉토리에 initServlet 클래스를 생성합니다
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(
name = "initServlet", urlPatterns = {"/init"},
initParams = {@WebInitParam(name = "siteName", value = "jpub")}
)
public class InitServlet extends HttpServlet{
private String myParam = "";
public void init(ServletConfig servletConfig) throws ServletException{
System.out.println("init call");
this.myParam = servletConfig.getInitParameter("siteName");
System.out.println("입력받은 사이트 명은" + myParam + "입니다.");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().println("Hello World");
}
}
4. 프로젝트 실행
터미널에서 다음 명령어로 서버를 실행합니다. (윈도우는 sh 빼고 입력)
sh gradlew appStart
브라우저에서 localhost:8080/init 으로 접속합니다.
Exception in thread "Thread-192" java.lang.IllegalStateException 에러 해결법
Exception in thread "Thread-192" java.lang.IllegalStateException: The configuration :runtimeClasspath was resolved from a thread not managed by Gradle.
다음 명령어로 gradlew wrapper 버전을 변경합니다. (윈도우는 sh 빼고 입력)
sh gradlew wrapper --gradle-version=4.10.3
reference
'개발 > Spring' 카테고리의 다른 글
[JPA] 도메인 분석 설계 및 아키텍처 (0) | 2021.09.06 |
---|---|
[JPA] SpringBoot JPA 프로젝트 설정 (0) | 2021.09.06 |
[IntelliJ] tdd 라이브 템플릿 (0) | 2021.08.24 |
[SpringBoot] 게시판 만들기 필요 클래스 및 동작 (0) | 2021.08.17 |
[Spring] intelliJ에서 Slf4j 어노테이션 오류 (0) | 2021.04.04 |
댓글