STS Project 시작
구구단이라는 새로운 패키지를 만들어 보자.
이것은 STS에서 우리가 처음으로 만들어 보는 것으로 패키지 이름은 com.zipimee.steve.gugudan이다.
다음은 STS 프로젝트의 개괄도(?)다.
우리가 만드는 구구단은 페이지, 컨트롤러, 서비스로만 구성되겠다.
Page와 Controller사이에 Spring Dispatcher Control이 있다고 하나 너무 복잡하여 그냥 넘어가기로 한다.
.
필요한 폴더와 파일을 알아보자.
servlet-context.xml에 보면 우리가 정해놓은 base package가 com.zipimee.steve라 적혀있다.
이 아래에 gugudan을 만들 것이며 패키지 이름은 comp.zipimee.steve.gugudan이 되겠다.
comp.zipimee.steve.gugudan아래에 controller, dto, service를 service 아래에 impl이라는 패키지를 만들자.
.
뒤집어진 삼각형 모양의 아이콘을 누르면 메뉴가 뜬다.
여기서 Package Presentation을 Hierarchical로 바꾸면 아래처럼 보기 편한 구조로 보여진다
.
src/main/webapp/은 base 또는 기준이다.
주소창에 localhost:8081/steve/는 여기(src/main/webapp/)를 말한다고 생각하면 맞다.
src/main/webapp/WEB-INF/views는 파일의 베이스다.
views 폴더 아래에 home.jsp가 있다는 사실을 주목하자.
이제 src/main/webapp/WEB-INF/views에 gugudan이라는 폴더를 만들자.
그리고 gugudan 아래 index.jsp와 run.jsp(혹은 result.jsp)를 만들어준다.
그렇게 되면...
실행시 [크롬 주소창에] localhost:8081/steve/gugudan/index를 넣고 엔터키를 눌러야 한다.
참고로 zinc 생성시 자동으로 만들어 진 패키지는 주소창에 localhost:8081/steve/home을 넣는다.
(실제로는 localhost:8081/steve다. 이유는 컨트롤러에서 URL로 slash 하나로만 지정 @RequestMapping(value="/"...)
패키지와 폴더 준비를 마쳤다.
이제 필요한 jsp와 java 파일을 생성할 차례다.
여기서 필요한 파일은 아래와 같다.
index.jsp - 입력 페이지 위치 - /views/gugudan/index.jsp
run.jsp - 츨력 페이지 위치 - /views/gugudan/run.jsp
GugudanController.java - 컨트롤러 위치 - comp.zipimee.steve.gugudan.controller
IGugudanService.java - 서비스 인터페이스 - comp.zipimee.steve.gugudan.service
GugudanServiceImpl.java - 서비스 - comp.zipimee.steve.gugudan.service.impl
index.jsp
다음 블로그에서는 <pre>나 <code> 가 먹히지 않는 것 같아서 캡춰를 떳다.
간단한 것들이니 home.jsp 내용을 복사해와서 약간의 수정만 하면 될 것이다.
run.jsp
GugudanController.java
위 소오스에서...
index.jsp와 GugudanController.java에서 URL을 /gugudan/result로 바꿔봤음.
이럴 경우 결과페이지 이름이 run.jsp과 아닌 result.jsp이어야 함.
IGugudanService.java
서비스 인터페이스다.
GugudanServiceImpl.java
몇가지 팁
포털사이트 조소창을 자세히 보면 다음과 같이 쓰이는 것을 볼 수 있다.
www.daum.net/?name=홍길동&nick=슈퍼보이
이것이 GET이다.
오늘 올린 소오스에서도 GET과 POST가 있고 앞으로 많이 쓰일 건데, GET과 POST는 다음과 같은 차이가 있다.
get - 255kb로 제한되며 cache가 된다. 즉 기록이 남는다.
post - 사이즈는 무제한이며 기록이 남지 않는다.
단축키....
Ctrl + Shift + T - Open Type
Ctrl + Shift + R - Open Resource
둘 다 찾기 창이며 둘 다 GugudanController.java를 찾아준다.
아이콘...
이름은 Link with Editor이며 화살표가 좌우로 각각 하나씩 있는 모양새다.
Package Explorer 창에 달린 아이콘이다.
기능은 Editor창에 열린 파일을 Package Explorer창의 트리구조에서 해당 파일을 찾아준다.
GugudanController.java에서의 @Controller
컨트롤러에서 메소드 이름은 어떤 것을 쓰던지 상관없다.
그 위에 @Controller를 붙여주면 스프링이 이 메소드과 컨트롤러 구실을 하는 메소드라는 걸 안다.
참고로 @는 annotation이라하며 스프링에서 처음 사용된 것이 아니라 원래 Java에 있던 것이다.
결과 페이지에는 ${sResult}이 있을 것이다.
이것은 EL, 즉 expression Language다.
컨트롤로 (Java)에서 결과 페이지(HTML)로 데이터를 보내는데 쓰인다.
Eclipse에 에러가 생기면
[윈도우 경우] Owner (사용자) / m2 / repository를 날려버리면 된다.
그리고 나서 빨간색 느낌표가 뜨면 Alt + F5를 누른 다음 OK를 클릭해주면 된다.
GugudaController.java에서 URL이 길다고 생각되면...
@RequestMapping(value = "/gugudan/result", method=RequestMethod.POST)
import문 바로 아래에 다음을 정의해 주면...
@RequestMapping("/gugudan") // prefix
위 코드에서 URL를 아래처럼 짧게 적을 수 있다.
@RequestMapping(value = "/result", method=RequestMethod.POST)