1

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

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

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

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

谢谢,

4

3 回答 3

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/

于 2012-09-14T09:51:18.557 回答
1

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

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

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

于 2012-09-14T09:57:24.290 回答
0

标准 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 方法。

于 2012-09-14T10:01:34.613 回答