관리 메뉴

공부한것들을 정리하는 블로그 입니다.

1-1. 중간점검 본문

반응형

캡쳐와 함께 보면서 설명을 진행하도록 하겠습니다.

 

 

1. server(tomcat) 설정

설정해주면서 port 및 timeouts 설정도 같이 해둔다

 

 

 

2. 접속경로 설정

 

 

3. chrome에서 위의 1에서 봤던 port 8080과 2에서 봤던 path /biz를 hostname 뒤에 입력하면

 

왜냐하면 톰켓을 아직 실행하지 않아서

 

4. eclipse로 돌아와서 tomcat을 실행한다

 

해당 port가 이미 사용중이다. port를 바꿔 준 후 start해보자.

 

 

이번엔 이상없이 잘 실행되었다.

 

다시한번 chrome으로 접속해보자. 단, 바뀐 port도 제대로 입력해줘야한다.

 

그래도 404 not found가 발생한다. 왜일까?

web.xml을 확인해보자

 

web.xml -> servlet-context.xml 로 이동

 

com.springbook.biz 하위에 있는 POJO(controller.java)로 이동

 

HomeController에서 mapping되어있는 bizhome2를 아까 입력했던 chrome에 입력해보자

 

 

 

정상적으로 동작하는것을 확인 할 수 있다.

여기까지 환경셋팅이 끝났다.

 

 

 

간단히 요약해서 적어보자면

 

1. 이클립스로 서버(톰켓) 실행

2. 톰켓에서 설정해준 경로를 통해 웹페이지 접속

3. 이클립스 web.xml -> servlet.xml -> controller.java -> (viewResolver)servlet.xml -> home.jsp

이렇게 클라이언트에서 웹페이지를 접근 가능하다.

 

 

 

 

 

* viewResolver의 설명이 빠져서 추가

 

 

아까 위에서 설명했던 servlet.xml 에서 Reslover라고 주석처리 된 부분이다.

 

 

controller에서 그냥 "home2"라는 String을 리턴했는데도 /WEB-INF/views/ 경로의 home2.jsp 라는 view가 매핑되는 이유가 이 viewResolver 덕분이다.

 

참고로 viewResolver를 사용하여 jsp파일들을 /WEB-INF/views/ 경로로 이동시킬시, WEB-INF 폴더는 절대 브라우저에서 접근할 수 없다(장점).

 

viewResolver를 사용하지 않으려면, 해당 옵션을 제거하고, jsp파일들의 경로를 수정 후, controller에서 return할때 "home2.jsp"로 진행하면 된다.

더 자세한 사항은 앞으로 프로젝트를 진행하면서 순차적으로 다루도록 하겠다.

 

 

 

추가2. 한글깨짐 방지 추가

 

한글깨짐 방지를 위해서는 UTF8 인코딩이 필요하다. 인코딩 처리를 해줄 수 있는곳은 3군데가 있다.

 

1.브라우저에서 java단으로 요청정보 Body 데이터를 보낼때 -> 2.Java 단에서 데이터처리 후 jsp 단으로 데이터를 보낼 때 -> 3.jsp단에서 데이터를 브라우저에 마크업할때

 

 

1번은 스프링 웹 프로젝트의 web.xml에서 <filter> 프로퍼티를 추가하는 방법이다. 다만 이 경우에는 요청정보의 Body데이터를 인코딩하므로 2번 3번과는 용도가 다르다

 

 

2번은 java단에서 인코딩 관련 로직을 추가하는 것이다.

 

request.setCharacterEncoding("UTF-8") 후 

String username = request.getParameter("username"); 이런 방식으로 넘기거나

 

response.setContentType("text/html;charset=UTF-8");로 넘기면 된다.

두가지 처리 모두 해주는게 확실하다.

 

 

3번은 jsp에 인코딩 관련 로직을 추가하는 것이다.

필자는 시간관계상 3번으로 처리하고 넘어갔다. 나중에 프로젝트를 진행하면서 인코딩 방식을 수정(추가) 하도록 하겠다.

자세한 것은 아래의 캡처를 참고하자.

 

 

jsp에서 받을때 UTF-8 로 인코딩 


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

 

한글깨짐 해결완료

 

 

 

 

반응형
Comments