Servlet url-映射
Servlet url-mapping
我在理解 url-mapping 如何为 servlet 工作时遇到了一些问题。
我在网上看了很多教程并在这里发帖,但没有运气。
所以,假设我有一个 servlet (WelcomeServlet.java)、一个索引页 (index.html) 和我的 web.xml 文件。
WelcomeServlet.java 文件在 src 目录中,而 index.html 在 WebContent 目录中。
我的索引页面将被 web.xml 调用,并将显示一个按钮,按下该按钮后,将向 servlet 发送获取请求。
问题是,一旦我按下按钮,除了来自
的 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>
这是 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>
我非常有信心问题出在索引表单操作中的寻址,但我真的无法理解我应该把什么放在那里。我尝试了几种方法,但没有成功。
假设您在 IDE 中设置的默认源目录是 /src 而您的默认 Web 内容目录是 /web 那么在您的 servlet-context 中只写您的 servlet 名称而不带“/”。确保您的默认 Web 内容目录是 WebContent。之后从表单的 action 属性中删除“/”。
你快到了。只需在您的操作中添加 ../ ,这样它就可以后退一步。目前,它指向与您的 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>
我在理解 url-mapping 如何为 servlet 工作时遇到了一些问题。
我在网上看了很多教程并在这里发帖,但没有运气。
所以,假设我有一个 servlet (WelcomeServlet.java)、一个索引页 (index.html) 和我的 web.xml 文件。
WelcomeServlet.java 文件在 src 目录中,而 index.html 在 WebContent 目录中。
我的索引页面将被 web.xml 调用,并将显示一个按钮,按下该按钮后,将向 servlet 发送获取请求。
问题是,一旦我按下按钮,除了来自
的 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>
这是 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>
我非常有信心问题出在索引表单操作中的寻址,但我真的无法理解我应该把什么放在那里。我尝试了几种方法,但没有成功。
假设您在 IDE 中设置的默认源目录是 /src 而您的默认 Web 内容目录是 /web 那么在您的 servlet-context 中只写您的 servlet 名称而不带“/”。确保您的默认 Web 内容目录是 WebContent。之后从表单的 action 属性中删除“/”。
你快到了。只需在您的操作中添加 ../ ,这样它就可以后退一步。目前,它指向与您的 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>