웹을 만들다보면 모바일기기를 구분해야 할 경우가 생긴다. 이것을 쉽게 도와주는 것이 바로 Spring_Mobile 이다.
Spring.io의 스프링 프로젝트를 보면 스프링 모바일이라는 프로젝트가 있다. 스프링 모바일은 Spring MVC에서 모바일 기기를 식별 하기 위한 extension 이다.
- Pom.xml 라이브러리 추가하기
- dispatcher-servlet.xml 빈추가하기
- web.xml 필터링 추가하기
- Controller 추가 하기
1. Pom.xml 라이브러리 추가하기
- Device구분을 위한 라이브러리 추가
<!-- 스프링 모바일 추가 -->
<dependency>
<groupId>org.springframework.mobile</groupId>
<artifactId>spring-mobile-device</artifactId>
<version>1.1.3.RELEASE</version>
</dependency>
2. dispatcher-servlet.xml 빈추가하기
- 여기서도 인터셉터를 추가 해주네
<bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
3. web.xml 필터링 추가하기
- Device 필터를 추가합니다.
<!-- device fitter -->
<filter>
<filter-name>deviceResolverRequestFilter</filter-name>
<filter-class>org.springframework.mobile.device.DeviceResolverRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>deviceResolverRequestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4. Controller 추가 하기
@RequestMapping(value = "main.do")
public String initMain(HttpServletRequest request) throws Exception {
Device device = DeviceUtils.getCurrentDevice(request);
if (device.isMobile()) {
System.out.println("Hello mobile user!");
} else if (device.isTablet()) {
System.out.println("Hello tablet user!");
} else {
System.out.println("Hello desktop user!");
}
return "main/main.tiles";
}
결과
신기하게도 크롬에서 개발자도구로 다르게 들어가게되면 다르게 표시가 된다. 이걸로 모바일로 들어올 경우 다른 페이지로 유도할 수 있을 것 같다.