2012-07-29 5 views
0

jsp에서 책 (학교 책)을 읽고 있었는데 이해할 수없는 것이있었습니다. 이 책에서 우리는 JSP 페이지를 실행했고, 그것을 위해 그들이 톰캣 5.5 servlet.xml 파일에서 컨텍스트를 설정합니다tomcat/conf/context.xml의 컨텍스트는 무엇입니까? 가상 호스트?

<Context path="JSPTEST" docBase = "G:\Tomcat5.5"\webapps\JSPTEST"></Context> 

해당 폴더에있는 JSP가 http://localhost:8080/JSPTEST/filename.jsp

가장 먼저하는 일에 액세스 할 수 있습니다 I 깨닫게되는 것은 docBase가 실제로 서버의 webapp이므로이 컨텍스트를 설정하거나 설정하지 않고도 여전히 동일하게 실행됩니다. url 그래서 요점은 무엇입니까?

은 내가 바람둥이 7을 설치하고 Tomcat을 다시 시작하고 더 response.server 아래 this in catalina_log에 없었다 있었다 나는 practical 폴더 아래에 Hello.jsp에 넣어 conf/context.xml

Context docBase="F:\work\bscit\serverside\practical" path="serverside" reloadable="true" /> 

에 컨텍스트를 추가했다. 내게 그것은 가상 호스트를 설정하는 또 다른 방법이다. (나는 아파치 아파치에서 가상 호스트를 만드는 법을 잘 알고있다.) 지금 당장은 혼란 스럽다.

질문 1 정확하게 사용 된 문맥은 무엇입니까? 나는 2가 어떻게 바람둥이 7에서 "동일한"일 작업을 할 수 있습니다 질문 (물론 바람둥이에서 파일을주지 않고) 종

을 울리지 않았다 tomcat doc를 살펴 했어?

답변

2

1- 컨텍스트 란 웹 컨테이너 내부의 webb-app를 설명합니다. 여기에서 리소스가 위치한 웹 응용 프로그램 path="JSPTEST" (문서 기반/루트) docBase = "G:\Tomcat5.5"\webapps\JSPTEST" 및 데이터베이스 액세스를위한 JNDI 리소스와 같은 기타 항목에 액세스하는 데 사용할 경로를 정의 할 수 있습니다.

은 그래서 당신은 톰캣 5에서했던 설정은 다음과 같이 읽을 수 있습니다 :

내가 경로 JSPTEST (마녀가 당신의 웹 응용 프로그램의 루트입니다) 그가에 정의 된 실제 디렉터리 내부 모습에 대한 서버를 물어 보면 docBase 해당 컨텍스트 요소입니다. 일단 서버가 자원 filename.jsp 프로세스 (정적 컨텐츠가 아니기 때문에 jsp는 먼저 컴파일되어 html을 생성해야 함)보다 조회되고 클라이언트에게 제공됩니다. 톰캣 7 (또는 wahtever 버전)에서 자원 hello.jsp를 검색 할 수 있으려면 톰캣 7

2를 위해 만든 설정을 읽을 수 같은 방법으로

URL은해야 http://localhost:8080/serverside/hello.jsp

콘텐츠가 물리적으로 저장된 디렉토리의 이름은 콘텐츠에 액세스하기위한 URL에서 아무런 역할을하지 않습니다. 요소 pathdocbase 사이의 조합입니다.

대답이

루트 잘못이 오류 (conf/context.xml을 읽는 동안 XML 구문 분석 오류) 당신이 얻고있는 원인이 무엇으로 그 자체가 context 요소를 가지고있는 conf/context.xml 내부의 상황에 맞는 요소를 퍼팅. context.xml을 사용하여 웹 응용 프로그램을 구성하는 두 가지 방법이 있습니다. here을 살펴보십시오. 신중하게 포인트 1과 2를 읽으십시오!

그래서 할 일들이 작동 :

어느

1- serverside 이름 webapps 내부 만들기를 conf/Catalina/localhost/

또는

2에 디렉토리를 내용 <Context docBase="F:\work\bscit\serverside\practical" path="serverside" reloadable="true" ></Context>serverside.xml라는 이름의 파일을 넣어 jsp를 그 안에 넣으십시오. 이 경우 serversid/META-INF/context.xml 파일이 필요하지 않습니다. 웹 응용 프로그램에 대한 다른 자원을 정의하려는 경우가 아니면 docBasepath 요소가 표시되지 않을 수 있습니다.

는 다음 (2) 생산을위한 좋은 http://localhost:8080/serverside/hello.jsp

(1) 개발을위한 좋은 호출합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 실제로 http : // localhost : 8080/serverside/hello.jsp를 치고 이미 시도했지만 wholes 서버는 다운되었다. 다음은'conf/context.xml'의 컨텍스트 설정입니다 :'Context docBase = "F : \ work \ bscit \ serverside \ practical"path = "serverside"reloadable = "true">'http : : //pastie.org/4354291. 이것은 web-inf 외의 단순한 웹 애플리케이션입니다. –

+0

서버가 다운 된 경우 HTTP 404 오류가 발생하지 않습니다. ;-). – A4L

+0

네가 맞아, 나 한테 실수 였어. 내가 편집 한 게시물이 다운되었습니다. '404'가 아니다. pastie의 오류에서 ROOT가로드되지 않는다는 것을 알 수 있습니다. 덕분에 –