我有这个问题,我们可以在servlet本身中指定servlet路径,如
(path = / myServlet) public MyNormalServlet扩展了HttpServlet .... { 。 。 。 }
所以如果来自浏览器的呼叫说" http:// localhost:8080 / myServlet" 我的这个servlet将被调用,它也将是tomcat中的一个独立的servlet,它的映射不能在tomcat的web.xml中指定
请问是否有人可以帮助我并为此提供可能的解决方案..
谢谢,
答案 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方法。