Java servlet中请求的资源不允许使用指定的http方法
我编写带有注释的控制器来映射控制器。 在jsp页面中,我向控制器发出了ajax请求,但出现了错误 " 类型:状态报告 消息:此URL不支持HTTP方法GET 描述:请求的资源不允许使用指定的HTTP方法。 " 为什么会这样 控制器类:Java servlet中请求的资源不允许使用指定的http方法,java,ajax,jsp,servlets,Java,Ajax,Jsp,Servlets,我编写带有注释的控制器来映射控制器。 在jsp页面中,我向控制器发出了ajax请求,但出现了错误 " 类型:状态报告 消息:此URL不支持HTTP方法GET 描述:请求的资源不允许使用指定的HTTP方法。 " 为什么会这样 控制器类: package controllers; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet
package controllers;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.AntiXss;
import model.HibernateToDoListDAO;
import model.Items;
import model.ToDoListDAOException;
import model.User;
@WebServlet("/DeleteMessage/*")
public class DeleteMessageController extends HttpServlet{
private static final long serialVersionUID = 1L;
HttpSession session = null;
User user = null;
Items item = null;
List<Items> items = null;
String message;
HibernateToDoListDAO actions = HibernateToDoListDAO.getInstance();
public DeleteMessageController()
{
super();
}
@Override
@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
session = request.getSession(false);
if(session == null)
{
response.sendRedirect("error.jsp");
}
try{
message = request.getParameter("item");
if(AntiXss.isUsername(message) == false )
{
if(session != null){
session.invalidate();
}
response.sendRedirect("error.jsp");
}
else
{
items = (List<Items>)session.getAttribute("listItems");
user = (User)session.getAttribute("user");
for(Items newItem : items)
{
if(newItem.getMessage() == message && newItem.getUsername() == user.getUsername())
{
item = newItem;
}
}
actions.deleteItems(item);
items = actions.getItems(user.getUsername());
session.setAttribute("listItems", items);
request.getRequestDispatcher("Index.jsp").forward(request, response);
}
}catch(ToDoListDAOException e){
e.printStackTrace();
}
}
}
尝试对
XMLHttpRequest.open()
:xmlhttp.open(“POST”,url,true)中的方法使用大写字母代码>我更改了,但现在他告诉我无法连接到服务器。请查看异常对象(e
),可能它包含有关错误的更多信息。另外,用Firebug或类似的东西检查请求,并查看控制台。我怀疑你的URL完全错了。我尝试了这个,他给了我“xmlhttprequest.open不是一个函数”,我在谷歌搜索,但我没有发现类似我的问题。我发现了问题:1)当我第一次尝试连接我的应用程序时,它是连接的,但会话被破坏,我不知道为什么我试着让听众听,但我看不出有什么不同。2) 当我发送请求ajax时,我可以进入控制器,但它没有执行“request.getRequestDispatcher(“Index.jsp”).forward(request,response)”一行,尝试在XMLHttpRequest.open()
:xmlhttp.open(“POST”,url,true)中对方法使用大写字母代码>我更改了,但现在他告诉我无法连接到服务器。请查看异常对象(e
),可能它包含有关错误的更多信息。另外,用Firebug或类似的东西检查请求,并查看控制台。我怀疑你的URL完全错了。我尝试了这个,他给了我“xmlhttprequest.open不是一个函数”,我在谷歌搜索,但我没有发现类似我的问题。我发现了问题:1)当我第一次尝试连接我的应用程序时,它是连接的,但会话被破坏,我不知道为什么我试着让听众听,但我看不出有什么不同。2) 当我发送请求ajax时,我可以进入控制器,但它没有执行“request.getRequestDispatcher(“Index.jsp”).forward(请求,响应)”这一行
var xmlhttp = new XMLHttpRequest();
var item = "test";
if((txtSearch(item, item.length)) == 1)
{
var url = "DeleteMessage";
try
{
xmlhttp.open("post",url,true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("item=" + item);
}catch(e){
alert("unable to connect to server");
}
}