【问题标题】:how to specify the servlet path in the servlet itself如何在 servlet 本身中指定 servlet 路径
【发布时间】:2012-09-07 11:16:58
【问题描述】:

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

(路径 = /myServlet) public MyNormalServlet 扩展了 HttpServlet....{ . . . }

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

如果有人能帮我解决这个问题,请提供可能的解决方案..

谢谢,

【问题讨论】:

    标签: tomcat servlets servlet-container


    【解决方案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/

    【讨论】:

      【解决方案2】:

      如果您使用的是 Servlet 3 容器,您可以使用 Servlet 3.0 @WebServlet 注释来做到这一点:

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

      您也可以通过这种方式指定描述、初始化参数等。您根本不需要编写任何 XML。请参阅 Servlet 3.0 Javadoc。

      【讨论】:

        【解决方案3】:

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

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

        例如

        @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 中的根 Web 应用程序上下文,则访问“http://localhost:8080/helloWorld”将执行 helloWorld 方法。

        【讨论】:

          猜你喜欢
          • 2014-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-19
          • 2013-02-11
          • 2018-11-19
          • 1970-01-01
          • 2015-03-10
          相关资源
          最近更新 更多