• 분류 전체보기 (132)
    • 공지사항 (2)
    • 블로그팁 (4)
    • GKSkin (5)
      • 소개 (1)
      • 스킨다운로드 (1)
      • 사용법 (3)
    • GKTool (4)
      • 소개 (1)
      • 시연영상 (3)
    • 코드저장소 (41)
      • javascript (2)
      • jQuery 플러그인 (7)
      • java (12)
      • sql (10)
      • mybatis(ibatis) (3)
      • 스마트에디터연동 (3)
      • 다음에디터연동 (2)
      • 샘플링답변 (2)
    • 웹개발강좌 (48)
      • jQuery (8)
      • jQueryUI (5)
      • ExtJS (28)
      • 부트스트랩 (7)
    • 모바일웹강좌 (1)
      • SenchaTouch (1)
    • 개발에필요한연동법 (27)
      • 스프링연동 (16)
      • 리눅스서버구축 (11)
댓글
/78
2014. 11. 7. 12:00
Spring3 파일전송을 위한 multipartResolver 설정하기


메이븐에 파일관련 라이브러리를 추가하여 진행해야 하므로 

pom.xml에 dependency를 등록 하도록 하겠습니다.



pom.xml dependency 등록


<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.1</version>
</dependency>
<dependency>
	<groupId>commons-io</groupId>
	<artifactId>commons-io</artifactId>
	<version>2.4</version>
</dependency>




등록하였으면 컨트롤러에 2개의 맵핑을 선언합니다.




StudyController 코드추가

/**
 * 파일등록화면
 * @return
 */
@RequestMapping("/form")
public String form(){
	return "form";
}
	
/**
 * form submit 파일결과 받기
 * @param file
 */
@RequestMapping("/getFile")
public void getFile(FileVo file){
	System.out.println(file.getFile().getOriginalFilename());
}




첨부파일을 서버에서 받기위하여 vo클래스를 하나 생성 해보겠습니다.



패키지명 : com.spring.study.vo

vo 클래스명 : FileVo



FileVo.java 코드추가

package com.spring.study.vo;

import org.springframework.web.multipart.MultipartFile;

public class FileVo {
	private MultipartFile file;
	public MultipartFile getFile() {
		return file;
	}
	public void setFile(MultipartFile file) {
		this.file = file;
	}
}




등록폼을 위한 form.jsp 파일을 view 디렉토리내에 생성 하여 

body태그에 간단하게 다음코드를 추가합니다.




form.jsp 샘플코드

<form action="/getFile" method="post" enctype="multipart/form-data">
	<input type="file" name="file" />
	<input type="submit" value="서버전달"/>
</form>



서버를 시작하여 form URL 호출을 해보겠습니다.







파일 첨부 후 "서버전달" 버튼 클릭을 하게 되면 





HTTP Status 500 - Request processing failed; nested exception is java.lang.NullPointerException


위 오류메시지가 발생하게 됩니다.


스프링에서 파일처리를 위해서는 

MultipartResolver 설정을 잡아주어야 하는데 

해당 설정부분이 빠져있어서 파일처리도중 Exception 발생이 일어난겁니다.


mvc-config.xml 파일내에 다음 코드를 추가해주도록 합니다.



MultipartResolver 등록(mvc-config.xml 코드추가)

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />




위 코드를 추가하신다음 다시한번 파일첨부후 실행을 해보도록 합니다.









첨부후 "서버전달"버튼 클릭을 하면 








이번에는 500에러가 아닌 404 에러가 나타난다면 

정상적으로 파일전송이 완료된겁니다.


이클립스의 콘솔을 확인해보시면 System.out.println을 이용하여 

전송한 첨부파일의 파일명이 출력된 것을 확인할 수 있습니다.



by 개발로짜





저작자표시 비영리 변경금지 (새창열림)

'개발에필요한연동법 > 스프링연동' 카테고리의 다른 글

Spring3 Pathvariable 어노테이션을 이용하여 PARAMETER를 URL처럼 받아보기  (0) 2014.11.11
Spring3 jackson JSON 라이브러리 + ResponseBody 이용하여 JSON 파싱하기  (0) 2014.11.10
Spring3 RESTFUL 방식 리소스파일 및 favicon 인식할수 있게 설정하기  (3) 2014.11.07
Spring3 한글깨짐 방지를 위한 UTF-8 인코딩 설정하기  (6) 2014.11.06
STS 이클립스를 이용하여 UTF-8 인코딩 설정 및 Spring3 MVC 연동해보기  (3) 2014.11.06
/76
2014. 11. 6. 10:00
Spring3 한글깨짐 방지를 위한 UTF-8 인코딩 설정하기

