android doGet和doPost「建议收藏」

android doGet和doPost

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

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 调用用于获取server信息,并将其做为响应返回给client。当经由Web浏览器或通过HTML、JSP直接訪问Servlet的URL时,一般用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请求方式还有doPut、doDelete、doTrace、doHead、doOptions。但使用的比較少。 

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

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

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


相关推荐

  • 使用()命令来启用FTP服务_windows播放ftp

    使用()命令来启用FTP服务_windows播放ftp首先是win10控制面板–》程序–》启用或关闭windows功能找到Internetinformationservice(信息服务),并选中“FTP服务”、“FTP扩展性”和“IIS管理控制台”前的复选框,点击“确定”在C盘创建一个FTP共享文件夹,名字自定义接下来是控制面板–》系统和安全–》管理工具–》InternetInformationServices(IIS)管理器如下图所示,鼠标右键红框地方添加FTP站点站点名称自定义,路径选择先前创建的文件夹,

    2022年9月15日
  • android:layout_weight详解_什么是layout_weight

    layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。 所有的视图都有一个layout_weight值,默认为零,意思是需要显示.多大的视图就占据多大的屏幕空间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体, layout_weight值和在其它视图屏幕布局的layout_weight值

    2022年3月9日
  • git基本使用(超详细)[通俗易懂]

    git基本使用(超详细)[通俗易懂]git基本使用一:Git是什么?Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别?1.SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。2.Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个

    2022年9月21日
  • Java(2)-Java IO输入输出流

    Java(2)-Java IO输入输出流1.什么是IOJava中I/O操作主要是指使用Java进行输入,输出操作.Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。Java.io是大多数面向数据流的输入/输出类的主要软件

    2022年4月29日
  • vue.js中集成ueditor?

    vue.js中集成ueditor?

    2021年10月11日
  • navicat premium 15 激活码(注册激活)

    (navicat premium 15 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月22日

发表回复

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

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