代码之家  ›  专栏  ›  技术社区  ›  jeff

从没有web.xml部署描述符的HTML表单调用servlet

  •  1
  • jeff  · 技术社区  · 16 年前

    在不使用web.xml部署描述符的情况下,如何从表单的操作调用servlet?

    2 回复  |  直到 15 年前
        1
  •  4
  •   BalusC    15 年前

    升级到JavaEE 6/Servlet 3,然后您可以通过 @WebServlet 注释。

    package com.example;
    
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    
    @WebServlet(urlPatterns={"/myServlet/*"})
    public class MyServlet extends HttpServlet {
        // ...
    }
    

    不需要 web.xml 不再。以上基本相同:

    <servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>com.example.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/myServlet/*</url-pattern>
    </servlet-mapping>
    

    到目前为止,您可以从每个 Glassfish v3 和 Tomcat 7 作为servlet 3.0实现。


    在servlet 3.0之前,您的最佳选择可能是前端控制器模式。有一个servlet Web.XML 它根据请求参数和/或pathinfo将请求/操作委托给域对象。这也在平均MVC框架中使用。

        2
  •  1
  •   aNish    16 年前

    您可以直接使用类名来调用Web服务器中的servlet。
    如果你的网址是 http://myurl.com/
    然后,将完整的类名附加到URL将调用servlet。

    如:
    如果我的servlet是com.my.package.servlet.my servlet
    那么,你可以用 http://myurl.com/com.my.package.servlet.MyServlet
    要传递参数, http://myurl.com/com.my.package.servlet.MyServlet?name=myname&user=myuser
    但是,URL变脏了。但是不需要使用web.xml来调用servlet。