지금까지는 모바일 jQuery를위하여 jsp페이지만 이용하였다.
이제 Spring적인 요소를 활용하기 위하여
*.do를 사용해보도록 하겠다.
현재 필자의 index.html의 코드는 아래와 같다
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Insert title here</title>
<script type="text/javascript">
location.href = "/home.do";
</script>
</head>
</html>
index.html페이지가호출되면 자동으로 home.do를 호출하도록 만들었다,
즉 "http://localhost:8080" 과 같이 입력하게 되면 index.html을 호출하게 되고
index.html은 home.do를 호출하게 된다.
즉 주소창에는 http://localhost:8080/home.do 의 경로를 통하여 페이지를 호출하고있다.
그렇다면 이러한 설정은 어떻게하느냐?
먼저 서버에 접속할시에 프로젝트 이름없이 해당 페이지를 여는 것부터 알아보도록 하겠다.
http://localhost:8080 이라고 프로젝트 명을 제외하고 입력하더라도 서버의 index.jsp를 호출하도록 설정하는 부분은 2가지이다.
1. server.xml / web.xml 이 두부분이다.
==> server.xml을 수정하는 방법 : tomcat을 활용하고 계시다면 server에서 server.xml이라는 파일을 열어보면 가장 아래쪽에
<Context docBase="md" path="프로젝트명" reloadable="true" source="org.eclipse.jst.j2ee.server:md"/></Host>
이렇게 입력된 부분이 있을것이다.
이곳에서 프로젝트명을 아래와 같이지우고 서버를 클린해준다.
그렇다면 다시 path에 프로젝트 명이 입력될것이다. 그러면 다시 클린을 해주게 되면 아래와 같이 server.xml의 데이터가 수정된것을 볼것입니다.
<Context docBase="md" path="" reloadable="true" source="org.eclipse.jst.j2ee.server:md"/></Host>
이제 수정할 부분은 web.xml이다.
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
위의부분은 web.xml에서 주소창만의 데이터가 들어왔을때 어떠한 파일을 처음으로 열것인지를 확인하는 것이다. 즉 현재 localhost:8080 이라는 주소로 접속하게 된다면 위의 파일들중 하나를 찾아서 접속하게 된다.
필자의 경우는 index.html 이라는 파일이 존재하기 때문에 index.html을 열게되는것이다.
---------------------------------------------------------------------
이제가지의 작업을 완료하고 나면 이제 주소창을 열게되면 위에 index.html 파일이 열릴것이다.
그렇다면 먼저 index.html파일을아래와 같이 작성한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Insert title here</title>
<script type="text/javascript">
location.href = "/home.do";
</script>
</head>
</html>
위와 같이 작성을하고 실행한다면 분명히 404오류가 발생할 것이다. 그이유는 무엇이냐
바로 location.href에 /home.do 를 찾지 못하기 때문이다.
이제 home.do에대한 설정을 해보도록 하겠다.
가장먼저 수정해야 되는 부분은 web.xml이다.
먼저 web.xml에아래와 같이입력한다.
<!-- Processes application requests --> <servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>appServlet</servlet-name> <url-pattern>/*.do</url-pattern> </servlet-mapping> |
그후 아래의 java파일을 생성한다.
생성 위치는
그림의 homeController,java 파일의 위치이다.
그리고 해당 자바 파일에는 아래의 내용을 펼쳐 내용을 입력한다,
package com.itmaker.util;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value="/home.do")
public String home (ModelMap model) throws Exception {
return "/home";
}
}
이렇게 입력한 이후 이제 servlet-context를 수정한다.
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --> <resources mapping="/resources/**" location="/resources/" /> <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> |
위의 내용을 입력하고 나면 이제 준비는 모두 마무리 되었다.
---------------------------------------------------
준비된내용을이제하나씩 순서대로 설명해보도록 하겠다,
1) localhost:8080으로 접속한다,.
2) index.html로 이동
3) index.html은 home.do 를 호출한다.
____________________________________________________
여기가까지 1차 server.xml을 수정한 내용이다,
4)페이지는 home.do를찾는다.
5) web.xml로 이동하여 *.do 에대한 정보를 얻는다.,
6) HomeController.java에서
@RequestMapping(value="/home.do")
을 통하여 RequestMapping되는 이름중 value값과 같은 것을 인터셉트한다.
7) 해당 클래스 파일을 실행하고, 리턴되는 데이터의 값을 web.xml의 appServlet으로 가지고 간다.
<<<< 이경우 home.do의클래스파일의 리턴값은 "home"이다.
8) appServelt은 리턴된 home의 값을 servlet-context로 전송한다.
9) servlet-context는 받은 home의 값에 prefix와 suffix를 붙인다.
<<<<<<< 여기에서 찾고자 하는 주소값이 완성된다.
localhost:8080/WEB-INF/views/"home".jsp
이와 같이 파일을 찾아간다.
>>>>>>>>>>>>>>
10) 주소창에는 localhost:8080/home.do 라고 찍혀있지만 화면은
localhost:8080/WEB-INF/views/home.jsp 호출된다.
********************************************
여기까지가 do를 설정하고 활용하는 부분입니다.
정리!!!!!!!!!!!!!!!!!!!!
1. do를 활용하기위해서는 server.xml을먼저 수정해 주는 것이 경로 입력이 편리하다. <먼저 해주자>
2. server.xml 설정이후 web.xml을키고 do를 찾기위한 내역을입력한다.
3. java파일을 생성하고 RequestMapping value값에 do의 이름을 입력한다.
4. 해당 java파일의 클래스 리턴값은 확장자를 제외한 호출할 파일의 이름이다.
5. 리턴값은 web.xml을 거쳐 servlet-context로 이동하여 호출 파일의 주소가완성된다.
6. 주소창에는 do파일의 이름이나올뿐, 파일의 위치 경로나 나타나지 않는다.
tip !!!!
네이버와 같은 기업에는 do를 쓰지않고 nhn과 같은 다른 문자를쓰고있다.
이는 web.xml에서 *do. 부분은 *.nhn으로 바꾸어 주면 된다.
'study > java' 카테고리의 다른 글
[JBoss] JBoss 소개와 특징 (0) | 2022.01.07 |
---|---|
Tomcat, JBoss 차이 (0) | 2022.01.07 |
Tomcat : 개인키 및 SSL 인증서 적용 (0) | 2022.01.06 |
1. 게시판 만들기 환경설정 egovframework(전자정부프레임워크) springframework(스프링프레임워크) (0) | 2022.01.06 |
전자정부 표준프레임워크 3.9 all-in-one 처음 셋팅해보기 -1( 프로그램 준비) (0) | 2022.01.06 |