Java servlet中请求的资源不允许使用指定的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

我编写带有注释的控制器来映射控制器。 在jsp页面中,我向控制器发出了ajax请求,但出现了错误 " 类型:状态报告

消息:此URL不支持HTTP方法GET

描述:请求的资源不允许使用指定的HTTP方法。 " 为什么会这样

控制器类:

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");
    }
}