1 HttpServletReques是ServletRequest
的子接口。
是专门针对
http
协议书写的接口,由容器实现,由用户调用。用户根据接口调用方法,可以屏蔽容器的差异。
2get
与
post
区别:
提交数据类型: 文本 文本、二进制文本
提交数据长度:
255字符
无限制
提交数据可见性:作为
URL
地址的一部分显示在浏览器地址栏 作为请求的消息体,不可见
提交数据缓存 缓存在浏览器
url
历史状态中
不会被浏览器缓存
总结:
Get
方式主要作用时资源的查找。
Post
方式主要作用时数据的传输
3 url/uri
区别
url:
包含请求地址
uri:
不包含
4
:请求头
HttpServletReques
利用
getHeader()
和
getHeader()
得到请求头,同样只对
http
协议有效。
5
:上传图片:
1
:
post
提交
2
:
enctype=
”
multipart/form-data
”
;
在Form元素的语法中,EncType表明提交数据的格式,用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型表单中 enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x- www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。
6
:请求转发
//
得到请求转发对象
RequestDispatcher d=request.getRequestDispatcher(
“two”
);【要转发的servlet路径】
//
内部转发指定的页面或
servlet
,客户端只发出一次请求。资源在服务器内部调用
d.forward(request, response);
//b
包含另一个
servlet
输出的结果
d
.include(request, response);
两种方法来包含不同的资源,以及将请求转发到不同资源:
1
forward
()把请求和响应派发给别的资源后,就不会再去做任何处理了。
2
include
()把请求发送给另一个服务器资源(通常是另一
servlet
)来完成工作,然后再返回给发送者。
//
封装数据到
request
,只在一次请求范围内有效
request.setAttribute(
“ff”
,
“11”
);
7
重定向和内部转发的区别
1
:重定向由
response
发出,内部转发由
requestDispatcher
发出。
2
:重定向发出二次请求,内部转发发出一次请求。内部转发可以取出
request
中封转的数据。而重定向不行。(每次请求会产生新的
request
对象)。
3
:内部转发只能在一台服务器中作资源调用。重定向可以在第二次请求时请求另外的服务器。
8
M
yeclipse
开发时,部署名和工程名默认一致。但也可以不一致。
9
改变部署名:
右键单击工程
—properties—myeclipse—web—web context-root
10
在
form
表单的
action
中如果直接写路径,表示在当前目录下查找。
如果在
action
中先书写
/
。表示回到
webapps
根目录。这时必须在
/
后加上部署名。