走进Servlet-JSP(十)

109 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言:今天继续开发一个带有Servlet(Java小程序)的webapp的学习~

  • 第八步:将以上编译之后的HelloServlet.class文件拷贝到WEB-INF\classes目录下。

  • 第九步:在web.xml文件中编写配置信息,让“请求路径”和“Servlet类名”关联在一起。

    • 这一步用专业术语描述:在web.xml文件中注册Servlet类。
    • <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
                            https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
        version="5.0"
        metadata-complete="true"><!--servlet描述信息-->
          <!--任何一个servlet都对应一个servlet-mapping -->
          <servlet>
              <servlet-name>fdsafdsagfdsafdsa</servlet-name>
              <!--这个位置必须是带有包名的全限定类名-->
              <servlet-class>com.bjpowernode.servlet.HelloServlet</servlet-class>
          </servlet><!--servlet映射信息-->
          <servlet-mapping>
              <!--这个也是随便的,不过这里写的内容要和上面的一样。-->
              <servlet-name>fdsafdsagfdsafdsa</servlet-name>
              <!--这里需要一个路径-->
              <!--这个路径唯一的要求是必须以 / 开始-->
              <!--当前这个路径可以随便写-->
              <url-pattern>/fdsa/fd/saf/d/sa/fd/sa/fd</url-pattern>
          </servlet-mapping>
          
      </web-app>
  • 第十步:启动Tomcat服务器

  • 第十一步:打开浏览器,在浏览器地址栏上输入一个url,这个URL必须是:

    • http://127.0.0.1:8080/crm/fdsa/fd/saf/d/sa/fd/sa/fd
    • 非常重要的一件事:浏览器上的请求路径不能随便写,这个请求路径必须和web.xml文件中的url-pattern一致。
    • 注意:浏览器上的请求路径和web.xml文件中的url-pattern的唯一区别就是:浏览器上的请求路径带项目名:/crm
  • 浏览器上编写的路径太复杂,可以使用超链接。(非常重要:html页面只能放到WEB-INF目录外面。

  • 以后不需要我们编写main方法了。tomcat服务器负责调用main方法,Tomcat服务器启动的时候执行的就是main方法。我们javaweb程序员只需要编写Servlet接口的实现类,然后将其注册到web.xml文件中,即可。

  • 总结一下:一个合法的webapp目录结构应该是怎样的?

    webapproot
         |------WEB-INF
                  |------classes(存放字节码)
                  |------lib(第三方jar包)
                  |------web.xml(注册Servlet)
         |------html
         |------css
         |------javascript
         |------image
         ....
    
  • 浏览器发送请求,到最终服务器调用Servlet中的方法,是怎样的一个过程?(以下这个过程描述的很粗糙。其中还有很多步骤我省略了。)

    • 用户输入URL,或者直接点击超链接:http://127.0.0.1:8080/crm/fdsa/fd/saf/d/sa/fd/sa/fd
    • 然后Tomcat服务器接收到请求,截取路径:/crm/fdsa/fd/saf/d/sa/fd/sa/fd
    • Tomcat服务器找到crm项目
    • Tomcat服务器在web.xml文件中查找/fdsa/fd/saf/d/sa/fd/sa/fd 对应的Servlet是:com.bjpowernode.servlet.HelloServlet
    • Tomcat服务器通过反射机制,创建com.bjpowernode.servlet.HelloServlet的对象。
    • Tomcat服务器调用com.bjpowernode.servlet.HelloServlet对象的service方法。