android doGet和doPost「建议收藏」

android doGet和doPost

大家好,又见面了,我是全栈君。

doGetdoPost的差别

getposthttp协议的两种方法,另外还有head, delete 

这两种方法有本质的差别,get仅仅有一个流,參数附加在url后。大小个数有严格限制且仅仅能是字符串。

post的參数是通过另外的流传递的。不通过url。所以能够非常大,也能够传递二进制数据,如文件的上传。

 

servlet开发中,以doGet()doPost()分别处理getpost方法。

 
首先推断请求时是get还是post,假设是get就调用doGet(), 假设是post就调用doPost()。都会运行这种方法。 

1.doGet
GET 调用用于获取server信息,并将其做为响应返回给client。当经由Web浏览器或通过HTMLJSP直接訪问ServletURL时,一般用GET调用。 GET调用在URL里显示正传送给SERVLET的数据。这在系统的安全方面可能带来一些问题,比方用户登录,表单里的username和password须要发送到server端, 若使用Get调用,就会在浏览器的URL中显示username和password。


例:
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
它用于client把数据传送到server端,也会有副作用。但优点是能够隐藏传送给server的不论什么数据。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处理client请求方式还有doPutdoDeletedoTracedoHeaddoOptions。但使用的比較少。 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116371.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Unity3d快速入门[通俗易懂]

    Unity3d快速入门[通俗易懂]https://www.zhihu.com/question/313621072Unity3d如何快速入门前言进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括:1、主流的学习社区与网站。2、该领域的知名大牛与热心分享的从业者。3、如何有效的激励自己持续学习—主要是动手实践因此,总结一下Unity相关学习资源,可能有些不足,欢迎大家指正修改,一起成长!授人与鱼,不如授人与渔!一、Unity官方学习资源1、【Unity官.

    2022年8月10日
    7
  • MATLAB plotyy总结「建议收藏」

    MATLAB plotyy总结「建议收藏」当需要画出2个两个不同纵坐标的图时,此时的横坐标的图是相同的,在MATLAB中这个函数叫plotyy下面列举的是一个简单的画plotyy的应用几种不同的调用格式1、plotyy(X1,Y1,X2,Y2)2、plotyy(X1,Y1,X2,Y2,function)3、plotyy(X1,Y1,X2,Y2,’function1′,’function2′)4、[AX,H1,H2]=plotyy(___)5、plotyy(AX1,___)1、plotyy(X1,Y1,X2,Y2)直接简单地画

    2022年6月16日
    31
  • TLSF算法分析

    TLSF算法分析注:本文的大部分内容摘录自论文《TLSF:aNewDynamicMemoryAllocatorforReal-TimeSystems》,可以通过“科学上网”访问如下链接阅读原文:http://www.gii.upv.es/tlsf/files/ecrts04_tlsf.pdf。什么是TLSFTLSF是TwoLevelSegregatedFitmemoryal

    2022年6月30日
    29
  • matlab lsd检测,LSD直线检测,matlab工具箱

    matlab lsd检测,LSD直线检测,matlab工具箱【实例简介】LSD直线检测工具箱,可以通过配置,直接调用,详细的配置信息参见reco_toolbox目录下的readme.txt【实例截图】【核心代码】reco_toolbox├──license.txt└──reco_toolbox├──config_databases.m├──core│├──auroc.m│├──basicroc.m│├──ber_class…

    2022年5月26日
    41
  • android开发之android:process属性_application中onCreate执行多次「建议收藏」

    应用做的匆忙,很多地方只顾实现功能,没有兼顾好性能,所以停下来重构代码优化性能,结果在打log看启动时间的时候,发现Application的onCreate执行了多次,这样导致重复初始化资源,初始化了3次导致接近1s时间。发现这个是由独立进程引起的。即:process这个属性。android:process        服务所在进程的名字。通常,一个应用的所有组件都运行在系统为这个应用所创建的默

    2022年3月11日
    44
  • 计算机操作系统学习笔记「建议收藏」

    计算机操作系统学习笔记「建议收藏」第1章计算机系统概述 1.1操作系统的基本概念 1.1.1操作系统的概念 操作系统是计算机系统中最基本的系统软件。 操作系统(OperatingSystem,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。 1.1.2操心系统的特征 操作系统的基本特征包括:并发、共享、虚拟和异步。并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件。​ 1.并发(C

    2022年6月7日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号