이번 포스팅은 스프링 MVC 환경 설정중

 한글깨짐 현상을 해결하기 위한방법을 포스팅 하도록 하겠습니다.


테스트를 위하여 form submit 테스트를 해보겠습니다.



2014/11/06 - [개발에필요한연동법/스프링연동] - STS 이클립스를 이용하여 UTF-8 인코딩 설정 및 Spring3 MVC 연동해보기




StudyController 컨트롤러


@RequestMapping("/form")
public String form(){
	return "form";
}
	
@RequestMapping("/submit")
public String submit(HttpServletRequest request, Model model){
	model.addAttribute("text",request.getParameter("text"));
	return "submit";
}




2개의 컨트롤러를 추가 하였습니다.


form url은 입력폼이 들어있는 페이지입니다.

submit은 form페이지에서 입력받은 text태그의 내용을 출력하는 화면입니다.


각 페이지를 다음처럼 작성합니다.




form.jsp 코드


	<h3>폼전송</h3>
	<form action="/submit" method="post">
		<input type="text" name="text" />
		<input type="submit" value="전송"/>
	</form>


submit.jsp 코드


<h3>폼전송 결과 : ${text }</h3>




코드 작성을 하였다면 실행을 해보도록 하겠습니다.







실행결과 한글깨짐이 발생합니다.



request.setCharacterEncoding("utf-8");



submit 컨트롤러에 위와같이 설정을 해주면 한글을 깨지지 않겠지만 

각 컨트롤러마다 추가를 해줄 수 없으므로 web.xml파일의 web-app 태그내에 

다음과 같이 코드를 추가해주도록 합니다.



web.xml 태그추가

<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>



코드를 추가하셨다면 form URL을 재호출하여 

한글전송을 테스트 해보도록 하겠습니다.








정상적으로 한글 출력이 잘되네요.


다음은 파일전송에 대하여 포스팅 하도록 하겠습니다.



by 개발로짜



저작자표시 비영리 변경금지 (새창열림)

'개발에필요한연동법 > 스프링연동' 카테고리의 다른 글

Spring3 Pathvariable 어노테이션을 이용하여 PARAMETER를 URL처럼 받아보기  (0) 2014.11.11
Spring3 jackson JSON 라이브러리 + ResponseBody 이용하여 JSON 파싱하기  (0) 2014.11.10
Spring3 RESTFUL 방식 리소스파일 및 favicon 인식할수 있게 설정하기  (3) 2014.11.07
Spring3 파일전송을 위한 multipartResolver 설정하기  (2) 2014.11.07
STS 이클립스를 이용하여 UTF-8 인코딩 설정 및 Spring3 MVC 연동해보기  (3) 2014.11.06
/75
2014. 11. 6. 09:00
STS 이클립스를 이용하여 UTF-8 인코딩 설정 및 Spring3 MVC 연동해보기

스프링 MVC 연동에 대해서 포스팅해보도록 하겠습니다.

개발툴은 STS(Spring Tool Suite) 를 이용하겠습니다.


http://spring.io/tools/sts/all


해당 페이지로 이동하여 자신의 OS환경에 맞는 툴을 다운로드 받습니다.







저는 Windows 32bit 툴을 다운로드 받았습니다.


압축해제를 하도록 하겠습니다.


/sts-bundle/sts-3.x.x.RELEASE/


디렉토리에 들어가시면 STS 실행 프로그램이 있습니다.


실행!!!


Spring 프로젝트 진행시 인코딩을 UTF-8환경으로 진행할 예정이므로 

제일먼저 STS(이클립스) 인코딩설정을 먼저 해줍니다.



이클립스 인코딩 환경설정하기(UTF-8)



① Window -> Preferences -> General -> Workspace의 Text encoding을 UTF-8로 변경해주십니다.

    보통 Default로 MS949로 정의되어있어서 간혹가다 인코딩 문제가 발생하기 쉽기 때문입니다.

    Other를 클릭하셔서 UTF-8로 입력해주시거나 selectbox로 선택 후 Apply 버튼을 클릭합니다.







② Window -> Preferences -> General -> Web 의 CSS,HTML,JSP 3개지 설정의 Encoding을 UTF-8로 변경해주십니다.

    역시 이부분도 Apply 버튼 클릭!!






③ 마지막으로 Window -> Preferences -> General -> Contetn Types의 Text가 있습니다. 

    Text선택 후 Default encoding을 UTF-8이라고 입력 후 Update클릭합니다.







"OK" 버튼을 클릭하면 이클립스(STS)의 인코딩 설정은 마무리가 되었습니다.


