English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
WEB 관련-INF 서브 디렉토리의 Web 애플리케이션 구조는 모든 Java 웹 애플리케이션의 표준이며, Servlet API 규격에 의해 지정됩니다. 최상위 디렉토리 이름이 myapp인 경우, 디렉토리 구조는 다음과 같습니다:
/myapp /images /WEB-INF /classes /lib
WEB-INF 서브 디렉토리에는 web.xml이라는 이름의 애플리케이션 배포 설명자가 포함되어 있습니다. 모든 HTML 파일은 최상위 디렉토리에 위치합니다 myapp 아래에 있습니다. admin 사용자의 경우, ROOT 디렉토리가 myApp의 상위 디렉토리임을 발견할 수 있습니다.
WEB-INF/classes 디렉토리는 모든 Servlet 클래스와 다른 클래스 파일을 포함하고 있으며, 클래스 파일의 디렉토리 구조는 패키지 이름과 일치합니다. 예를 들어, 완전히 규정된 클래스 이름이 com.myorg.MyServlet라면 이 Servlet 클래스는 다음 디렉토리에 위치해야 합니다:
/myapp/WEB-INF/classes/com/myorg/MyServlet.class
아래의 예제는 패키지 이름이 com.myorg MyServlet 클래스.
// 패키지 이름 지정 package com.myorg; // 필요한 java 라이브러리를 가져오기 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; @WebServlet("/MyServlet) public class MyServlet extends HttpServlet { private String message; public void init() throws ServletException { // 실행이 필요한 초기화 message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html;charset=UTF-8")/html;charset=UTF-8-8"); // 实际的逻辑是在这里 PrintWriter out = response.getWriter(); out.println("<h1>" + message + "</h1}); } public void destroy() { // 什么也不做 } }
编译包中的类与编译其他的类没有什么大的不同。最简单的方法是让您的 java 文件保留完全限定路径,如上面提到的类,将被保留在 com.myorg 中。您还需要在 CLASSPATH 中添加该目录。
假设您的环境已正确设置,进入 <Tomcat-installation-디렉토리>/webapps/ROOT/WEB-INF/classes 目录,并编译 MyServlet.java,如下所示:
$ javac MyServlet.java
如果 Servlet 依赖于其他库,那么您必须在 CLASSPATH 中也要引用那些 JAR 文件。这里我只引用了 servlet-api.jar JAR 文件,因为我在 Hello World 程序中并没有使用任何其他库。
该命令行使用内置的 javac 编译器,它是 Sun Microsystems Java 软件开发工具包(JDK,全称 Java Software Development Kit)附带的。 Microsystems的Java软件开发工具包(JDK)。为了让该命令正常工作,必须包括您在 PATH 环境变量中所使用的 Java SDK 的位置。
如果一切顺利,上述编译会在同一目录下生成 MyServlet.class 文件。下一节将解释如何把一个已编译的 Servlet 部署到生产中。
默认情况下,Servlet 应用程序位于路径 <Tomcat-installation-디렉토리>/webapps/ROOT 下,且类文件放在 <Tomcat-installation-디렉토리>/webapps/ROOT/WEB-INF/classes 中。
如果您有一个完全合格的类名称 com.myorg.MyServlet에 이 Servlet 클래스가 위치해야 합니다.-INF/classes/com/myorg/MyServlet.class에서, Tomcat 내에 위치한 <Tomcat-installation-디렉토리>/webapps/ROOT/WEB-INF/ 의 web.xml 파일에 다음 항목을 생성하세요:
<servlet <servlet-name>MyServlet</servlet-name> <servlet-class>com.myorg.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping>
위의 항목은 web.xml 파일의 <web-app>.../web-app> 태그 내에서 사용해 보겠습니다. 이 파일에는 여러 가지 사용 가능한 항목이 있을 수 있지만, 그것에 대해 신경 쓰지 마세요.
여기까지 왔습니다. 지금은 <Tomcat-installation-디렉토리>\bin\startup.bat(윈도우에서) 또는 <Tomcat-installation-디렉토리>/bin/startup.sh(리눅스에서)/Solaris 등에서 Tomcat 서버를 시작하고, 마지막으로 브라우저의 주소 탐색기에 입력하세요 http://localhost:8080/MyServlet만약 모든 것이 잘 갔다면, 아래의 결과를 볼 수 있습니다:
Hello World |