2022. 12. 9. 15:58ㆍ[Spring]_/[Eclipse]
개요
Intellij를 사용하다가 다음 프로젝트가 Eclipse 환경으로 인해
Eclipse 에 spring 최신버전을 설치하는 과정 설명
환경
Eclipse 최신버전 2022-09 (4.25.0)
Tomcat - 10.0.23 v
maven Artifact ID : maven-archetype-webapp 1.4v
Spring 6.0.2 ver
특이사항
Spring 최신버전부터는 servlet 버전으로 인하여 tomcat version 을 10이상으로 설치하여야 합니다.
다음 포스트 참고
https://yn971106.tistory.com/161
[Eclipse]_Spring 최신 버전 servlet 오류(feat.jakarta error)
개요 Intellij를 사용하다가 다음 프로젝트가 Eclipse 만 사용가능하다 하여 환경 구현 실습 연습을 위해 가장 최신버전 채택하여 진행중 만난 오류사항 및 해결방법 설명 환경 Eclipse 최신버전 2022-09
yn971106.tistory.com
하위 포스트의 후속내용입니다.
https://yn971106.tistory.com/160
[Eclipse]_eclipse maven-web 프로젝트 생성 (feat.tomcat)
개요 Intellij를 사용하다가 다음 프로젝트가 Eclipse 만 사용가능하다 하여 새로 프로젝트 생성 도중 만난 에러사항 해결 방법 및 설치방법 설명 환경 Eclipse 최신버전 2022-09 (4.25.0) Tomcat - 9.0.62 v maven
yn971106.tistory.com
연동과정
1. pom.xml 수정
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.2</version>
</dependency>
maven기반으로 dependency를 추가해 줍니다.
webmvc 하나만 의존성을 걸어도 연관되어 있는 다른 라이브러리가 다운로드 됩니다.
2. web.xml 수정
프로젝트가 실행되면 먼저 web.xml이 읽히게 됩니다.
해당 파일에
DispatcherServlet 설정을 해줍니다.
<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/spring/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>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.view</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
- servlet-name : 서블릿 이름 지정
- contextConfigLocation : 해당 servlet dispatcher 설정 파일위치 지정
- param-value : 설정 파일 실제 위치
- servlet-mapping : servlet 이름과 같은 디스패처의 url 형식 매핑을 설정합니다.
- url pattern : / 의 경우 localhost 이후 / 의 url을 지정하는 의미입니다.
- url pattern : do , view 의 경우 추후 ajax 혹은 fetch 통신 시 controller 에 .do 나 .view 와 같은 url을 보낼때 사용하기 위해 지정합니다.
welcome-file-list : 처음 서버가 열리고 맞이하는 첫 페이지를 지정할 수 있습니다.
3. dispatcher-servlet.xml 생성 및 수정
param-value의 위치에 해당 dispatcher-servlet.xml 이라는 폴더를 생성합니다.
저의 경우 /WEB-INF/spring/ 의 경로에 생성하였습니다.
해당 파일 수정은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
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">
<context:component-scan base-package="com.yoon"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<!-- <property name="order" value="1"/> -->
<property name="contentType" value="text/html; charset=UTF-8"/>
</bean>
</beans>
- context:component-scan : 컴포넌트 스캔을 할 패키지를 지정합니다.
저는 컨트롤러를 다음과 같은 경로로 생성하였습니다.
java/com/yoon 하위의 모든 폴더를 bean으로 등록할 예정이기 때문에
base-package 를 "com.yoon" 으로 지정하였습니다.
- viewResolver : jsp 와 같은 view를 보여줄 위치를 지정합니다.
prefix : 앞의 경로 지정
suffix : 확장자와 지정
저의 경우 jsp 파일을 /WEB-INF/jsp/ 에 둘 것이기 때문에 prefix 에 해당 경로를 지정하고
파일은 jsp 파일이기 때문에 suffix 에 jsp 를 지정하였습니다.
4. Controller 생성
bean 스캔이 되는 부분에 다음과 같은 controller 생성
package com.yoon.menu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class menuController {
@RequestMapping(value="/menu1", method=RequestMethod.GET)
public String urlTest() {
System.out.println("Testhere");
return "/menu/menu1"; // JSP 경로
}
}
5. view 생성
jsp 파일 생성하여 원하는 화면을 넣으면 됩니다.
6.테스트
welcome page
controller 지정된 url 입력 화면
정상 작동을 확인 할 수 있습니다.
감사합니다.
+@ 2022-12-19 추가 작성
tomcat 10 을 설치시 servlet 버전 도 이전 javax 가 아닌
jakarta servlet 을 사용해야 합니다.
tomcat 10 의 경우 jakarta servlet 이 내장되어 있습니다.
톰캣만 빌드해서 사용시 오류가 나지 않았으나,
maven build 시 jakarta 를 받아두지 않으면 오류가 납니다.
따라서 pom.xml 에 다음과같은 jakarta 를 설치합니다.
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
'[Spring]_ > [Eclipse]' 카테고리의 다른 글
[Eclipse]_Spring Security Handler 구현 3단계 (로그인 실패 시) (0) | 2022.12.20 |
---|---|
[Spring]_Oracle 연결 & Mapper 연동 ( Error 정리) (0) | 2022.12.15 |
[eclipse]_spring_security 설치 (0) | 2022.12.12 |
[Eclipse]_Spring 최신 버전 servlet 오류(feat.jakarta error) (0) | 2022.12.09 |
[Eclipse]_eclipse maven-web 프로젝트 생성 (feat.tomcat) (0) | 2022.12.08 |