티스토리 뷰

스프링

9) 서블렛 추가

holy1017 2015. 10. 19. 01:32

2015/10/12 - [스프링] - 1) 스프링 프로젝터 생성하기

2015/10/12 - [스프링] - 2) 스프링 프로젝트 폴더 파일 구조 분석

2015/10/13 - [이클립스] - 3) 스프링 프로젝트 index.html defult.jsp 파일..? 톰캣 web.xml 설정

2015/10/13 - [CSS] - 4) uikit 적용하는 방법, log4j:ERROR Could not parse url 에러 문제

2015/10/15 - [스프링] - 5) 어노테이션 예제 컨트롤러 annotation @Controller

2015/10/15 - [스프링] - 6) 어노테이션 예제 서비스 annotation @Service

2015/10/15 - [스프링] - 7) 스프링 어노테이션 예제 리포지터리 annotation @Repository ,uikit scrollspy 사용법, c:forEach 사용

2015/10/19 - [스프링] - 8) 스프링 로그 출력


지난글에 이어서 프로젝트를 열자...

근데 서블릿 추가는 별거 없다.

그냥 패턴에 따라서 독장하는 방식을 설정하는것뿐이라..

단지 선언 순서만 좀 조심하면 될거다.

일단 /tistory/src/main/webapp/WEB-INF/web.xml 를 열자

아래를 추가한다.

<web-app

...

<servlet>

<servlet-name>holy</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/holy/servlet-*.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>holy</servlet-name>

<url-pattern>/*.holy</url-pattern>

</servlet-mapping>

...

</web-app>

기존 서블릿과는 다른점은

반응 설정파일의 위치라던가(파란색)폴더 위치라던가

반응하는 패턴이 다르다(빨간색)

특히 빨간색부분은 중간에 적힌 주소명이 어찌됬든

경로의 마지막 부분이 .holy로 끝나면 appServlet 보다 우선적으로 처기하겠다는 말이 된다.


그다음 폴더를 만들고 서블릿 설정 파일을 만들자

/tistory/src/main/webapp/WEB-INF/holy 폴더를 만들고

/tistory/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 을 복사해서 붙여넣기한후 열자


음.. 지금보니 기존 서블릿과 같은폴더를 사용하게 생겼다.

/tistory/src/main/java/holy 폴더를 home으로 바꾸자

/tistory/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 열어서

...

<context:component-scan base-package="home"></context:component-scan>

...

<bean

id="loggerInterceptor"

class="common.LoggerInterceptor"></bean>

바꾸고

/tistory/src/main/java/home/common 폴더를

/tistory/src/main/java/common 으로 옮기자

/tistory/src/main/java 아래에 있는 모든 자바파일이 빨간색이 뜰탠데

전부 패키지 선언 위치가 바껴서 그렇다

컨트롤+1 을 눌러서 두번째인 패키지 선언을 바꾸자

home.com.test 패키지 안에 있는 파일들도 마찬가지

나중에 설계를 잘해서 이런일이 없도록 하자.. 

바꿀려면 개고생이다...


이제 새 서블릿을 위한 설정을 하자

/tistory/src/main/webapp/WEB-INF/holy/servlet-context.xml을 열어서 아래처럼 수정

...

<context:component-scan base-package="holy"></context:component-scan>

...

p:prefix="/WEB-INF/holy/"

...

tistory/src/main/java 안에 holy.common을 만들자...

지금 생각난건데 home 폴더를 만들고 자바파일을 옮기면 패키지 경로가 자동으로 바뀌지 않았었나 생각을 한다...;;

어쨋든 holy.common 안에 /tistory/src/main/java/home/com/test/HomeController.java 을 복사해서 넣자

이름은 HolyController.자바 로 수정

내용은 아래로 수정

package holy.common;


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.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;


@Controller

public class HolyController {


private static final Logger logger = LoggerFactory.getLogger(HolyController.class);


@RequestMapping(value = "/test.holy")

public String testHoly(Locale locale, Model model) {

logger.info("/test.holy");


model.addAttribute("testHoly", "testHoly");


return "test";

}

}

web-서블릿-컨트롤러 까지 만들었으니

위 빨간색 친 반응 부분+서블릿 설정(서블릿의 파랑색)대로 해당 폴더에 test.jsp를 만들자.

아... jsp용 폴더하고 서블릿용 폴더를 분할할걸...

하자!!

/tistory/src/main/webapp/WEB-INF/holy/jsp 폴더를 만들고

/tistory/src/main/webapp/WEB-INF/holy/servlet-context.xml 의 내용중

p:prefix="/WEB-INF/holy/jsp/"

/tistory/src/main/webapp/WEB-INF/holy/test.jsp 를

/tistory/src/main/webapp/WEB-INF/holy/jsp/test.jsp 으로 이동

/tistory/src/main/webapp/WEB-INF/holy/servlet 폴더 생성

/tistory/src/main/webapp/WEB-INF/holy/servlet-context.xml 를

/tistory/src/main/webapp/WEB-INF/holy/servlet/servlet-context.xml 으로 이동

/tistory/src/main/webapp/WEB-INF/web.xml의 내용 수정(웁스 경로 수정 안했었었네..)

<servlet>

<servlet-name>holy</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/holy/servlet/servlet-*.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

이제 폴더 정리는 됬으니...

마저 /tistory/src/main/webapp/WEB-INF/holy/jsp/test.jsp 수정하자... 열자..

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

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

${testHoly }

</body>

</html>

단순하게 파람 전달용이라 딱 저거만 섯다.

이제 서버구동

음.. 난 서블릿 설정에 경로 오타내서 아예 서버가 작동 안하는 오류가 났었다...

서블릿 경로 설정 오타는 메세지로도 출력 안되서 참 난감하다;;

아무튼 서버가 정상 구동 됬으면 기본적으로 http://localhost:8080/test/ 경로로 요청된 페이지가 뜬다

http://localhost:8080/test/test.holy 라고 쳐보자

만약 지난번에 서버 구동시 주소값 제대로 바꿨다면 테스트가 아니라 설정한 경로로 제대로 쳐야한다

페이지 설정한데로 내용이 뜰것이다

/tistory/src/main/java/holy/common/HolyController.java 에서 

/tistory/src/main/java/holy/common/HolyController.java 으로 설정한 값이 출력되는걸 볼수 있다

다음엔 erwin 사용법을 써벌까 한다...

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함