繁体   English   中英

JAVA:Servlet会根据所使用的方法doGet / doPost做一些不同的事情

[英]JAVA: Servlet doing something different depending on used method doGet/doPost

关于servlet,我是一个新手,我希望有人能帮上我一点。

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

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

有人可以帮我吗? :)

提前致谢!

一个简单的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 ...)

Servlet通常具有两个定义为doGet(...)和doPost(...)的方法。 在客户端,当您向服务器端的Servlet发出请求时,通常会指定要将请求信息发送到的方法。 例如,如果您正在处理涉及JQuery的Java Server Page,那么您将像这样进行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语句,以表明执行了哪一个。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM