尝试 POST 到 servlet 导致 HTTP 状态 404 - 找不到相关资源
Attempt to POST to a servlet results in HTTP Status 404 - Could not find resource for relative
我有一个 HTML 表格:
<form action="rest/ws/addNote" method="post">
我正在尝试 POST 此 servlet:
@WebServlet("/ws")
public class AddNote extends HttpServlet {
@POST
@Path("/addNote")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ...
}
}
但我不断收到
HTTP Status 404 - Could not find resource for relative : /ws/addNote of full path: http://localhost:8080/project/rest/ws/addNote
您正在发送一个 post 请求,您的 servlet 中应该有一个 post 请求处理程序方法。我假设您没有使用任何 REST 框架。那么你的 servlet 应该是:
@WebServlet("/rest/ws/addNote")
public class AddNote extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
........
或者,如果您已经在使用任何 REST 框架,例如 Jersy,请不要使用 servlet here.Try 某些 examples
更新
因为您使用的是 REST,请尝试以下而不是 servlet:
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
@Path("/ws")
public class AddNote {
@POST
@Path("/addNote")
public Response addUser(
@FormParam("name") String name,
@FormParam("age") int age) {
.........
这里我假设在您的 web.xml
中,REST 控制器 servlet 映射是 /rest/*
并且您的 html <form>
具有 <input>
个名称为 name,age
,那么 将被传递到上面相应的方法参数中。
你可以看到完整的例子here
我有一个 HTML 表格:
<form action="rest/ws/addNote" method="post">
我正在尝试 POST 此 servlet:
@WebServlet("/ws")
public class AddNote extends HttpServlet {
@POST
@Path("/addNote")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ...
}
}
但我不断收到
HTTP Status 404 - Could not find resource for relative : /ws/addNote of full path: http://localhost:8080/project/rest/ws/addNote
您正在发送一个 post 请求,您的 servlet 中应该有一个 post 请求处理程序方法。我假设您没有使用任何 REST 框架。那么你的 servlet 应该是:
@WebServlet("/rest/ws/addNote")
public class AddNote extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
........
或者,如果您已经在使用任何 REST 框架,例如 Jersy,请不要使用 servlet here.Try 某些 examples
更新
因为您使用的是 REST,请尝试以下而不是 servlet:
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
@Path("/ws")
public class AddNote {
@POST
@Path("/addNote")
public Response addUser(
@FormParam("name") String name,
@FormParam("age") int age) {
.........
这里我假设在您的 web.xml
中,REST 控制器 servlet 映射是 /rest/*
并且您的 html <form>
具有 <input>
个名称为 name,age
,那么 将被传递到上面相应的方法参数中。
你可以看到完整的例子here