레거시 프로젝트가 아닌, 메이븐 프로젝트로 시작해서 하나하나 쌓아 올리는 과정이다.
1. spring08 메이븐 프로젝트 생성
2. 웹 개발 관련 폴더 생성
src/main/webapp/WEB-INF/view까지 생성
3. pom.xml에 웹 개발 관련 의존성 설정
- <packaging>war</packaging>
- 서블릿, 스프링 mvc, DB 연동, jstl 관련 의존 라이브러리 추가
<?xml version="1.0" encoding="UTF-8"?>
<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>sp</groupId>
<artifactId>spring08</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging> <!-- 웹 프로그램을 묶음으로 만들 때 필요한 war 파일 추가 -->
<!-- 다 만들고나면 war 형태로 웹 프로젝트가 배포될 것임 -->
<dependencies>
<!-- 서블릿 관련 라이브러리 추가 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<!-- 스프링 mvc 라이브러리 추가 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<!-- DB 연동 라이브러리들 추가 -->
<!-- 1. jdbc 추가 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<!-- 2. 커넥션풀 추가 (두 가지) -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2.1</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- 3. 오라클 드라이버 추가 -->
<dependency>
<groupId>oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
<!-- 4. jstl 설정 추가 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
4. 프로젝트 우클릭 -> maven 업데이트
5. 프로젝트 우클릭 -> Java EE Tools -> Generate Deployment Descriptor Stub 클릭 -> web.xml 파일 자동으로 생성
메이븐으로 올리는 것이기 때문에 web.xml 파일도 내가 직접 만들어야함
<display-name>spring08</display-name>
<!-- 서블릿 설정 및 필터 적용 -->
<!-- 모든 요청은 dispatcherServlet으로 들어온다 : frontController -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value> <!-- 서블릿이 호출되는 순간 이 파일들이 읽어짐 -->
classpath:spring-mvc.xml
classpath:spring-controller.xml
classpath:spring-member.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern> <!-- 모든 사용자의 요청을 dispatcher가 담당하겠다 -->
</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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
6. 이클립스 인코딩 설정 및 톰캣 등록
7. src/main/resources에 spring-mvc.xml 파일 설정
이 파일은 viewResolver의 역할을 담은 설정 파일이다. 프론트 단의 설정을 담당하는?
<?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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<!-- 뷰와 관련된 설정 -->
<mvc:view-resolvers>
<mvc:jsp prefix="/WEB-INF/view/" suffix=".jsp"/>
</mvc:view-resolvers>
</beans>
8. src/main/resources에 spring-controller.xml 파일 설정
이 파일은 controller 클래스 사용을 위한 빈 설정 파일이다.
<?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">
<!-- 빈 컨테이너 : 서블릿 등록 -->
<bean class="controller.RegisterController">
<property name="memberRegSvc" ref="memberRegSvc"/> <!-- 의존 주입 추가 -->
</bean>
</beans>
9. src/main/resources에 spring-member.xml 파일 설정
트랜잭션 및 DB 연동 관련한 빈 설정 파일이다.
이번 프로젝트에서는 C3P0를 이용한 DB 연동이다.
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">
<!-- 트랜잭션 설정 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- DB 연동 dataSource 객체 생성 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe"/>
<property name="user" value="springuser"/>
<property name="password" value="1234"/>
<property name="maxPoolSize" value="100"/>
<property name="maxIdleTime" value="600"/>
<property name="idleConnectionTestPeriod" value="300"/>
</bean>
<!-- 트랜잭션 객체 생성 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 프로젝트에 실행에 필요한 세 가지 객체 생성 -->
<bean id="memberDao" class="spring.MemberDAO">
<constructor-arg ref="dataSource"/>
</bean>
<bean id="memberRegSvc" class="spring.MemberRegisterService">
<constructor-arg ref="memberDao"/>
</bean>
<bean id="changePwdSvc" class="spring.ChangePasswordService">
<constructor-arg ref="memberDao"/>
</bean>
</beans>
여기까지 기본적인 셋팅 작업은 끝! 이제 회원가입을 위한 컨트롤러와 jsp 파일들을 작성해보자.
1. RegisterController 클래스 작성
2. MemberRegisterService 클래스 / RegisterRequest 클래스
3. step1.jsp 파일 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>약관</title>
</head>
<body>
<h2>약관</h2>
<p>약관 내용</p>
<form action="step2" method="post">
<label><input type="checkbox" name="agree" value="true">약관동의</label>
<input type="submit" value="다음 단계">
</form>
</body>
</html>
4. step2.jsp 파일 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 가입</title>
</head>
<body>
<h2>회원 정보 입력</h2>
<form action="step3" method="post">
<p>
<label>이메일: <input type="text" name="email" id="email"></label>
</p>
<p>
<label>이름: <input type="text" name="name" id="name"></label>
</p>
<p>
<label>비밀번호: <input type="password" name="password" id="password"></label>
</p>
<p>
<label>비밀번호 확인: <input type="password" name="confirmPassword" id="confirmPassword"></label>
</p>
<input type="submit" value="가입완료">
</form>
</body>
</html>
5. step3.jsp 파일 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 가입</title>
</head>
<body>
<p>회원 가입을 환영합니다.</p>
<p><a href="<c:url value='/'/>">[홈 화면 이동]</a></p>
</body>
</html>
6. 브라우저 출력
'SPRING' 카테고리의 다른 글
간단한 페이지 이동 <mvc:view-controller> (0) | 2020.10.07 |
---|---|
스프링에서 커맨드 객체 활용하기 (0) | 2020.10.07 |
스프링 - 게시판 조회 수 증가 (0) | 2020.10.02 |
view(.jsp)에 기존 값 가져오기 (radio, select), checkbox 추가 예정 (0) | 2020.10.02 |
root-context.xml 위치 변경하기 (0) | 2020.10.02 |