https://docs.spring.io/sts/nan/v3912/NewAndNoteworthy.html
STS 3버전으로 하겠습니다.
설치를 하고 워크스페이스를 잡아주고 실행합니다.
그리고 다이나믹웹프로젝트로 만들어서 만들어준다.
프로젝트에서 오른쪽 클릭후 Convert to Maven Project 나오는 창에서 바로 Finish하면 Pom.xml이 생기는걸 확인할수 있다.
다시 Generate Deployment Descriptor Stub를 눌러주면 WEB-INF에 web.xml이 생성된걸 확인할수있다.
5.1.5 버전을 쓰도록 하겠습니다. 아래 코드부분을 복사해서 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Sample01</groupId>
<artifactId>Sample01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
</dependencies>
</project>
다음은 web.xml 셋팅입니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<display-name>Sample01</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 스프링에서 쓸 xml 을 맵핑시켜준다. -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/dispatcherServlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 한글설정 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
WEB-INF 폴더안에 각각 뷰스랑 스프링폴더를 만들어준다.
그후 스프링폴더에서 마우스 오른쪽 뉴 아더로 들어가서 스프링 빈 콘피그레이션 파일을 눌러주고 dispatcherServlet 으로 만들어주도록 하자
네임스페이스로 들어가서 context 와 mvc를 클릭해주면 된다.
소스로 가서 다음과 같이 설정 합니다.
<?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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
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-4.3.xsd">
<!-- spring MVC annotation(주석문)을 활성화 하기 위한 설정 -->
<context:annotation-config/>
<!-- viewResolver 설정(사용자 view의 위치, 확장자명 설정) -->
<!-- InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/> <!-- 경로 -->
<property name="suffix" value=".jsp"/><!-- 확장자명 -->
</bean>
<!-- 자바 공통 패키지 등록 -->
<context:component-scan base-package="bit.com.a"/>
</beans>
그리고 자바 리소스에서 이제 패키지명을 일치시켜서 만들어준다.
package bit.com.a;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HomeController {
@RequestMapping("/home")
public ModelAndView home() {
System.out.println("HomeController home()");
ModelAndView view = new ModelAndView();
view.setViewName("/home");
return view;
}
}
소스코드중에 이렇게 만들어 주면 컨트롤러가 완성이 된다.
그 후 웹 콘텐츠에서 인덱스 하나 만들어줘서 엉커로 컨트롤러로 가게 해주고 뷰스폴더안에 뷰jsp 페이지를 간단하게 만들어 준다.
이제 index.jsp 소스코드와
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="home">home</a>
</body>
</html>
home.jsp 소스코드이다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>home.jsp sample3</h1>
</body>
</html>
이렇게 인덱스에서 컨트롤러로 갔다가 다시 홈.jsp 로 가게 된다.
다음으로 로그출력문을 쓰기 위해 하는 셋팅이다.
메이븐에서 2개의 소스코드를 가져와서 pom.xml에 넣어준다.
log4j.xml 을 복사해서 다이나믹웹프로젝트의 src 바로 밑에다가 붙여넣기 해준다.
이렇게 로거를 선언해주면 된다. 그 후
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
이렇게 써서 사용하면 된다.
logger.info("HomeController hello " + new Date());
package bit.com.a;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
//컨트롤러라고 알려준다.
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping("/home")
public ModelAndView home() {
// System.out.println("HomeController home()");
logger.info("HomeController home " + new Date());
ModelAndView view = new ModelAndView();
view.setViewName("/home");
return view;
}
@RequestMapping(value="hello.do", method=RequestMethod.GET)
public String hello(Model model) {
//모델을 잡는건 짐을 싸기 위해 해놓는거다 파라메타로 하는게 짐싸는 준비!!
logger.info("HomeController hello " + new Date());
model.addAttribute("name", "홍길동"); // request.setAttribute
return "hello";
}
}
또 아까 모델앤드뷰를 잘 안쓰고 헬로처럼 쓰는경우가 많은데 파라메타에 모델이 들어가 있으면 데이터를 addAttribute 로 하면 데이터를 넘기고
리턴으로 hello.jsp로 갈수 있다.
hello.jsp의 코드인데 겟어트리뷰트로 똑같이 쓸수 있다.
'Spring' 카테고리의 다른 글
Spring으로 Mybatis 이용하기 (0) | 2020.05.26 |
---|---|
MyBatis 프레임워크 이용하기 (0) | 2020.05.18 |
댓글