Servlets 简单HTML表单提交错误

Servlets 简单HTML表单提交错误,servlets,Servlets,我试图创建一个简单的HTML表单,将数据从JSP提交到Servlet。我得到404未发现异常。我的请求URL:http://*****:80**/myapps/more/test.html HTML 您的表单操作URL错误。它应该保持在/myapps上下文中,而不应该走到外部。404错误仅仅意味着请求的URL没有指向任何有效的资源。如果您密切关注浏览器地址栏中的请求URL,您应该注意到/myapps部分已消失 相应地进行修正: <form id="userForm" a

我试图创建一个简单的HTML表单,将数据从JSP提交到Servlet。我得到404未发现异常。我的请求URL:
http://*****:80**/myapps/more/test.html

HTML
您的表单操作URL错误。它应该保持在
/myapps
上下文中,而不应该走到外部。404错误仅仅意味着请求的URL没有指向任何有效的资源。如果您密切关注浏览器地址栏中的请求URL,您应该注意到
/myapps
部分已消失

相应地进行修正:

<form id="userForm" action="/myapps/more/loginServlet" method="post">
或者,如果您担心上下文路径的动态性,请按如下方式内联
HttpServletRequest#getContextPath()

<form id="userForm" action="${pageContext.request.contextPath}/more/loginServlet" method="post">

另一种方法是引入HTML
标记

另见:


与具体问题无关在学习servlet时,您是否绝对肯定自己阅读了正确且最新的教程?您的
web.xml
根声明是一个Servlet2.3版本,已经有十多年的历史了。我们目前已经在使用Servlet3.0。从开始查看一些sane Hello World示例和sane教程的链接。

您的表单操作URL错误。它应该保持在
/myapps
上下文中,而不应该走到外部。404错误仅仅意味着请求的URL没有指向任何有效的资源。如果您密切关注浏览器地址栏中的请求URL,您应该注意到
/myapps
部分已消失

相应地进行修正:

<form id="userForm" action="/myapps/more/loginServlet" method="post">
或者,如果您担心上下文路径的动态性,请按如下方式内联
HttpServletRequest#getContextPath()

<form id="userForm" action="${pageContext.request.contextPath}/more/loginServlet" method="post">

另一种方法是引入HTML
标记

另见:


与具体问题无关在学习servlet时,您是否绝对肯定自己阅读了正确且最新的教程?您的
web.xml
根声明是一个Servlet2.3版本,已经有十多年的历史了。我们目前已经在使用Servlet3.0。从开始获取一些sane Hello World示例和sane教程的链接。

您的应用程序似乎部署在
myapps
上下文路径中(HTML页面URL为
/myapps/more/test.HTML
)。但是您的表单提交到
/more/loginServlet
。它应该提交到
/myapp/more/loginServlet

要避免硬编码页面中的上下文路径,请使用JSTL标记:

<form action="<c:url value='/more/loginServlet'/>" ...>

或者明确地在上下文路径前面加上前缀:

<form action="${pageContext.request.contextPath}/more/loginServlet" ...>

您的应用程序似乎部署在
myapps
上下文路径中(HTML页面URL为
/myapps/more/test.HTML
)。但是您的表单提交到
/more/loginServlet
。它应该提交到
/myapp/more/loginServlet

要避免硬编码页面中的上下文路径,请使用JSTL标记:

<form action="<c:url value='/more/loginServlet'/>" ...>

或者明确地在上下文路径前面加上前缀:

<form action="${pageContext.request.contextPath}/more/loginServlet" ...>