HOME JSP + 스프링(Spring) + 디비(Mysql)


Package

  • View

    프로젝트 Package Explorer 폴더구조
  • 출력 화면

    출력페이지 Main.do 화면 Home 출력화면으로 날짜시간표시
  • 테스트 영상

Java,class

package com.spring.myapp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.junit.Test;
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;
@Controller
public class HomeController {

private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
}
package com.spring.myapp.controller;

import java.util.ArrayList;
import java.util.List;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Locale;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.ui.Model;
import com.spring.myapp.HomeController;

@Controller
@RequestMapping("/Main.do")
public class MainController{

private static final Logger logger = LoggerFactory.getLogger(MainController.class);
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/goodsweb?serverTimezone=UTC";
private static final String UID = "goodsweb";
private static final String UPW = "1111";

@RequestMapping("")
public ModelAndView main(Model model) throws ClassNotFoundException, SQLException {

ModelAndView mv = new ModelAndView();

List< String> list = new ArrayList< String>(); //배열선언

Class.forName(DRIVER); //드라이브연결
Connection conn = null;
try {
conn = DriverManager.getConnection(URL, UID, UPW);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select uid from push_token_tbl"); //쿼리
while(rs.next()){
logger.info("------> : " + rs.getString("uid"));
list.add(rs.getString("uid")); //배열로 저장함
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(conn != null) conn.close();
}
mv.addObject("lists",list);
mv.addObject("ObjectTitle","테스트 / Mysql");
mv.addObject("ObjectSub","스프링 연결");

mv.addObject("div_view","Dokgol");
mv.setViewName("view");

return mv;
}
}
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/dokgol?serverTimezone=UTC
jdbc.username=dokgol
jdbc.password=1111
< ?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" xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring" 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.3.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd http://www.springframework.org/schema/beans https://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 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

< context:property-placeholder location="classpath:/database/jdbc.properties"/>

< bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
< property name="driverClassName" value="${jdbc.driverClassName}"/>
< property name="jdbcUrl" value="${jdbc.url}"/>
< property name="username" value="${jdbc.username}"/>
< property name="password" value="${jdbc.password}"/>
< property name="maximumPoolSize" value="30"/>
< /bean>

DataSource 등록 : 데이터베이스의 정보들을 포장하고있는 애들
< bean id="ds" class="com.zaxxer.hikari.HikariDataSource">

생성자를 통한 의존성 주입
< constructor-arg ref="hikariConfig"/>
< /bean>

[마이바티스 주요 객체 sessionFactory클래스 빈등록]
< bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
//setter를 통한 의존성 주입
< property name="dataSource" ref="ds"/>
//마이바티스 설정 파일을 변수 configLocation에 저장 -->
< property name="configLocation" value="classpath:/spring/mybatis-config.xml"/>
//sql문이 작성될 xml파일이 들어간 경로 저장 -->
< property name="mapperLocations" value="classpath:/mappers/**/*Mapper.xml">< /property>
< /bean>

// [마이바티스를 쉽게 사용할 템플릿 클래스 빈 등록] -->
< bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
< constructor-arg ref="sqlSessionFactory"/>
< /bean>

//[Mapper.xml 파일을 빈객체로 등록하는 설정] -->
< mybatis-spring:scan base-package="com.spring.myapp.board.repository"/>

// [컴포넌트 자동 스캔 명령] -->
// 자동주입 명령을 사용하기 위해 위치를 알려줘야한다. -->
< context:component-scan base-package="com.spring.myapp"/>


< ?xml version="1.0" encoding="UTF-8" ? >

//mybatis-config.xml : 마이바티스 설정 파일로 사용
< !DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
< configuration>
< /configuration>
< ?xml version="1.0" encoding="UTF-8"? >
< beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd" >

// servlet-context.xml(DispatcherServlet Context)
: DispatcherServlet의 기반 설정을 기록하는 파일

//자바의 어노테이션 문법 기본
< annotation-driven />

// 화면에 보여주기위한)을 매핑해 주는 코드(절대경로를 짧게 만들어주는 목적)
< resources mapping="/resources/**" location="/resources/" />

//뷰 리졸버 설정
< beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> -->
< beans:property name="prefix" value="/WEB-INF/views/" />
< beans:property name="suffix" value=".jsp" />
< /beans:bean>

//객체를 주입할 때 이하의 패키지에서 검색
< context:component-scan base-package="com.spring.myapp" />

< /beans:beans>
< ?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:aop="http://www.springframework.org/schema/aop" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd http://www.springframework.org/schema/beans https://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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd" >
< /beans>
< %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
< %@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

< html>
< head>
< title>Home< /title>
< /head>
< body>
< h1>
^
< /h1>
< P> 타임 ${serverTime}. < /P>
< /body>
< /html>
< %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
< %@ page session="false" %>
< html>
< head>
< title>Page2 < /title>
< /head>
< body>

< h2>${ObjectTitle} < /h2>

< p>${ObjectSub} < /p>

< c:forEach var="mylist" items="${lists}">
${mylist} < br>
< /c:forEach>

< p>${div_view}< /p>
< /body>
< /html>
< ?xml version="1.0" encoding="UTF-8"?>
< web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

//DB설정 xml 설정 경로 (root-context.xml)
< context-param>
< param-name>contextConfigLocation< /param-name>

//경로 변경 (기존경로 : /WEB-INF/spring/root-context.xml
< param-value>classpath:/spring/mvc-config.xml< /param-value>
< /context-param>

< listener>
< listener-class>org.springframework.web.context.ContextLoaderListener< /listener-class>
< /listener>

//Dispatcher Servlet 설정 xml파일 경로 지정 (servlet-context.xml) -->
< servlet>
//서블릿 클래스 appServlet. -->
< servlet-name>appServlet< /servlet-name>
//클래스의 위치는 다음과 같다. -->
< servlet-class>org.springframework.web.servlet.DispatcherServlet< /servlet-class>
//초기 파라미터 (초기값) 이름과 값을 다음과 같이 지정하겠다. -->
< init-param>
< param-name>contextConfigLocation< /param-name>
//- 경로 변경 (기존 경로 : /WEB-INF/spring/appServlet/servlet-context.xml //
< param-value>classpath:/spring/servlet-config.xml< /param-value>
< /init-param>
//: 누구보다 먼저 호출하겠다//
< load-on-startup>1< /load-on-startup>
< /servlet>
///서블릿 URL Mapping 설정 //
< servlet-mapping>
< servlet-name>appServlet< /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>
//- 위에 지정한 encodingFilter이름을 모든 패턴에 적용//
< filter-mapping>
< filter-name>encodingFilter< /filter-name>
< url-pattern>/*< /url-pattern>
< /filter-mapping>
< /web-app>
< ?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 https://maven.apache.org/maven-v4_0_0.xsd">
< modelVersion>4.0.0< /modelVersion>
< groupId>com.spring< /groupId>
< artifactId>myapp< /artifactId>
< name>SpringMVCProject< /name>
< packaging>war< /packaging>
< version>1.0.0-BUILD-SNAPSHOT< /version>
< properties>

//1. java 버전을 1.6에서 1.8로 변경, springframework 버전을 5.0.8로 변경 ]
< java-version>1.8< /java-version>
< org.springframework-version>5.0.8.RELEASE< /org.springframework-version>
< org.aspectj-version>1.6.10< /org.aspectj-version>
< org.slf4j-version>1.6.6< /org.slf4j-version>
< /properties>

.
.
.
.
< dependencies>

[스프링 테스트 모듈 ]
< dependency>
< groupId>org.springframework< /groupId>
< artifactId>spring-test< /artifactId>
< version>${org.springframework-version}< /version>
< /dependency>

[ 3. DB관련 라이브러리 설정 : DB사용을 위해 커넥터가 꼭 있어야한다. ]
[ mysql-connector-java ]
< dependency>
< groupId>mysql< /groupId>
< artifactId>mysql-connector-java< /artifactId>
< version>8.0.15< /version>
< /dependency>

[ 4. 마이바티스 관련 라이브러리 설정 ]
[ mybatis core 모듈 ]
< dependency>
< groupId>org.mybatis< /groupId>
< artifactId>mybatis< /artifactId>
< version>3.4.6< /version>
< /dependency>
[ mybatis-spring : 마이바티스와 스프링을 연결 ]
< dependency>
< groupId>org.mybatis< /groupId>
< artifactId>mybatis-spring< /artifactId>
< version>1.3.2< /version>
< /dependency>
< /dependencies>



.
.
.
.
< /project>

설명

위치 파일경로 설명

src/main/java : .java 파일이 작성되는 경로 ( class, interface)
src/main/resources : 실행할 때 참조하는 기본경로로 보통 설정파일(DB, Spring, Mybatis 설정파일)

src/test/java : 테스트 코드를 넣는 경로
src/test/resources : 테스트 관련 설정파일 경로
JRE System Library : 기본 라이브러리
Maven Dependencies : 외부에서 내려받은 라이브러리

resources : css, js파일
servlet-context.xml : 웹과 관련된 스프링 설정 파일, DispatcherServlet의 기반 설정을 기록하는 파일
root-context.xml : 스프링 설정 파일 mvc설정과 관련된 여러 처리를 담당 , 설정파일(ex: DB, service)
views : 폴더 화면에 보여질 jsp파일 경로
web.xml : 웹에 관한 설정 파일
pom.xml : 외부 라이브러리를 다운받을수 있는 파일



레이아웃 개발구성

  • 스프링



설치

개발환경


- 1.8버전 JDK 다운로드 / Windows x64
1 . 실행 > cmd > javac -version

- Eclipse 설치
1. eclipse.org 접속 후 download 클릭
2. Eclipse IDE for java EE Developers

- 이클립스 한글 인코딩
1.Window - Preferences
Workspace, CSS, HTML, JSP, XML 모두 utf-8로 변경

- Tomcat , Mysql 설치

- 스프링 설치
1.Help 탭에서 Eclipse Marketplace 로 접속
2.sts 검색 후 Spring Tools 설치



프로젝트 war파일 배포하기

성공화면

  • War 배포

배포순서


  • 1. Eclipse에서 프로젝트 우클릭 -> Export - Web - WAR file 선택 -> Next버튼 클릭
    2. 반드시 ROOT.war 생성 및 업로드할때 파일명 변경
    3. webapps폴더 ROOT.war 그대로 올리기
    4. 톰캣 재시작하면 ROOT자동으로 풀린다.
    5. http://127.0.0.1:8080/Main.do 접속하면 끝


  • 5명  IP : 18.224.♡.65
    001 85.♡.96.198 패키지몰
    (/bbs/board.php?amp%3Bwr_id=2&bo_table=pmall)
    002 158.♡.197.104 오류안내 페이지
    (/bbs/write.php?bo_table=free)
    003 52.♡.144.188 서버 구성도
    (/bbs/content.php?co_id=Network&me_code=5030)
    004 211.♡.46.159 굿스웹 - 홈페이지 유지보수 관리
    (/)
    005 222.♡.107.145 델파이(Delphi)에서 날짜(Date) 관련 함수 - 개발팁
    (/bbs/board.php?bo_table=tip&wr_id=96)

    접속자
    • 오늘 : 202
    • 어제 : 226
    • 최대 : 874
    • 전체 : 400,243

    검색로봇(Robots) 최근 방문시간
    • NAVER : 9분 전
    • GOOGLE : 1시간 전
    • DAUM : 7시간 전
    • BING : 1일 전

    ETH : 0x8abf3B748ab78828AE07685e4fd53d1a606f18D3



    페이스북 네이버 블로그 굿스웹 쇼핑몰 네이버 카페 굿스웹 트위터 굿스웹 티스토리 Google Play