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 调用用于获取服务器信息,并将其做为响应返回给客户端。当经由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,但使用的比较少。
转载于:https://www.cnblogs.com/lechance/p/4373312.html
android doGet和doPost相关推荐
- java中的doget_java servlet中doGet()和doPost()方法的用法和区别
一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全.而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方 ...
- Service 和 doGet 和 doPost 方法的区别
Service 和 doGet 和 doPost 方法的区别 新建一个JSP文件: get方式 post方式 service方法.doGet方法和doPost方法的区别: 在上面的步骤中,把下图中的m ...
- HttpServlet的doGet()和doPost()方法
由于,大多数客户端的请求方式都是GET和POST 因此,HttpServlet中提供了doGet()和doPost()方法 示例程序 在目录D:\cn\itcast\firstapp\servlet中 ...
- Myeclipse中快速插入HttpServlet子类中doGet和doPost方法
Myeclipse中快速插入HttpServlet子类中doGet和doPost方法 鼠标右键-source-Override/Implment Methods 参考自:https://blog.cs ...
- 对doget和dopost区别的理解
doget与dopost的区别 GET方法用于获取固定资源,一般并不用于传参数,但是实际开发过程中很多都是在用GET方法来传递参数. get直接访问:http://write.blog.csdn.ne ...
- JavaWeb第二讲 重定向与转发 doGet()与doPost()
(一)重定向与转发 转发**(服务器行为)** request.getRequestDispatcher("url").forward(request, response); 重定 ...
- 【Servlet】什么情况下调用doGet和doPost
⭐什么情况下调用doGet()和doPost()? 默认情况是调用doGet()方法,JSP页面中的Form表单的method属性设置为post的时候,调用的为doPost()方法:为get的时候,调 ...
- doGet或doPost请求
一.HTTP实现doGet或doPost请求原理介绍 1.浏览器发送请求到HttpSevr类调用HttpServ的service(servletRequest, servletReponse)方法 2 ...
- okHttp拦截器放在doGet和doPost请求中
public class OkHttp3Util { /** * 懒汉 安全 加同步 * 私有的静态成员变量 只声明不创建 * 私有的构造方法 * 提供返回实例 ...
最新文章
- c语言输入字符串的格式不正确的是,关于c#:输入字符串的格式不正确
- php yanzhengm,ThinkPHP 在使用M方法(不创建模型类)时实现自动验证与自动填充
- 【Qt】Qt中QJsonDocument 类
- 卓越管理的实践技巧(1)如何进行有效的指导 Guidelines for Effective Coaching
- 算法导论读书笔记(8)
- 系统优化-----sysctl.conf文件内核设置参数详解
- 奔跑吧Linux内核初识
- linux命令:ssh scp ssh-keygen -t rsa用法
- 《正则表达式经典实例(第2版)》——2.18 向正则表达式中添加注释
- elementUI 下拉框隐藏时触发相关事件(下拉框下拉显示时不触发)
- php mysql 拖拉 报表_php+mysql 生成统计报表
- java面试常考_java面试常考题
- c语言i=5.6a=(int)i,(PSIM仿真)从零开始设计BOOST数字控制器
- 服务号idbase64_微信 unionid 获取 解密数据
- 基于STM32单片机设计的红外测温仪(带人脸检测)
- Kjava林林工具箱源代码(jbuilder工程)
- cloudreve 开源私有网盘(带离线下载)
- 记一次eduSRC挖掘
- 原生js监听滚动条_原生JS实现滚动条监听
- 【数据结构】用堆排序解决TOPK问题
热门文章
- RocksDB 的Put操作和WriteBatch操作
- Reids报错解决:Job for redis-server.service failed because the control process exited with error code.
- 德国虚拟主机 linux,细说Linux虚拟主机的搭建及配置
- OpenFeign的9个坑,每个都能让你的系统奔溃 OpenFeign
- 使用命名空间:别名/导入
- python函数结构图_Python数据结构与算法之图结构(Graph)实例分析
- 雨滴桌面时间插件_如何设置极简桌面?学会了看电脑都赏心悦目
- 4行代码,让app自动化框架支持 webview 混合应用操作
- 引号快捷键_干货收藏|excel2016常用快捷键
- 苹果6怎么截屏_蓝苹果多肉怎么养,掌握这6种养殖方法