상세 컨텐츠

본문 제목

메이븐 프로젝트 생성(web.xml+AOP설정+컨트롤러매핑+서비스파일추가까지(DAO는제외)

JSP·자바·코틀린

by 김일국 2015. 10. 13. 19:38

본문

M S(메이븐 스프링) 프로젝트 생성(web.xml+AOP설정+컨트롤러매핑+서비스파일추가까지(DAO는제외)

이클립스 케플러이상버전 사용한 전체 프로젝트 소스

20151013_pack_test.zip

인텍스화면                                                                            결과화면


======================

1. 스프링 프로젝트 생성

======================

- File > New > Other 선택

- Spring > Spring Project 선택

- 프로젝트 이름 입력 : Pen, 하단의 Simple Spring Web Maven 선택 ( 자동으로 패키지명이 org.springframework.samples.service.service 지정된다.) *패키지명을 수동으로 입력하고 싶으면, 하단의 Spring MVC Project 를 선택한다.

- Finish를 누르면 프로젝트가 생성이 되고, 메이븐이 자동으로 인터넷에서 프로젝트에 필요한 라이브러리를 자동으로 다운받기 시작한다.

==================

2. 톰캣7.0서버 추가

==================

- File > New > Other 선택

- Server > Server 선택

- Tomcat v7.0 Server 선택

- Pen 프로젝트 선택 후 Add 버튼 클릭

- Finish

======================================

3. 이클립스 Project Explore 화면구조 확인

======================================

- 소스폴더: Pen/src/main/

- jsp 파일들 경로: Pen/src/main/webapp/WEB-INF/view/
- mybatis 쿼리 xml 파일 경로: Pen/src/main/resources/mybatis/ (다음기회에)
- spring 빈 설정파일 경로: Pen/src/main/java/com/pen/web/
- controller 클래스 경로: Pen/src/main/java/com/pen/web/controller/
- dao 인터페이스 경로: Pen/src/main/java/com/pen/web/dao/ (다음기회에)
- dao 구현 클래스 경로: Pen/src/main/java/com/pen/web/dao/impl/ (다음기회에)
- service 인터페이스 경로: Pen/src/main/java/com/pen/web/service/
service 구현 클래스 경로: Pen/src/main/java/com/pen/web/service/impl/
===============
4. 설정파일 수정
===============
1) Pen/src/main/webapp/WEB-INF/web.xml
-전체내용
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Pen</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/application-config.xml</param-value><!--자동생성된 config 설정파일-->
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <servlet>
<!-- 수동으로 액션과 파일매핑을 위한 스프링 빈을 설정할 xml 파일 경로 추가 -->
    <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/mvc-config.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>
</web-app>

2) Pen/src/main/webapp/WEB-INF/mvc-config.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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.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.xsd">

    <!-- Uncomment and your base-package here:
         <context:component-scan
            base-package="org.springframework.samples.web"/>  -->
 
 <context:component-scan base-package="com.pen.web"></context:component-scan><!-- com/pen/web 폴더의 모든 클래스의 @어노테이션 자동등록 -->

    <mvc:annotation-driven /> <!-- 클래스파일의 어노테이션으로 컨트롤러와 서비스의 매핑을 사용하겠다는 의미-->

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <!-- 뷰화면 위치를 컨트롤러 매핑에서 생략가능-->
         <property name="prefix" value="/WEB-INF/view/"/>
         <property name="suffix" value=".jsp"/>
 </bean>

</beans>

==================

5. 뷰화면 파일 생성

==================

- Pen/src/main/webapp/WEB-INF/view/showMessage.jsp

- 내용전체

<!DOCTYPE html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
 <head>
  <meta charset="utf-8">
  <title>Welcome</title>
 </head>
 <body>
  <h2>${message}</h2> <!-- 아래 컨트롤러 클래스에서 Response 한 값 -->
 </body>
</html>

===========================

6. 컨트롤러 클래스 파일 생성

===========================

- Pen/src/main/java/com/pen/web/controller/AddtionService01.java

- 내용전체

package com.pen.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.pen.web.service.AddtionService;
@Controller <% /* 컨트롤러 클래스 임을 명시 */ %>
public class AddtionServlet01 {
 @Autowired AddtionService addtionservice; <% /* 서비스 클래스 호출 */ %>
 @RequestMapping("/addtionServlet01") <% /*  URL의 Requset 액션 매핑 */ %>
 public ModelAndView main(HttpServletRequest req, HttpServletResponse res) throws Exception {
  ModelAndView mav = new ModelAndView("showMessage"); <% /* 뷰화면 showMessage.jsp 지정 */ %>
  //int num1 = 30, num2 = 20;
  //int result = num1 + num2;
  int result = addtionservice.AddSum(30,20); <% /* 상단에서 지정한 AddtionService 클래스에서 AddSum 함수 호출 */ %>
  mav.addObject("message", result); <% /* 계산 결과 변수값 message = result 지정 */ %>
  return mav; <% /* Response 값으로 Model and View 개체 post */ %>
 }

}

======================

7. 인터페이스 파일 생성

======================

- Pen/src/main/java/com/pen/web/service/Addtion.java

- 내용전체

package com.pen.web.service;

public interface AddtionService {
 int AddSum(int num1, int num2) throws Exception;
}

========================================

8. 인터페이스 구현 서비스 클래스 파일 생성

========================================

- Pen/src/main/java/com/pen/web/service/impl/AddtionServiceImpl.java

- 내용전체

package com.pen.web.service.impl;

import org.springframework.stereotype.Service;

import com.pen.web.service.AddtionService;

@Service("AddtionService")
public class AddtionServiceImpl implements AddtionService {
 public int AddSum(int num1, int num2){
  int sum = num1 + num2;
  return sum;
 }
}

=============

9. 인덱스 파일

=============

- Pen/src/main/webapp/index.jsp

- 내용전체

<!DOCTYPE html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
   
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

<html>
 <head>
  <meta charset="utf-8">
  <title>Welcome</title>
 </head>
 <body>
  <c:url value="/addtionServlet01" var="messageUrl" />
  <a href="${messageUrl}">Click to enter</a>
 </body>
</html>

20151013_pack_test.zip
8.32MB

관련글 더보기

댓글 영역