본문 바로가기

디버깅/Spring mvc (Maven, Mybatis)

스프링 프레임 워크(Spring Framework) - 5. 프로젝트 살펴보기, 뼈대 만들기 등등

반응형

힘겨운 개발환경 세팅이 끝났습니다. (??) 처음엔 잘 모르겠는데.. 블로그 가이드 같은것을 보면서 하다보면.. 그냥 저절로 외워지게 되니.. 절대로 이 과정을 외워야겠다던가.. 이걸 모르면 개발을 쥐뿔도 못하는 사람이 되는건가.. 하는 자괴감은 들지 마시길 바랍니다. 모든건 시간이 해결 해줍니다만... (보통은 그렇게 놀면서 시간을 보낸다는 것이..) 

아무튼 이어가보겠습니다. 


이전 글에서 Spring 프로젝트 생성후 Hello World의 한글깨짐을 해결하는 과정을 진행하고자 했습니다.

해결 방법은 두가지가 있는데요. 

1. jsp가 작성된 view에 인코딩을 명시 정해주는 방법과

2. Spring 프로젝트 자체에 강제로 인코딩을 정해서 만약 개발자나 view를 작성할때 인코딩을 정해주지 않아도.. 알아서 변환하게 하는 방법 두가지가 있습니다.


하지만 실 프로젝트에서나는 보통 두가지 다 적용하는거 같으니 둘다 할겁니다. (??)


1. JSP(view)에 인코딩 명시

우선 jsp가 어디 있는지 알아야.. 명시를 할수 있겠죠.  jsp는 view 폴더에 모아져 있는데. 이 폴더는
src/main/webapp/WEB-INF/view 폴더를 말합니다.

이곳에 폴더 별로 나누어서 jsp가 대부분 저장되곤 합니다. 추후에 보게될 컨트롤러에서 jsp를 연결해줄때 시작점이.. 이 view 폴더이기도 합니다. (이건 실제 코드로 보면 이해가 빠르니 그런가보다. 하면 됩니다)
가장 중요한건. view 라는 폴더에 jsp 파일들이 전부 모여 있다. 라는겁니다. 

자 그럼 우리가 본 Hello World는. 이 폴더에 있는 home.jsp입니다.
얘를 열어서 첫째줄에 다음 코드를 추가하면 됩니다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>



2. WEB-INF/web.xml에 인코딩 필터 추가

view 폴더를 찾을때 처럼 패키지 익스플로러를 찾아도 되지만, 파일명을 알고 있다면 이클립스의 소스파일 검색을 활용해도 편리합니다
단축키 : Ctrl + Shift + R을 누르면 Open Resource가 뜨는데 이곳에 web.xml을 검색하고
WEB-INF폴더에 존재하는 web.xml을 열어줍니다.

web-app 태그 안쪽에 다음의 코드를 붙여넣기 해줍니다.

    <!--  Character set filter config -->
    <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>         
        <!-- forceEncoding true 값을 주지 않을 경우 강제 인코딩 하지 않는다. -->
        <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>

다음의 코드는 문자열 인코딩 필터를 말하며 인코딩은 UTF-8임이 명시되어 있습니다.
하단의 init-param 태그에서는 강제로 인코딩을 할것을 명시해두고 있습니다.
web.xml을 수정 후에는 서버를 재 시작해주면 빌드를 새로 시작하면서 반영이 됩니다.

이곳에 인코딩 필터를 지정해주면 1번의 항목처럼 jsp에서 페이지마다 인코딩을 지정해 주지 않아도 한글이 깨지지 않습니다.
하지만 보통 관례적으로 헤더 파일에 인코딩을 같이 포함하는 경우가 많기 때문에.. 사실상 둘다 지정해주는 방법을 알아 두시면 좋겠습니다.
 

그럼 이제 스프링 프로젝트의 각 파일을 살펴보고 파일들의 역할과 개발을 위해 어떤식으로 설정을 해주는지 등을 살펴 보도록 하겠습니다.



 . 스프링 프로젝트 URL에서 프로젝트명 삭제하기

프로젝트를 생성한 뒤, 실행시키면 localhost:8080/프로젝트명으로 index에 접근을 하게 될겁니다.

보통 URL에는 프로젝트 명이 나오지 않으므로, 이 녀석이 나타나지 않게 설정을 해줄수 있습니다. tomcat에서 설정을 해주는 방법도 있고, 이클립스에서 맵핑을 바꿔줘도 되는데.. 출처의 방법은 아마도 이클립스에서 조정하는 방법일듯합니다.

http://nyhooni.tistory.com/59

http://runtoyourdream.tistory.com/249




출처:

http://nyhooni.tistory.com/59

http://runtoyourdream.tistory.com/249

반응형