我在理解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>