Java Servlet:使用@WebServlet批注指定起始页

时间:2013-12-08 15:59:49

标签: xml servlets

我使用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配置中添加一些内容吗?

2 个答案:

答案 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.xmlThis is documented here