如何在servlet本身中指定servlet路径

时间:2012-09-14 09:45:35

标签: tomcat servlets servlet-container

我有这个问题,我们可以在servlet本身中指定servlet路径,如

(path = / myServlet) public MyNormalServlet扩展了HttpServlet .... { 。 。 。 }

所以如果来自浏览器的呼叫说" http:// localhost:8080 / myServlet" 我的这个servlet将被调用,它也将是tomcat中的一个独立的servlet,它的映射不能在tomcat的web.xml中指定

请问是否有人可以帮助我并为此提供可能的解决方案..

谢谢,

3 个答案:

答案 0 :(得分:1)

如果您正在运行Tomcat,只需编辑web.xml文件:

(...)
<servlet>
    <servlet-name>TestingServlet</servlet-name>
    <servlet-class>TestingServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>TestingServlet</servlet-name>
    <url-pattern>/servlet/TestingServlet</url-pattern>
</servlet-mapping>
(...)

其中:  ... servlet的名称。它可以是你想要的任何东西,它必须匹配servlet-mapping内部  ...将处理此servlet的类的名称。

...你想要的任何东西,只要它匹配相同的标签  ...你要回复的url路径..所以在你的例子中你可以在这里输入'/ myServlet'

如果您想详细了解该主题:http://javapapers.com/servlet/what-is-servlet-mapping/

答案 1 :(得分:1)

如果您使用的是Servlet 3容器,则可以使用Servlet 3.0 @WebServlet注释执行此操作:

@WebServlet(urlPatterns={"/path1","/path2"[,...],}

您也可以通过这种方式指定说明,init参数等。您根本不需要编写任何XML。请参阅Servlet 3.0 Javadoc。

答案 2 :(得分:0)

标准servlet不支持您想要的内容。您可以使用带有注释的Spring MVC之类的东西来实现相同的目标。

http://static.springsource.org/spring/docs/3.0.x/reference/mvc.html

e.g。

@Controller
public class HelloWorldController {

    @RequestMapping("/helloWorld")
    public ModelAndView helloWorld() {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("helloWorld");
        mav.addObject("message", "Hello World!");
        return mav;
    }
}

如果您将带有此Spring MVC控制器的Web应用程序部署到Tomcat中的根webapp上下文,则访问“http:// localhost:8080 / helloWorld”将执行helloWorld方法。