java Servlet URL映射
我在理解servlet的url映射工作原理时遇到了一些问题
我在网上看了很多教程和帖子,但运气不好
所以,假设我有一个servlet(WelcomeServlet.java)、一个索引页(index.html)和我的web。xml文件
欢迎光临。java文件位于src目录中,而索引位于src目录中。html在WebContent中
我的索引页将被web调用。xml并将显示一个按钮,一旦按下该按钮,将向servlet发送get请求
问题是,一旦我按下按钮,页面上除了url以外的任何内容都不会改变,这是从
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>
这就是网络。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>
我很有信心问题在于索引表单操作中的寻址,但我真的不知道应该在那里放置什么。我试了好几条路,但没有成功
# 1 楼答案
假设IDE中设置的默认源目录是/src,默认web内容目录是/web,那么在servlet上下文中只需编写servlet名称,而不使用“/”。确保默认的web内容目录是WebContent。然后从表单的action属性中删除“/”
# 2 楼答案
你快到了。只需添加../在你的行动中,让它可以倒退一步。目前,它指向与html文件相同的位置