<servlet-mapping>在web.xml中的作用是什么?</servlet-mapping>

时间:2010-07-16 09:15:45

标签: java

  

可能重复:
  Can anyone explain servlet mapping?

我想要上面的问题理论答案。

1 个答案:

答案 0 :(得分:0)

Servlet属于WEB-INF / classes。在这台机器上,源代码位于/var/www/hosts/www.caucho.com/webapps/resin-3.0/WEB-INF/classes中的Java源代码中。 WEB-INF / classes是servlet和其他Java类的标准位置。 Resin自动重新加载并重新编译放置在WEB-INF / classes中的servlet,bean和类。您应该进行一些更改并添加错误,以熟悉Resin的重新编译和错误报告。

使用您喜欢的文本编辑器在WEB-INF / classes / test / HelloServlet.java中创建以下servlet:notepad,emacs,vi或其他任何内容。 (在这台机器上/var/www/hosts/www.caucho.com/webapps/resin-3.0/WEB-INF/classes/test/HelloServlet.java)

WEB-INF /类/测试/ HelloServlet.java

包裹测试;

import java.io。*;

导入javax.servlet.http。*;

import javax.servlet.*;

public class HelloServlet extends HttpServlet {
  public void doGet (HttpServletRequest req,
                     HttpServletResponse res)
    throws ServletException, IOException
  {
    PrintWriter out = res.getWriter();

    out.println("Hello, world!");
    out.close();
  }
}

现在浏览/resin-3.0/hello上的servlet。 Resin会自动为您编译servlet。浏览servlet与页面浏览不同,因为您正在执行servlet类,而不是查看页面。 / hello URL是为下面的hello,world servlet配置的。

配置

servlet的配置位于WEB-INF / web.xml文件中。

需要配置servlet,并且需要将其映射到URL。标签配置servlet。在我们的简单示例中,我们只需要指定servlet的类名。

标记指定将调用servlet的URL。在我们的例子中,/ hello URL调用servlet。因为教程webapp是像/ doc / servlet / tutorial / helloworld这样的子URL,所以调用servlet的实际URL是两者的组合。

WEB-INF / web.xml中

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd">
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>test.HelloServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>