servlet中doPost()和doGet()

本文详细对比了HTTP协议中的GET和POST方法的区别。GET方法适用于获取信息,数据可见于URL,存在安全风险及长度限制;POST方法则适用于发送大量数据,能有效保护数据隐私。文章还介绍了如何在Servlet中处理这两种请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般来说我们是用不到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方法中。servlet碰到doGet方法调用直接就会去调用doPost因为他们的参数都一样。而且doGet方法处理中文问题很困难,要写过滤器之类的。

以上from 百度知道 @權寶兒

在网上搜集了一些资料,把两方法的区别整理如下:
get和post是http协议的两种方法,另外还有head, delete等
这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。
在servlet开发中,以doGet()和doPost()分别处理get和post方法。
首先判断请求时是get还是post,如果是get就调用doGet(), 如果是post就调用doPost()。都会执行这个方法。
1.doGet
GET调用用于获取服务器信息,并将其做为响应返回给客户端。当经由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,一般用GET调用。GET调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来一些问题,比如用户登录,表单里的用户名和密码需要发送到服务器端,若使用Get调用,就会在浏览器的URL中显示用户名和密码。
例:
jsp页代码:
<form action="/doGet_servlet" method="get">
………
<input type="text" >
………
</form>
servlet代码:
public class doGet_servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name1"));
}
}
这样提交表单后,参数会自动添加到浏览器地址栏中,带来安全性问题。

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

3.可以把方法写在doGet()方法中,在doPost()方法中调用执行,这样,无论你提交的是post还是get方法都可以执行
例如:
jsp页代码:
<form action="/servlet" method="post">
………
<input type="text" >
………
</form>
servlet代码:
public class servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name1"));
}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
this.goGet(request,response);//调用doGet()方法
}
}
另外,HttpServlet处理客户端请求方式还有doPut、doDelete、doTrace、doHead、doOptions,但使用的比较少。
### 回答1: doGetdoPostServlet中两个常用的方法。 doGet方法用于处理HTTP GET请求,通常用于获取数据或页面的显示。在doGet方法中,可以通过request对象获取请求参数,通过response对象向客户端发送响应数据。 doPost方法用于处理HTTP POST请求,通常用于提交数据或执行操作。在doPost方法中,可以通过request对象获取请求参数,通过response对象向客户端发送响应数据。 在Servlet中,通常会根据具体的业务需求选择使用doGetdoPost方法,或者同时使用两个方法。 ### 回答2: 在Java中,Servlet是用于处理Web请求响应的Java类。其中的doGetdoPostServlet中两个常用的方法。 doGet是一个处理HTTP GET请求的方法。当浏览器发送一个GET请求给Servlet时,Servlet将自动调用doGet方法来处理该请求。通常,doGet方法用于从服务器获取数据,如从数据库中获取信息并返回给浏览器显示。在doGet方法中,可以通过HttpServletRequest对象获取请求参数,并通过HttpServletResponse对象向浏览器发送响应。 doPost是一个处理HTTP POST请求的方法。当浏览器发送一个POST请求给Servlet时,Servlet将自动调用doPost方法来处理该请求。通常,doPost方法用于向服务器提交数据,如通过一个表单向数据库插入新的数据。在doPost方法中,同样可以通过HttpServletRequest对象获取请求参数,并通过HttpServletResponse对象向浏览器发送响应。 在Servlet中,通常情况下我们会根据具体需求选择使用doGetdoPost方法来处理请求。如果我们只是需要获取一些数据,我们可以选择使用doGet方法,因为GET请求在URL中会携带请求参数,可以直接从URL中获取。而如果我们需要向服务器提交数据,我们可以选择使用doPost方法,因为POST请求中的参数是放入请求体中,相对安全。另外,对于一些特殊情况,我们也可以重写doGetdoPost方法,使用相同的业务逻辑处理GETPOST请求。 总之,doGetdoPostServlet中用于处理GETPOST请求的两个方法,根据具体需求选择使用。 ### 回答3: 在Servlet中,doGet()doPost()都是用于处理HTTP请求的方法。 doGet()方法用于处理GET请求。GET请求是最常见的HTTP请求类型,通常用于获取服务器上的资源。当客户端发送一个GET请求时,Servlet容器会调用doGet()方法来处理该请求。在doGet()方法中,可以获取请求参数、处理业务逻辑,并且可以通过HttpServletResponse对象将响应数据返回给客户端。 doPost()方法用于处理POST请求。POST请求也是常见的HTTP请求类型,与GET请求不同,POST请求通常用于向服务器提交数据。当客户端发送一个POST请求时,Servlet容器会调用doPost()方法来处理该请求。在doPost()方法中,可以通过HttpServletRequest对象获取请求参数、处理业务逻辑,并且可以通过HttpServletResponse对象将响应数据返回给客户端。 在Servlet中,doGet()doPost()方法都是被重写的方法,需要在Servlet类中进行实现。当客户端发送一个HTTP请求时,Servlet容器会根据请求的类型自动调用对应的方法,从而完成请求的处理。 通常情况下,GET方法用于获取资源,而POST方法用于提交数据。在实际应用中,可以根据具体的需求选择使用doGet()或者doPost()方法来处理不同类型的请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值