httpservlet中的dopost方法中为什么要包含doget方法
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String content = request.getParameter("content");
response.getWriter().write(content);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);-------为什么doPost()方法中要包含 doGet(request, response)方法???
}
} 展开
在doPost里面调用doGet而已,协议不同,但是实现逻辑相同,所以直接调用即可。
doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全。而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方式数据的传输载体是URL(提橡蔽交方式能form,也能任意的URL链如如毕接),而POST是HTTP头键值对(只能以form方式提交)。
通常使用的都是doPost方法只要在servlet中让这两个方法互相调用就行了,例如在doGet方法中这样写:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
扩展资料:
doPost用于客户端把数据传送到服务器端,也会有副作用。但好处是可渣芹以隐藏传送给服务器的任何数据。Post适合发送大量的数据。
例:
jsp页代码:
<form action="/doPostt_servlet" method="post">
………
<textarea cols="50" rows="10"></textarea>
………
</form>
servlet代码:
public class doPostt_servlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse esponse) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name2"));
}
}
<form method="get">
</form>
这个提交到后台请锋卜行求的就是doget方法
<form method="post">
</form>
这个提交弊扮到后台请求的就是dopost方法
两个方法里面的内容是一样的,之所以这样调用,是避免代码重复使用。
所以相互调用,可以减小代码量。如果要修改代码,只需岁型要修改一拿模处就可以了,比消雀缓较方便。