如何在不使用web.xml部署描述符的情况下从表单的操作中调用servlet?
答案 0 :(得分: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 v3和Tomcat 7下选择Servlet 3.0实现。
在Servlet 3.0之前,最好的选择可能是前端控制器模式。在web.xml
中有一个servlet,它根据请求参数和/或pathinfo将请求/操作委托给域对象。这也用于平均MVC框架。
答案 1 :(得分:1)
您可以直接使用类名来调用Web服务器中的servlet
如果您的网址为http://myurl.com/
然后,将完整的类名附加到url将调用servlet。
例如:
如果我的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
但网址变脏了。但是您不需要使用web.xml来调用servlet。