`

doGet与doPost的区别

阅读更多
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" name=”form1” method="get">
………
<input type="text" name="username">
………
</form>
servlet代码:
public class doGet_servlet extends HttpServlet {
  public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
      request.setCaracterEncoding(“UTF-8”);//汉字转码
      String username = request.getParameter("username");

request.setAttribute("username",username);

       request.getRequestDispatcher("/out.jsp").forward(request, response);//跳转到out.jsp页面

  }
}

out.jsp页面

<html>

``````

<%=request.getAttribute("username")%>//在页面上输出username的信息

</html>
这样提交表单后,参数会自动添加到浏览器地址栏中,带来安全性问题。

2.doPost
它用于客户端把数据传送到服务器端,也会有副作用。但好处是可以隐藏传送给服务器的任何数据。Post适合发送大量的数据。
例:
jsp页代码:
<form action="/doPostt_servlet" name=”form2” method="post">
………
<textarea name="name2" 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(“UTF-8”);//汉字转码
      PrintWriter out = response.getWriter();
      out.println("The Parameter are :"+request.getParameter("name2"));
  }
}
最好用上面在doGet中提到的输出方式进行输出
3.可以把方法写在doGet()方法中,在doPost()方法中调用执行,这样,无论你提交的是post还是get方法都可以执行
例如:
jsp页代码:
<form action="/servlet" name=”form” method="post">
………
<input type="text" name="name1">
………
</form>
servlet代码:
public class servlet extends HttpServlet {
  public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
      request.setCaracterEncoding(“UTF-8”);//汉字转码
      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,但使用的比较少。
分享到:
评论

相关推荐

    doGet与doPost之间的区别 doGet与doPost之间的区别

    doGet与doPost之间的区别 doGet 和 doPost 是 Servlet 中两个重要的方法,它们都是 HttpServlet 中定义的抽象方法,分别对应着 HTTP 的 GET 和 POST 请求。了解 doGet 和 doPost 之间的区别对于 Servlet 的开发和...

    doget和dopost的区别

    标题与描述概述的知识点主要集中在GET与POST请求方法的区别,以及它们在Web开发,特别是Java Servlet环境中的应用。为了深入理解和掌握这些知识点,我们可以从以下几个方面进行详细探讨: ### 安全性差异 GET请求...

    Servlet中doGet与doPost的区别

    理解`doGet`与`doPost`的区别对于开发基于Servlet的Web应用程序至关重要。它们不仅涉及数据传输的安全性和效率,还关系到应用程序的功能实现和用户体验。通过合理地选择和使用这两种方法,开发者可以构建出既安全又...

    doGet与doPost下载文件的案例

    总结来说,`doGet`和`doPost`在Java Web中扮演着不同角色:`doGet`常用于展示信息,而`doPost`则适合处理更复杂的数据提交,包括文件下载。在实际应用中,你需要根据具体需求选择合适的方法,并正确处理请求和响应。

    doget和dopost中文乱码问题1

    DOGET和DOPOST中文乱码问题解决方案 DOGET和DOPOST是常用的HTTP请求方法,分别对应GET和POST请求。在Web开发中,中文字符的乱码问题是一个常见的问题,特别是在使用DOGET和DOPOST请求时。今天,我们将讨论DOGET和...

    13-Servlet访问流程以及doGet和doPost.pdf

    在本文中,我们将深入探讨Servlet的访问流程、生命周期以及doGet和doPost方法的工作原理。 首先,让我们了解Servlet的访问流程。当用户在浏览器中输入URL并提交请求时,这个请求会被发送到服务器。Tomcat这样的Web...

    doGet、doPost、模拟post上传文件等http请求util

    模拟http请求实现文件上传,模拟doGet、doPost请求,实现信息发送

    c++通过doget和dopost的方式连接http的类

    在`HttpClient.h`中,你可以期待看到`HttpClient`类的声明,包括其成员变量、构造函数、析构函数以及`doGet`和`doPost`这样的成员函数。`doGet`函数用于发送一个GET请求,而`doPost`函数则用于发送POST请求。这些...

    【servlet】彻底解决doGet、doPost以及控制台中文乱码问题

    我们在javaWeb项目时,使用doget和dopost总是会出现各种原因的中文乱码问题,楼主在查阅大量资料后,将为什么有这样的问题,和如何解决这种问题做个总结。 思维导图: 1. 应答乱码处理(response输出页面时乱码) 1.1 ...

    Java doGet, doPost方法和文件上传实例代码

    `doPost`方法接收的参数与`doGet`相同,但在处理复杂数据或大容量数据时更为适用,因为它允许将大量数据放在请求体中。 ```java protected void doPost(HttpServletRequest request, HttpServletResponse ...

    doget dopost区别

    ### doget 与 dopost 的区别详解 #### 一、HTTP 请求方法概述 HTTP (Hypertext Transfer Protocol) 是互联网上应用最为广泛的一种网络协议,主要用于网页信息的传输。HTTP 协议定义了一系列请求方法来完成不同的...

    doGet()和doPost()的区别

    了解这两种方法的区别对于编写高效、安全的Web应用程序至关重要。 首先,GET是HTTP请求中最常见的一种方式,它主要用于获取资源。当用户在浏览器地址栏输入URL或点击链接时,通常就是GET请求。在Servlet中,`doGet...

    httpclient-helper:一个包含Spring的HttpClient的项目,该项目的成本,您可以高效,轻松地执行doGet和doPost

    ####spring-httpclient-helper是将HttpClient与Spring整合的一个工具,HttpClient的一个帮助,对外只暴露一个多例的HttpClientApiService,该类封装了doGet和doPost等常用的Http请求方式使用了HttpClient的连接池...

    自己写的用于Servlet中doGet方法转码

    在这个特定的场景中,我们关注的是如何在Servlet的`doGet`方法中进行字符编码的转换,特别是将数据从一种编码格式转换为UTF-8。 首先,让我们了解字符编码的基本概念。字符编码是将字符(如字母、数字和符号)转换...

    使用Servlet实现用户注册共4页.pdf.zip

    三、HTTP方法与doGet()、doPost() 在用户注册场景中,通常使用POST方法提交数据,因为POST可以传输大量数据且数据不会显示在URL中。Servlet通过重写doPost()方法来处理POST请求。doGet()方法则用于处理GET请求,但...

    课件学习Servlet课件学习课件学习

    每当有请求到达时,Servlet容器(如Tomcat)会调用Servlet的service方法,根据请求类型分派到对应的doGet或doPost方法。在web.xml配置文件中,我们需要为Servlet指定URL映射,以便服务器知道如何路由请求。 在实际...

    WebUtils.doPost

    String getString=WebUtils.doPost(path, map2,"GBK") ; if("1".equals(getString.trim())){ MainForm.log("成功导入|i="+i+":userName="+employee_no); }else{ MainForm...

    JavaWeb的三大组件详细总结

    文章目录一、Servlet(Server Applet)1、Servlet概述:1、ServletConfig API:2、GenericServlet类2、HttpServlet类:(重点掌握)1、doGet和doPost的区别:2、Servlet细节:3、web.xml文件(了解)4、...

Global site tag (gtag.js) - Google Analytics