我在理解url映射对servlet的工作方式时遇到了一些问题。

我在网上看了无数的教程,并在这里发贴,但是没有运气。

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

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

我的索引页将由web.xml调用,并将显示一个按钮,一旦按下该按钮,它将向Servlet发送获取请求。

问题是,一旦按下按钮,页面就不会更改网址旁边的任何内容,

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>


我非常有信心,问题在于索引表单操作中的寻址问题,但是我实在无法解决应该放在哪里。我尝试了几种方法,但是没有运气。

最佳答案

你快到了。只需在您的操作中添加../,这样它就可以退后一步。目前,它指向的位置与您的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>

08-27 07:28