![](/img/trans.png)
[英]Call different method apart from doGet or doPost in sling servlet
[英]JAVA: Servlet doing something different depending on used method doGet/doPost
关于servlet,我是一个新手,我希望有人能帮上我一点。
我需要编写一个简单的方法,调用println,并根据所使用的doPost
或doGet
提供不同的信息,例如:
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.