본격적으로 프로젝트 생성하여 간단하게 Spring MVC 설정을 해보도록 하겠습니다.


※ Spring 프로젝트는 별도로 정의를 해주지 않아도 RESTFUL로 설정이 되어있으므로 

    "xxx.do"와 같은 확장자 지정을 해주지 않아도 됩니다.



Spring Project 생성






①  New -> Spring Project






② Project name 입력 -> Simple Projects(Simple Spring Web Maven) 선택 -> Select Spring version 선택(Default로 하여도 무관) 

    -> Finish 클릭



그럼 프로젝트 생성이 완료 되었습니다.


"Dynamic Web Project" 로 생성해도 무관하지만 

라이브러리파일들을 일일이 모두 lib 디렉토리내에 넣어줘야하는 번거로움이 있어서 

Maven으로 간편하게 라이브러리 관리 및 Spring 환경설정을 위하여  

"Spring Web Maven" 프로젝트로 진행하도록 하겠습니다.



Spring 프로젝트 생성을 하였는데 Tomcat 에 Add가 되지 않을경우


생성프로젝트 우클릭 -> Maven -> Update Project 를 해주시면 됩니다.








이어서 Spring MVC 기본 설정을 위하여 프로젝트의 설정 부분을 수정해보도록 하겠습니다.



Spring MVC 환경설정 및 실행


ⓐ  /스프링프로젝트/src/main/webapp/WEB-INF/mvc-config.xml  코드 추가


<context:component-scan base-package="com.spring"/>


ⓑ /스프링프로젝트/src/main/java/ 내에 다음과 같이 패키지 구조를 생성하였습니다.






StudyController 클래스에 다음과 같이 코드작성을 해줍니다.



StudyController.java 코드


package com.spring.study.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class StudyController {
	
	@RequestMapping("/hello")
	public String hello(){
		return "hello";
	}
}



ModelAndview를 이용하여 return 페이지를 정해줄 수 있지만 String을 이용하여 return 페이지를 정의하도록 하겠습니다.


return "hello" 를 쉽게 이해해보시자면 mvc-config.xml에 정의되어있는 코드 중 

<property name="prefix" value="/WEB-INF/view/"/> 라고 정의되어있는 코드가 있는데

저 디렉토리가 WEBROOT가 되는 것입니다.


return "hello"로 정의해주었다면 /WEB-INF/view/hello.jsp 페이지로 이동한다는 것입니다.

view디렉토리 경로에  hello.jsp페이지를 생성해보도록 하겠습니다.

default로 생성시 showMessage.jsp 가 존재하는데 삭제하셔도 됩니다.

hello.jsp를 생성하셨다면 body태그 부분에 테스트를 위하여 하단 코드를 작성합니다.



hello.jsp 코드

<h3>HELLO WORLD!!</h3>



톰캣을 실행 후 브라우저로 접속하기 전

server.xml 의 context path를 root경로로 잡아주도록 합니다.

앞으로 context root 기준으로 진행하도록 하겠습니다.







server.xml 변경 전

<Context docBase="spring_mvc" path="/spring_mvc" reloadable="true" source="org.eclipse.jst.jee.server:spring_mvc"/></Host>

server.xml 변경 후

<Context docBase="spring_mvc" path="/" reloadable="true" source="org.eclipse.jst.jee.server:spring_mvc"/></Host>




위 설정 까지 변경하셨다면 톰캣 서버를 실행 후 브라우저에 다음과 같이 입력합니다.


http://localhost:8080/hello









실행화면에서는 7070 포트로  호출을 하였는데 포트는 본인이 정한 포트로 실행하시면 되겠습니다.


정상적으로 결과가 출력되었습니다.


다음장에서는 spring mvc의 UTF-8 인코딩 설정을 해보도록 하겠습니다.



by 개발로짜




저작자표시 비영리 변경금지 (새창열림)

'개발에필요한연동법 > 스프링연동' 카테고리의 다른 글

Spring3 Pathvariable 어노테이션을 이용하여 PARAMETER를 URL처럼 받아보기  (0) 2014.11.11
Spring3 jackson JSON 라이브러리 + ResponseBody 이용하여 JSON 파싱하기  (0) 2014.11.10
Spring3 RESTFUL 방식 리소스파일 및 favicon 인식할수 있게 설정하기  (3) 2014.11.07
Spring3 파일전송을 위한 multipartResolver 설정하기  (2) 2014.11.07
Spring3 한글깨짐 방지를 위한 UTF-8 인코딩 설정하기  (6) 2014.11.06
이전 1 ··· 6 7 8 9 다음

티스토리툴바