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)
上一篇 2022年1月22日 下午12:00
下一篇 2022年1月22日 下午1:00


相关推荐

  • 20天通过中级软件设计师攻略(附资料)

    20天通过中级软件设计师攻略(附资料)起因 7 月份偶然在朋友圈看到关于软考报名消息 网上搜索了一下 查阅软考信息如下 软考分为初 中 高三个等级 每个等级有不同的项目 我本次报考的是中级的软件设计师 本次只介绍软件设计师考试相关信息 从报名到缴费 110 元 后大概是 8 月份了 本想着时间还早加上 9 月因公司加急加班所以一直搁置没有复习 直到国庆后 10 8 才开始有闲余的时间复习 到考试只剩下 20 天左右的时间 一边工作 一边利用晚上和周末的零碎时间进行复习 总共的复习时间其实不到 20 天 目前分数已出来 分享自己的考试攻略 软考官网 中

    2026年3月19日
    2
  • COleVariant 和 CTime「建议收藏」

    COleVariant 和 CTime「建议收藏」获取当前时间。datetime=COleDateTime::GetCurrentTime();CTime和COleDateTime具有几乎同样的功能。与CTime相比,COleDateTime的优点在于它支持DWORD变量。COleDateTime使用的位数是双浮点的两倍,既然CTime只是简单地计算从1970年1月1日之后经过的秒数,所以到了2037年它将达到429496

    2022年7月18日
    18
  • DPC_WATCHDOG_VIOLATION蓝屏分析

    DPC_WATCHDOG_VIOLATION蓝屏分析文章目录 DPC WATCHDOG VIOLATION 蓝屏分析 1 背景 1 分析 1 1 初步分析 1 2DPCWATCHDOG 3DPC 超时时间获取 1 4 分析 2 总结 DPC WATCHDOG VIOLATION 蓝屏分析 1 背景今天在我们客户的电脑上面出现了一个蓝屏 并且反馈蓝屏码很奇怪是 DPC WATCHDOG VIOLATION 本来 PC 上面没有安装我们的任何软件 这个问题与我

    2026年3月17日
    4
  • docker部署jenkins安装使用教程_免费docker容器

    docker部署jenkins安装使用教程_免费docker容器前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月31日
    8
  • PyCharm激活码永久有效PyCharm2021.2.1激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2021.2.1激活码教程-持续更新,一步到位PyCharm激活码永久有效2021.2.1激活码教程-Windows版永久激活-持续更新,Idea激活码2021.2.1成功激活

    2022年6月19日
    360
  • PostgreSQL安装流程

    PostgreSQL安装流程postgre 的下载 安装 创建表

    2026年3月17日
    1

发表回复

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

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