>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 21270 个阅读者 刷新本主题
 * 贴子主题:  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标签(Ⅰ)
  JSP与Hibernate开发-->通过JPA API检索数据
  Java网络编程-->用Swing组件展示HTML文档
  精通Spring-->虚拟DOM和render()函数
  Vue3开发-->创建综合购物网站应用
  HTML5 WebSocket的用法
  HTTP 基本工作原理
  JSP XML 数据处理
  JSP HTTP 状态码
  JSP 指令
  Json格式实现数据传输
  javaWeb自定义标签用法实例详解
  读《Tomcat与JavaWeb开发技术详解》的笔记
  HTTP GET和POST方式的区别
  web.xml中配置出错页面,处理异常
  JSP中对异常的处理
  关于GBK,GB2312,UTF-8字符编码的区别
  HTML5 简介
  观看视频:孙卫琴讲解的Web应用运作基本原理,生动直观!
  孙卫琴的JavaWeb视频教程的源代码下载
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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