12.1.4 一个简单的Servlet(4)

12.1.4  一个简单的Servlet(4)

  注意代码中以粗体显示的部分,这部分代码使用了<servlet>和<servlet-mapping>元素,以及它们的子元素来部署HelloWorldServlet.在web.xml文件中,可以包含多个<servlet>和<servlet-mapping>元素,用于部署多个Servlet.

  <servlet>元素用于声明Servlet,<servlet-name>子元素用于指定Servlet的名字,在同一个Web应用程序中,每一个Servlet的名字必须是唯一的,该元素的内容不能为空。<servlet-class>子元素用于指定Servlet类的完整限定名(如果有包名,要同时给出包名)。

  <servlet-mapping>元素用于在Servlet和URL样式之间定义一个映射。它的子元素<servlet-name>指定的 Servlet 名字必须和<servlet>元素中的子元素<servlet-name>给出的名字相同。<url-pattern>子元素用于指定访问该Servlet的URL路径,该路径是相对于Web应用程序上下文根的路径。

  经过这样的配置之后,我们可以在浏览器的地址栏中输入http://localhost:8080/ch12/helloworld来访问HelloWorldServlet.当Servlet容器接收到/ch12/helloworld的请求后,就会将请求发送给ch12 Web应用程序的Context(参见第11.6节),ch12 Web应用程序的Context首先移除该Web应用程序上下文路径的前缀/ch12,然后将剩余部分与web.xml文件中配置的<url-pattern>元素的内容相比较,找到对应的Servlet名字为HelloWorldServlet,再根据这个名字找到HelloWorldServlet类,进而实例化这个类,对请求进行处理。

  将编写好的web.xml文件保存到%CATALINA_HOME%\webapps\ch12\WEB-INF目录下。读者也可以将%CATALINA_HOME%\webapps\ROOT\WEB-INF目录下的web.xml复制一份,存放到%CATALINA_HOME%\ webapps\ch12\WEB-INF目录下,这个文件的内容如下:

  <?xml version="1.0" encoding="ISO-8859-1"?>

  <web-app xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

  version="3.0"

  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>

  <description>

  Welcome to Tomcat

  </description>

  </web-app>

  然后编辑这个文件,添加HelloWorldServlet的配置,如下所示:

  <?xml version="1.0" encoding="ISO-8859-1"?>

  <web-app xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

  version="3.0">

  <display-name>Welcome to Tomcat</display-name>

  <description>

  Welcome to Tomcat

  </description>

  <servlet>

  <servlet-name>HelloWorldServlet</servlet-name>

  <servlet-class>org.sunxin.ch12.servlet.HelloWorldServlet

  </servlet-class>

  </servlet>

  <servlet-mapping>

  <servlet-name>HelloWorldServlet</servlet-name>

  <url-pattern>/helloworld</url-pattern>

  </servlet-mapping>

  </web-app>

  %CATALINA_HOME%\webapps\ROOT目录是Tomcat默认的Web应用程序的起始路径,当我们输入http://localhost:8080/时,访问的就是该目录下的Web应用程序资源。如果将本例的Servlet部署在该目录下,访问时只需输入http://localhost:8080/helloworld即可。

  Step4:访问HelloWorldServlet

  当部署好Servlet之后,对客户端来说,访问Servlet和访问静态页面没有什么区别。为了让读者对Servlet的访问有一个较好的感性认识,在这里我们通过两种方式来访问SimpleHello.

你可能感兴趣的:(12.1.4 一个简单的Servlet(4))