JAVA:Servlet根据使用的方法doGet / doPost执行不同的操作

时间:2014-03-18 19:31:56

标签: java eclipse jsp servlets

对于servlet来说,我是一个非常新手,我希望有人能帮助我一点点。

我需要编写一个简单的方法,根据使用的doPostdoGet使用不同的信息调用println,例如:

if (doPost was used) {
    out.println("The doPost method was used);
}

else if (doGet was used) {
    out.println("The doGet method was used);
}
else
{
    out.println("Neither doPost nor doGet was used");
}

有人能帮助我吗? :)

提前致谢!

2 个答案:

答案 0 :(得分:1)

一个简单的servlet的例子,它可以做你想要的类似的东西:

public class ServletDemo1 extends HttpServlet{

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException{
        // do something with GET petitions  
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException{
        // do something with POST petitions 
    }

}

此代码根据GET或POST的请求类型执行不同的操作。或者您可以使用服务方法:

protected void service(HttpServletRequest req, HttpServletResponse resp) {...}

并根据请求方法值(request.getMethod())进行过滤。您可以管理超过GET或POST(如PUT,DELETE ...)

答案 1 :(得分:0)

servlet通常有两个定义名为doGet(...)和doPost(...)的方法。在客户端,当您向服务器端的servlet发出请求时,通常会指定要将请求信息发送到的方法。例如,如果您正在处理涉及JQuery的Java Server页面,那么您将进行如下的Ajax调用:

$.ajax({
      type: "GET",
      url: "/ChatEngine/ChatServlet/users/list?roomId=" + roomID, 
      contentType: "application/json; charset=utf-8",
      cache: false,
      dataType: "json",
      success: process,
      error: function(err) {
      alert('Get User List Error:' + err.responseText + '  Status: ' + err.status); 
      }
    }); 

请注意,type属性设置为“GET”。它可以很容易地设置为POST。当服务器端的servlet收到请求时,它将知道将请求数据发送到哪个方法,doGet(...)或doPost(...)。在servlet中,在每个方法doGet(...)和doPost(...)中,您可以编写println语句,表示执行了哪一个。希望这会有所帮助。