使用Servlet处理请求<http://blog.sina.com.cn/s/blog_5d3fb3cc0100ep9q.html>

一、GET和POST的区别

1.GET提交的是文本内容,规定其数据长度不超过255个字符。在GET方式提交的URL中会显示出提交的查询数据而却提交数据的缓存会在浏览器的URL历史状态中,这样我们往往在浏览网页的时候点击后退键不需要重新发送请求。

2.POST提交的可以使文本内容,也可以使二进制内容,所以我们上传文件的时候用的就是POST得方式。POST对于提交数据长度没有限制,我们发送的数据也不会在URL中出现,所以这种方式较为安全。但是网页提交的数据缓存不会在浏览器中存在,所以我们点击后退到此类的网页的时候一般会出现数据过期等提示。

3.提交数据的时候一般只有表单才用POST的形式,其他的都是GET的方式。

二、HTTP请求方法与HttpServlet方法的对应关系

1.容器调用service(ServletRequest ,ServletResponse)方法;

2. service(ServletRequest ,ServletResponse)方法再调用同一个Servlet类中的service(HttpServletRequest ,HttpServletResponse)方法;

3. service(HttpServletRequest ,HttpServletResponse)将分析HTTP请求,找到请求方法类型然后调用相应的处理方法。

4.如果在自定义的Servlet类中覆盖service方法,do×××方法将不会自动调用。

三、HTTP请求行的获取

getMothod():获得请求提交方式

getRequestURI():获取提交的URI

getServletPath():获取Servlet映射路径。

四、HTTP请求头的获得

Enumeration eu = request.getHeaderName();

while(eu.hasMoreElements()){

String name = (String)en.nextElements();

String values = (String)en.getHeader(name);

}

五、HTTP消息体的获取

利用getParameter(String name)可获得提交表单的内容,但该方法只适用于文本文件的获得,不能获取二进制的数据。

六、文件上传

1.设置表单提交数据方式为POST,并设置以二进制提交。

Enctype=”multipart/form-data”

2.request.getInputStream()获得Request输入流

3.解析输入流并创建文件

七、请求转发

利用请求转发可以让每个客户的请求传递给很多Servlet以及web应用程序中的其他资源。重定向和请求转发的最大区别在于,重定向是在客户端完成,需要2次请求,而转发只是在服务端完成,只需要1次请求。

我们可以利用getRequestDispatcher()方法获得RequestDispatcher对象 ,然后利用forward()或者include()方法实现转发。前者意味着把请求和响应派发给别的资源后就不会再去做任何处理,而后者在派发后并不是完全移交,只是暂时把控制权交给别人。

时间: 2024-10-13 01:23:38

使用Servlet处理请求<http://blog.sina.com.cn/s/blog_5d3fb3cc0100ep9q.html>的相关文章

C语言register关键字—最快的关键字 ---------------转自http://blog.sina.com.cn/s/blog_6a1837e90101128k.html

register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.注意是尽可能,不是绝对.你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你. 一.皇帝身边的小太监----寄存器 不知道什么是寄存器?那见过太监没有?没有?其实我也没有.没见过不要紧,见过就麻烦大了.^_^,大家都看过古装戏,那些皇帝们要阅读奏章的时候,大臣总是先将奏章交给皇帝旁边的

windows: Access denied for user &#39;root&#39;@&#39;localhost&#39; .....(转自新浪:http://blog.sina.com.cn/s/blog_40aff6390100jeke.html)

WINDOWS-XP 系统 mysql-5.1.22-noinstall-win32 提示:access denied for user 'root'@'localhost' using password yes 前几天都好好的,今天开机上来提示上面的这个错误,重启 MySQL 还是不可以. 在网上搜索了好久,总算找到详细的操作方法了.为了以后不再浪费时间,把她重新整理放到 Blog 里. 注意我这里的环境是 WINDOWS-XP 系统,LINUX 系统下的操作没有验证过,情况不清楚. 1. 管

MySQL存储过程详解 mysql 存储过程(转:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html)

转:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和

已发布13集网站开发技术视频:http://blog.sina.com.cn/s/blog_67d27f340102vf7l.html

已发布13集网站开发技术视频:http://blog.sina.com.cn/s/blog_67d27f340102vf7l.html

Matlab read_grib.r4 安装新方法(转自:http://blog.sina.com.cn/s/blog_9f36648b010179s7.html)

最近,打算用Matlab处理些GRIB格式的文件,需要在Matlab中添加read_grib.m文件,其实相当于是添加一个工具箱.read_grib.m的下载见:http://www.renci.org/~bblanton/files/ReadGrib/ 但是,要read_grib.m真正起作用,需要“安装”和“编译”两步. 按照网页上的说法,所谓安装,就是把下载下来的read_grib.r4.tar文件解压,然后将解压后的文件夹路径写到“startup.m”文件中.但是,我的Matlab201

matlab添加M_map工具箱(转 http://blog.sina.com.cn/s/blog_491b86bf0100srt9.html)

之前转载过matlab画世界地图的博文.最近正好用到.首先试了matlab自带的worldmap,感觉画出来的图形不尽如人意,比较杂乱.如下图. 略查阅了些资料,请教了Liangjing,一致推荐m_map.为了达到想要的效果,这次只要不再偷懒,下载M-Map工具箱(http://www.eos.ubc.ca/~rich/map.html)并进行安装.所幸过程比较顺利,现记录如下,回头把画出的效果图再添上.其他matlab的toolbox安装,也可参考进行. ------------------

c++中的srand()和rand() 转载 自:http://blog.sina.com.cn/s/blog_624c2c4001012f67.html

今天看了同事写的小程序,发现了其中出现了srand()和rand()这两个我以前没有用过的函数,当然从名字可以看出肯定能随机数有关,于是网查资料知这两个函数配合一起使用来产生随机数的,哈哈,又长知识了,现将这两个函数的使用贴过来,以备以后查看使用. 这两个帮助生成伪随机数的函数包含在标准库 中,所以首先需在头文件中包含进来. 注意:在C语言中包含在标准库中.    函数一:int   rand(void):     从srand   (seed)中指定的seed开始,返回一个[seed,   R

教你如何查看CAD文件是哪个版本的来自http://blog.sina.com.cn/s/blog_4c9fa4dd0101il1v.html

教你如何查看CAD文件是哪个版本的 http://blog.sina.com.cn/s/blog_4c9fa4dd0101il1v.html (2013-03-10 22:24:52) 转载▼ 标签: 教育 分类: AutoCAD实用技巧 在工作中会遇到打开一张图纸时出现“图形文件无效”的提示,大部都是因为用低版本软件打开了高版本的图纸.而又如何真正确认该文件是用哪个版本创建的,以下教大家一个辨别的方法.正常的DWG文件可以通过记事本或者其他文本软件打开,看开头几个字节就知道版本号了 Versi

STM32的CAN应用指南 http://blog.sina.com.cn/s/blog_0414b7360101osq1.html

CAN基本知识: CAN协议的特点: 1.  多主机控制.在总线空闲时,所有单元都可以发送消息,若两个以上同时开始发送消息,根据标识符来决定优先级.优先级高的先发送. 2.  系统的若软性.与总线相连的单元没有类似地址的信息.因此在总线上增加单元时,应用层程序基本不需要改变. 3.  通信速度快,通信距离远.最高1Mbps(距离小于40M),最远可达10Km(速率低于5Kbps). 4.  具有错误检测.错误通知和错误恢复功能.所有单元都可以检测错误,检测出错误的单元会立即同时通知其他所有单元,