티스토리 뷰
IntelliJ. spring-webmvc + gradle + tomcat. web application 구조로 만들기
out of coding 2020. 1. 18. 13:17이전에 글을 남길때는 gradle을 선택하고 Java만 선택한 이후에 web은 선택하지 않고 프로젝트를 세팅하였습니다.
web을 선택하여서 main아래에 webapp이 노출되는 방식으로 한번 설명해 보겠습니다.
Spring에서 MVC를 선택하는 방법보다는 다소 손이 조금 더 가긴 합니다.
기존 트리 구조가 맞는 분들께는 추천 드립니다. 😀
기존 방법은 여기로...
2020/01/18 - [Web/Server] - IntelliJ IDEA. Spring MVC + gradle + tomcat
쭈욱 따라와 보세요 어렵지 않아요.
1. New Project - Java와 Web을 선택하여 줍니다.
2. 프로젝트 기본 세팅을 합니다.
3. 프로젝트가 열리고 build.gradle을 수정합니다.
plugins {
id 'java'
id 'war'
}
apply plugin: 'war'
group 'com.test'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
testCompile group: 'junit', name: 'junit', version: '4.12'
providedCompile 'javax.servlet:servlet-api:2.5'
compile 'org.springframework:spring-webmvc:5.0.6.RELEASE'
runtime 'javax.servlet:jstl:1.1.2'
}
추가된 부분은 apply와 dependencies의 아래쪽 3줄입니다.
저는 5.0.6으로 했는데 혹시라도 다른 버전을 원하시면 여기가서 찾아서 하세요
https://mvnrepository.com/artifact/org.springframework/spring-webmvc
4. 필요 파일들을 만들어 봅시다.
필요한 구조는 webapp/WEB-INF 아래에 web.xml, dispatcher-servlet.xml, applicationContext.xml이 위치하면 됩니다.
툴에서 만들던지 아니면 새로운 방법을 알려드릴게요.
Terminal을 누르시고 root폴더인 상태에서 다음을 실행합니다. 한줄씩요.
mkdir src/main/webapp/WEB-INF
touch src/main/webapp/WEB-INF/web.xml
touch src/main/webapp/WEB-INF/dispatcher-servlet.xml
touch src/main/webapp/WEB-INF/applicationContext.xml
어떻게 하시든지 이런 구조를 만드시면 됩니다.
5. index.jsp 파일을 이동한다 or 새로만들고 기존것은 삭제한다.
위치는 webapp/WEB-INF/views로 옮길겁니다.
이후에 dispatcher-servlet.xml에 설정을 그곳으로 변경을 할 것이기 때문입니다.
이렇게 까지 한거면 거의 다 한겁니다. 나머지는 기본 세팅 부분만 파일에 넣으면 되기 때문입니다.
6. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
7. dispatcher-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<mvc:annotation-driven />
<context:component-scan base-package="com.test.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
8. applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
이렇게 까지 하면 설정 파일은 모두 된겁니다. 축하합니다.
9. Controller를 만들어 봅시다.
main/java 아래에 package를 만들어 주고요. 저는 com.test.controller입니다. 왜냐면 dispatcher-servlet에 그렇게 지정을 했거든요. component-scan을 하라고요. 그 아래에 MainController를 만들었습니다.
package com.test.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MainController {
@RequestMapping(value = "/")
public String test(Model model) {
model.addAttribute("msg", "Good!!");
return "index";
}
}
URL에 /형태로 즉 아무것도 넣지 않고 넣어주게 되면 msg attribute에 Good!!이라고 넣어주는 겁니다. 그리고 페이지는 index로 열리게 되겠죠?
10. index.jsp 파일 수정
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Test</title>
</head>
<body>
${msg}
</body>
</html>
위에 Controller에서 넘겨주는 msg의 값을 그대로 찍어주기 위해서 만들어 준겁니다.
11. Project Structure에서 Artifacts를 추가하여 줍니다.
12. Tomcat 설정하고 Run.
이전글을 참조 바랍니다. 🤣
2020/01/18 - [Web/Server] - IntelliJ IDEA. Spring MVC + gradle + tomcat
소스 : https://github.com/outofcode-example/spring-web-gradle
'Backend > Server' 카테고리의 다른 글
VirtualBox에 CentOS8 설치하기 (2) | 2020.01.18 |
---|---|
IntelliJ. spring-mvc 구조를 annotation을 이용하여 만들기 (0) | 2020.01.18 |
IntelliJ IDEA. Spring MVC + gradle + tomcat (1) | 2020.01.18 |
IntelliJ IDEA CE. Spring Boot + Gradle + View (0) | 2020.01.17 |
IntelliJ IDEA CE. Spring Boot + Gradle (2) | 2020.01.17 |
- Total
- Today
- Yesterday
- Windows
- ios
- rxswift
- war
- git
- enum
- Java
- centos8
- Codable
- Kotlin
- MySQL
- cocoapods
- tomcat
- ubuntu
- go
- github
- docker
- golang
- nodejs
- android
- Xcode
- Linux
- php
- windows10
- SWIFT
- Python
- Spring
- CentOS
- intellij
- Gradle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |