一.Response
-1.防盗链问题;
在获取浏览器请求时,判断请求来源,根据来源做相应处理.
例如:对于非本网站的来源,请求本网站资源,就跳到本网站主页去显示广告;;;
0.response功能
主要向客服机写入数据,实现文件打开方式(下载,图片,视频,文本...)
一般来说,向客户机写入字符数据时,将输出流包装成PrintWriter会更方便
写入二进制数据如:图片,视频,音频等,还是使用响应流,然后按照传统复制文件的方法将数据写给浏览器就行了.
设置头信息,写入Cookies ,session,属性值对等等
1.控制浏览器定时刷新refresh
response.setHeader("refresh",time);
2.控制浏览器缓存有效期
response.setDateHeader( "expries" ,time);
3.response请求重定向方法
一:Http协议302状态码
response.setStatus(302);
response.setHeader("location","address");
二:专有方法
response.sendRedirect(address);
4.如何让浏览器以下载方式打开文件
在传输数据前设置头信息
response.setHeader("Content-disposition","attachment;filename="+URLencode(fileName,"UTF-8"));
在传输中文名文件时,文件名要进行URL编码
5.URI:相对于主机的访问页
URL:互联网地址,在URI加上了主机名称
二.Request
6.
requset中的常用获取信息的方法
getRequestURL:返回请求完整URL
getRequestURI:返回请求资源路径名
getRemoteAddr:返回请求来源主机IP
getRemoteHost:返回请求来源主机名
getRemotePort:返回请求来源端口
getLocalAddr:返回服务器IP地址
getLocalName:返回服务器主机名称
getLocalPort:返回服务器处理该请求的端口
getMethod:返回请求类型(get post put ...)
获取数据
getQueryString:返回请求行后附带的参数
getSession:返回与当前请求关联的会话session
getCookies:返回当前请求的cookie数组,没有则返回空
getAttribute:获取请求域中的属性数据
getParameterNames:获取请求中所有的参数名称
getParameterValues:获取某个参数的所有值
7. request获取中文数据前,一定要处理数据编码
post请求下: request.setCharacterEncoding("utf-8");
get请求下:
手工处理,ISO8859-1=>utf-8
将获取的字符串以iso8859-1编码获取字节数组,
在以utf-8编码将其转换为字符串
8.requset实现转发
request是一个域对象,容器.只要该请求存在,request就存在
request.getRequestDispatcher(address).forward(req,resp);
此方法可以将请求数据,参数等信息一并带过去,非常方面处理
注意细节:
如果在转发时,执行forward方法前,有程序将servlet中的部分数据传到了客户端,那么就会发生
非法状态异常:IllegalStateException
在转发之前写入缓冲区中的数据会被清空,但是写入头中的信息会保存
RequestDispatcher中方法include
此方法可以实现数据包含.就是将其他页面的数据包含到本页面中来.
注意:包含页面中的数据做好不要与当前页面有标签冲突.只包含数据最好
9.MVC (Model(javaBean) view(jsp) Controler(servlet))
10.web开发servlet中的地址编写规范
基本规则;
"/"
如果改地址是给服务器应用的,/ 代表web应用根目录
如果地址给浏览器用的,/代表网站主机地址
(相对web应用根目录)
1.请求跳转地址
2.响应跳转地址
3.获取资源路径
4.获取资源作为流
(相对网站主机地址)
5.表单提交处理地址
6......
-1.防盗链问题;
在获取浏览器请求时,判断请求来源,根据来源做相应处理.
例如:对于非本网站的来源,请求本网站资源,就跳到本网站主页去显示广告;;;
0.response功能
主要向客服机写入数据,实现文件打开方式(下载,图片,视频,文本...)
一般来说,向客户机写入字符数据时,将输出流包装成PrintWriter会更方便
写入二进制数据如:图片,视频,音频等,还是使用响应流,然后按照传统复制文件的方法将数据写给浏览器就行了.
设置头信息,写入Cookies ,session,属性值对等等
1.控制浏览器定时刷新refresh
response.setHeader("refresh",time);
2.控制浏览器缓存有效期
response.setDateHeader( "expries" ,time);
3.response请求重定向方法
一:Http协议302状态码
response.setStatus(302);
response.setHeader("location","address");
二:专有方法
response.sendRedirect(address);
4.如何让浏览器以下载方式打开文件
在传输数据前设置头信息
response.setHeader("Content-disposition","attachment;filename="+URLencode(fileName,"UTF-8"));
在传输中文名文件时,文件名要进行URL编码
5.URI:相对于主机的访问页
URL:互联网地址,在URI加上了主机名称
二.Request
6.
requset中的常用获取信息的方法
getRequestURL:返回请求完整URL
getRequestURI:返回请求资源路径名
getRemoteAddr:返回请求来源主机IP
getRemoteHost:返回请求来源主机名
getRemotePort:返回请求来源端口
getLocalAddr:返回服务器IP地址
getLocalName:返回服务器主机名称
getLocalPort:返回服务器处理该请求的端口
getMethod:返回请求类型(get post put ...)
获取数据
getQueryString:返回请求行后附带的参数
getSession:返回与当前请求关联的会话session
getCookies:返回当前请求的cookie数组,没有则返回空
getAttribute:获取请求域中的属性数据
getParameterNames:获取请求中所有的参数名称
getParameterValues:获取某个参数的所有值
7. request获取中文数据前,一定要处理数据编码
post请求下: request.setCharacterEncoding("utf-8");
get请求下:
手工处理,ISO8859-1=>utf-8
将获取的字符串以iso8859-1编码获取字节数组,
在以utf-8编码将其转换为字符串
8.requset实现转发
request是一个域对象,容器.只要该请求存在,request就存在
request.getRequestDispatcher(address).forward(req,resp);
此方法可以将请求数据,参数等信息一并带过去,非常方面处理
注意细节:
如果在转发时,执行forward方法前,有程序将servlet中的部分数据传到了客户端,那么就会发生
非法状态异常:IllegalStateException
在转发之前写入缓冲区中的数据会被清空,但是写入头中的信息会保存
RequestDispatcher中方法include
此方法可以实现数据包含.就是将其他页面的数据包含到本页面中来.
注意:包含页面中的数据做好不要与当前页面有标签冲突.只包含数据最好
9.MVC (Model(javaBean) view(jsp) Controler(servlet))
10.web开发servlet中的地址编写规范
基本规则;
"/"
如果改地址是给服务器应用的,/ 代表web应用根目录
如果地址给浏览器用的,/代表网站主机地址
(相对web应用根目录)
1.请求跳转地址
2.响应跳转地址
3.获取资源路径
4.获取资源作为流
(相对网站主机地址)
5.表单提交处理地址
6......