快速掌握servlet技术-d1_2
来源:互联网 发布:python 结束程序 编辑:程序博客网 时间:2024/06/05 15:58
http响应:
HTTP/1.1 200 OK ---状态行
Server:Microsoft-IIS/6.0
Date:
Content-Length:
Content-Type: -----------------多个消息头
Cache-control: private
--------空行
…html代码
常用状态吗:
200 OK
302让浏览器转向另个资源(response.setStatus(302),response.setHeader(“Location”,”/servlet/test”)这个呢就是sendRedriect的底层实现);
404 找不到资源
500 服务器内部错误
Location:http://www.xxx.com[让浏览器重新定位到rul]
Server:apache tomcat[告诉浏览器服务器使用的是tomcat]
Content-Encoding:gzip [使用gzip压缩]
Content-Length: 500 [告诉浏览器发送过去的字节数]
Content-Language:zh-cn [队中文的支持]
Content-Type: text/html;charset=gb3212[文档编码]
Last-Modified: [访问资源的更新时间]
Refresh: 2;url=。。。告诉浏览器过多久 刷新到url]
Content-Disposition:attachment;filename=aaa.zip; [下载资源]
Transfer-Encoding:chunked [校验传输的编码]
Set-Cookie:SS=…
Expires:-1 [指定缓存,如何缓存数据IE]
Cache-Control:no-cache 火狐
Pragma:no-cache
Connection:close/Keep-Alive
Date:
实现页面跳转:
response.setStatus(302);response.setHeader("Location", "/ServletStudy/Link");
页面各多久跳转:
response.setHeader("Refresh","3;url=/ServletStudy/Link");
防盗链:
String checkAddress = "localhost:8080/ServletStudy";String referer = request.getHeader("Referer");//这里判断条件不能写反啦 如果反啦就会出现使用NULL去调用indexof 发生Exceptionif(referer != null && referer.indexOf(checkAddress) != -1){out.println("正确链接");}else{out.println(" 盗链");}
最后做一个下载的页面:
要求:可以下载文件,并防止盗链接,禁用页面缓存
请求代码:
package com.codeguy.d1.protocol;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Link extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();response.setDateHeader("Expires", 0);response.setHeader("Cache-Control", "no-cache");response.setHeader("Pragma", "no-cache");out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.println("<a href='/ServletStudy/DownLoad'>stardict-3.0.2.tar.bz2</a>");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);}}下载页面代码:
package com.codeguy.d1.protocol;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.w3c.dom.ls.LSException;public class DownLoad extends HttpServlet {/** * */private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");OutputStream os = response.getOutputStream();String checkAddress = "localhost:8080/ServletStudy";String referer = request.getHeader("Referer");if(!(referer != null && referer.indexOf(checkAddress) != -1)){ os.write(" 盗链".getBytes());return;}String path = this.getServletContext().getRealPath("/file/stardict-3.0.2.tar.bz2");response.setHeader("Content-Disposition", "attachment;filename=stardict-3.0.2.tar.bz2");FileInputStream fis = new FileInputStream(path);int len = 0;byte[] buf = new byte[1024];while((len=fis.read(buf))>0){os.write(buf,0,len);}os.close();fis.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);}}
- 快速掌握servlet技术-d1_2
- 快速掌握servlet技术-d1
- 快速掌握servlet技术-d1_1
- 快速掌握servlet技术-d2_1
- 快速掌握多线程编程优化技术
- 陈天:如何快速掌握一门技术?
- 陈天:如何快速掌握一门技术?
- 陈天:如何快速掌握一门技术?
- 如何快速掌握一门技术
- 如何快速掌握一门技术
- 如何快速掌握一门技术
- 如何快速掌握一门技术
- 如何快速掌握一门新的技术?
- [Servlet]深入掌握Servlet
- 快速掌握sinox2014激动人心的ZFS和RAID技术
- 作为码农, 如何快速掌握一门技术
- 程序猿如何快速掌握一门新框架、技术、语言
- 几分钟掌握servlet。
- MySql定义外键出现1005错误的原因
- Impala学习--Impala前端代码分析
- VS2008使用宏记录来实现自动增加注释信息(转)
- (转)android:descendantFocusability用法简析
- jobdu 7 Day of Week
- 快速掌握servlet技术-d1_2
- 自备ovs-vsctl命令详解
- SAM9261完全启动Bootstrp/U-boot/linux-2.6.30/rootfs
- 对部署在weblogic中的项目进行打版
- 他们怎么说
- 开发者使用JasperReport——简介
- Android 中 onTouch 和OnClick 冲突的处理
- Oracle初学入门
- android 隐藏标题栏