Servlet网址映射

时间:2017-04-24 13:51:30

标签: java servlets servlet-mapping

我有一些问题需要了解url-mapping如何为servlet工作。

我在网上观看了很多教程,但是没有运气。

所以,假设我有一个servlet(WelcomeServlet.java),一个索引页面(index.html)和我的web.xml文件。

WelcomeServlet.java文件位于src目录中,而index.html位于WebContent目录中。

我的索引页面将由web.xml调用,并显示一个按钮,按下该按钮后,将向servlet发送一个get请求。

问题是,一旦我按下按钮,页面旁边的任何内容都不会改变,来自

http://localhost:8080/WelcomeServlet

http://localhost:8080/WelcomeServlet/

这是索引页面的主体:

<body>
    <form action = "/WelcomeServlet" method = "get">
    <p><label>Click the button to invoke the servlet
            <input type = "submit" value = "Get HTML Document"/>
    </label></p>
    </form>
</body>

这是web.xml servlet映射:

<servlet>
        <servlet-name>welse</servlet-name>
        <servlet-class>WelcomeServlet</servlet-class>
</servlet>

<servlet-mapping>
        <servlet-name>welse</servlet-name>
        <url-pattern>/WelcomeServlet</url-pattern>
</servlet-mapping>

<welcome-file-list>
        <welcome-file>Index.html</welcome-file>
</welcome-file-list>

我非常有信心问题是索引表格中的解决方案,但我真的无法理解我应该放在哪里。我尝试了几条路,但没有运气。

2 个答案:

答案 0 :(得分:2)

你几乎就在那里。只需在您的操作中添加../,以便它可以返回一步。目前,它指向与html文件相同的位置。

<body>
    <form action = "../WelcomeServlet" method = "get">
    <p><label>Click the button to invoke the servlet
            <input type = "submit" value = "Get HTML Document"/>
    </label></p>
    </form>
</body>

答案 1 :(得分:1)

假设您在IDE中设置的默认源目录是/ src而您的默认Web内容目录是/ web,那么在您的servlet上下文中只需编写您的servlet名称而不使用&#34; /&#34;。确保您的默认Web内容目录是WebContent。之后删除&#34; /&#34;来自表单的action属性。