我使用Eclipse Java EE,我有tomcat 7.xx服务器和Java Servlet。我需要在Java Servlet中指定为startpage“WebContent / mypage.html”。
如何使用@WebServlet注释做到这一点?
这是我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<welcome-file-list>
<welcome-file>/ricerca.htm</welcome-file>
</welcome-file-list>
<display-name>Searcher</display-name>
<description>
Searcher!
</description>
<servlet>
<servlet-name>Searcher</servlet-name>
<servlet-class>org.irlab.Searcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Searcher</servlet-name>
<url-pattern>/Searcher</url-pattern>
</servlet-mapping>
</web-app>
我的上下文根是:/ localhost:8181 / Searcher3 /
好的一个解决方案是这样的:@WebServlet(urlPatterns = {“/ Searcher”})在我写的doGet方法中: 的request.getRequestDispatcher( “ricerca.htm”)向前(请求,响应)。
但是为什么web.xml不起作用?我需要在Eclipse Project配置中添加一些内容吗?
答案 0 :(得分:4)
如何使用@WebServlet注释做到这一点?
index.html
是默认欢迎页面之一。您可以使用@WebServlet
注释将Servlet称为welcome-page。您需要将Servlet urlPatterns
映射为/index.html
。与doGet(..)
方法相比,您可以使用mypage.html
转发至RequestDispatcher.forward(..)
。
@WebServlet(urlPatterns = {"/index.html"})
public class IndexServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// forward to mypage.html
request.getRequestDispatcher("mypage.html").forward(request,response);
}
}
答案 1 :(得分:0)
您不需要自定义Servlet
。只需添加
<welcome-file-list>
<welcome-file>mypage.html</welcome-file>
</welcome-file-list>
元素到您的web.xml
。 This is documented here