>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 21569 个阅读者 刷新本主题
 * 贴子主题:  Servlet 类的包名,存放路径和打包 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-29 19:38:55     消息  查看  搜索  好友  邮件  复制  引用

  

Servlet 类的包名,存放路径和打包

涉及到 WEB-INF 子目录的 Web 应用程序结构是所有的 Java web 应用程序的标准,并由 Servlet API 规范指定。给定一个顶级目录名 myapp,目录结构如下所示:

/myapp

     /images

    /WEB-INF

        /classes

        /lib

WEB-INF 子目录中包含应用程序的部署描述符,名为 web.xml。所有的 HTML 文件都位于顶级目录 myapp 下。对于 admin 用户,您会发现 ROOT 目录是 myApp 的父目录。

创建包中的 Servlet

     WEB-INF/classes 目录包含了所有的 Servlet 类和其他类文件,类文件所在的目录结构与他们的包名称匹配。例如,如果您有一个完全合格的类名称 net.javathinker.MyServlet,那么这个 Servlet 类必须位于以下目录中:

      /myapp/WEB-INF/classes/net/javathinker/MyServlet.class

      下面的例子创建包名为 net.javathinker 的 MyServlet 类。

// 为包命名

package net.javathinker;  

        // 导入必需的 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");

               // 实际的逻辑是在这里

      PrintWriter out = response.getWriter();

      out.println("<h1>" + message + "</h1>");

  }

  public void destroy()

  {

      // 什么也不做

  }

}

编译包中的 Servlet

     编译包中的类与编译其他的类没有什么大的不同。最简单的方法是让您的 java 文件保留完全限定路径,如上面提到的类,将被保留在 net.javathinker 中。您还需要在 CLASSPATH 中添加该目录。

      假设您的环境已正确设置,进入 <Tomcat-installation-directory>/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 打包部署

     默认情况下,Servlet 应用程序位于路径 <Tomcat-installation-directory>/webapps/ROOT 下,且类文件放在 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes 中。

     如果您有一个完全合格的类名称 net.javathinker.MyServlet,那么这个 Servlet 类必须位于 WEB-INF/classes/net/javathinker/MyServlet.class 中,您需要在位于 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/ 的 web.xml 文件中创建以下条目:    

<servlet>

        <servlet-name>MyServlet</servlet-name>

        <servlet-class>net.javathinker.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-directory>\bin\startup.bat(在 Windows 上)或 <Tomcat-installation-directory>/bin/startup.sh(在 Linux/Solaris 等上)启动 tomcat 服务器,最后在浏览器的地址栏中输入 http://localhost:8080/MyServlet。如果一切顺利,您会看到下面的结果:

    

Hello World






程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-01-31 21:48:35 重新编辑]
  Java面向对象编程-->继承
  JavaWeb开发-->使用过滤器
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->用Spring整合CXF发布Web服务
  精通Spring-->Vue组件开发基础
  Vue3开发-->创建综合购物网站应用
  Servlet中读JSON请求数据和写JSON响应数据
  JSP 发送邮件
  JSP 自动刷新
  Servlet的调试技巧
  Servlet 发送电子邮件
  编写Servlet过滤器
  Servlet生成HTTP 响应头
  Java微信Java SDK方式进行网页授权
  JSP 到数据库查询的数据 分页显示
  JSP中访问JavaBean
  HTTP协议和相应的RFC文档的更新
  RESTFUL 是否是新的SOAP
  Tomcat的工作模式和运行模式
  Servlet4新特性介绍
  HTTP各个协议版本的特点
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。