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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 光流法原理与实现「建议收藏」

    光流法原理与实现「建议收藏」以下内容摘自一篇硕士论文《视频序列中运动目标检测与跟踪算法的研究》:1950年Gibson首先提出了光流的概念,光流(opticalflow)法是空间运动物体在观测成像面上的像素运动的瞬时速度。物体在运动的时候,它在图像上对应点的亮度模式也在做相应的运动,这种图像亮度模式的表观运动就是光流。光流的研究就是利用图像序列中像素的强度数据的时域变化和相关性来确定各自像素位置的“运动”。光流表达

    2022年7月23日
    11
  • 学成在线项目怎么样(学成在线微服务)

    CMS接口开发1项目的功能构架1.1项目背景1.2功能模块1.3项目原型2项目的技术架构2.1技术架构2.2技术栈2.3开发步骤3CMS需求分析3.1什么是CMS3.2静态门户工程搭建3.2.1导入门户工程3.2.2配置虚拟主机 在nginx中配置虚拟主机:3.2.3SSI服务端包含技术3.3CMS页面管理需求4CMS服务端工程搭建注释也是必不可少的KaTeX数学公…

    2022年4月16日
    43
  • stm32入门教程_单片机STM32

    stm32入门教程_单片机STM32提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言首先你得知道学习stm32,实际就是在学ARM内核,stm32内核就是ARM的;一、pandas是什么?示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):importnumpyasnpimportpandasaspdimportmatplotlib..

    2025年9月24日
    5
  • java string转inputstream(substring截取字符串)

    Apachecommons是一个强大的Java辅助工具包。它提供的IOUtils可以让我们很便捷的实现InputStream转换为String。StringWriterwriter=newStringWriter();IOUtils.copy(inputStream,writer,encoding);StringtheString=writer.toString();首先把in…

    2022年4月16日
    124
  • EJB学习一

    EJB学习一一、一个企业级Bean是由几个文件共同组成:1、Bean类SessionBean实现javax.ejb.SessionBean接口;EntityBean实现javax.ejb.EntityBean接口。2、EJB接口(远程接口或者本地接口)和EJB对象远程接口继承javax.ejb.EJBObject接口;本地接口继承javax.ejb.EJBLocalObject接口。3、Home接口(远程…

    2022年9月1日
    3
  • (Java实现) N皇后问题[通俗易懂]

    (Java实现) N皇后问题[通俗易懂]n皇后问题是一个以国际象棋为背景的问题:在n×n的国际象棋棋盘上放置n个皇后,使得任何一个皇后都无法直接吃掉其他的皇后,即任意两个皇后都不能处于同一条横行、纵行或斜线上。蛮力法思想:解决n皇后问题的思想本质上就是蛮力法,生成所有可能的摆放情况,并判断该情况是否满足要求,我们以树结构来表示解决问题的方法。以4*4的棋盘为例,第0层的根节点为空白的棋盘,第1层为只在棋盘的第一行摆放的四种…

    2022年9月30日
    4

发表回复

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

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