1

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

4

2 回答 2

4

升级到 Java EE 6 / Servlet 3.0,然后您就可以通过@WebServlet注解注册 servlet。

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 v3Tomcat 7下选择作为 Servlet 3.0 实现。


在 Servlet 3.0 之前,您最好的选择可能是前端控制器模式。有一个 servlet,web.xml其中根据请求参数和/或路径信息将请求/操作委托给域对象。这也用于一般的 MVC 框架。

于 2010-08-03T22:25:37.703 回答
1

您可以直接使用类名来调用 webserver 中的 servlet。
如果您的 url 是http://myurl.com/
那么,将完整的类名附加到 url 将调用 servlet。

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

于 2010-08-04T01:57:21.263 回答