下载文件等:

1、得到公共的内容ServletContext sc = this.getServletContext();

2、在链接名字后面加个?

一个参数?参数1=值

两个参数?参数1=值&参数2=值

<a href=”DownLoadServlet?fileName=正则表达式.html”>下载正则表达式.html</a>

3、得到参数   String fileName = request.getParameter(“fileName”);

解决乱码:

String name = new String(fileName.getBytes(“ISO-8859-1”),”utf-8”);

4、判断文件

String path = sc.getRealPath(“/ppt/正则表达式.ppt”);

5、读文件

 FileInputStream fis = new FileInputStream(new File(path));

   ServletOutputStream out = response.getOutputStream();

   byte[] buf = new byte[1024];

   Int length = 0;

   While((length = fis.read(buf)) != -1){

        Out.write(buf,0,length);

   }

   Out.flush();

 

   InputStream input = sc.getResourceStream(/img/图片.jpg);

 

   URL url = sc.getResource(/img/图片.jpg);

   String str = url.getFile();

   String[] ary = str.split(/);

   System.out.println(ary[ary.length-1]);

 

   Set set = sc.getResourcePaths(/); //得到文件夹

   Classes在bulid里面

   

6、告诉浏览器用下载的方式打开

response.setHeader(“ Content-Disposition”,”attachment;filename=正则表达式.html”);

换成当前时间 attachment;filename=”System.currentmilis”+.html

Http响应

1、响应头:浏览器传给服务器,浏览器应该有的东西

2、设置状态码:response.setStatus(230);

response.setStatus(response.SC_NOT_FOUND);

3、设置状态信息:response.sendError(“找不到资源...”);

printWriter pw = response.getWriter();

response.setContextType(“text/html;charset=utf-8”);

4、302:文件转移位置与location一起使用

response.setStatus(302);

response.setHeader(“Location”,”路径”);

========重定向的路径:response.sendRedirect(“路径”);

5、请求的文件出现缓存——发送响应头的头部信息

(1)、没有修改的文件,从缓存中取——效率高

(2)、修改的文件中,出现上一次修改的时间

6、自动刷新

response.setHeader(“Refresh”,”5;URL=/myPage/login.html”);

数据库中limit ?,?; 始终在最后

客户端=浏览器 请求头 浏览器告诉服务器浏览器的状态,想要服务器如何返回请求的信息

响应头 服务器告诉浏览器服务器的状态

默认情况下使用HTTP协议的GET方法提交请求------------a标签提交请求、form表单、直接     输入地址并回车

GET、POST提交区别:

1、文本                                  文本、二进制

2、不超过255字符                        没有限制(理论)——防止传输恶意文件

3、一部分显示在浏览器地址栏              作为消息体,不可见

4、缓存在浏览器URL历史状态中            不会被浏览器缓存

静态图片等:GET方法

发送大数据、上传文件、发送保密信息:POST方法

Request.getRemoteAddr():得到远程地址

查询自己的IP

1、设置

2、以太网

3、更改适配器

4、以太网 internet 4 属性中 的IP

判断使用的浏览器:

String ueragent = request.getHeader(“Uer-Agent”);

ueragent.indexOf(“MSIE”);——IE浏览器

Indexof:判断字符串中字符第一次出现的位置

Referer:防盗链——盗链时结果为Null

请求的为post得到参数:用request.setCharacterEncoding(“utf-8”);

请求的为get得到参数:需要转码

<a href=”DownLoadServlet?fileName=正则表达式.html”>下载正则表达式.html</a>得到参数   String fileName = request.getParameter(“fileName”);

解决乱码:

String name = new String(fileName.getBytes(“ISO-8859-1”),”utf-8”);

下拉菜单:

select中得到的是value中的值

多选框时:用request.getParameterValues(‘name’);

Enumeration<String> enums = request.getParameterNames();

While(enums.hasMoreElements){

String name = enums.nextElement();

System.out.print(request.getParameter(name));

}

form上传时enctype默认为传输字符;上传文件等:enctype=”multipart/form-data”;

转发和重定向:转发地址不会改变;只发送一次请求

转发:request.getRequestDispatcher(“/success.html”).foward(request,response);

Forward();只会打印跳转的地址中的内容

Include();会打印地址中的内容,接着打印之后的内容

Forward();——共享request,response

setAttribute:已经响应完,则不能得到值

超链接:参数中有中文,则需要转码

Form表单中默认为get方法提交

 

重定向:两次请求(客户端浏览器处理) sendRedirect();  setAttribute中的值不能get出来

派发:一次请求(服务器之间处理)  getRequestDispatchar().forward(request,response);   setAttribute中的值可以get出来

Servlet下载文件和http响应的更多相关文章

  1. Servlet 下载文件

    这几天有点懒散,还好没有忘记看书,上周去了国家图书馆翻阅了一些和Java相关的书籍,其实这些书都是自己以前看过或者听过,按理来说,不应该看自己已经看过的书籍,应该找一些最新的书籍去看,但是每次走到书架 ...

  2. Servlet下载文件迅雷不支持问题真相之一

    问题描述 最近在做一个下载文件的Servlet,直接使用浏览器的下载功能,完美支持,结果测试人员使用迅雷下载,就不行了,下载也能成功完成,只是迅雷下载的文件大小是悲催的0KB 真相搜罗 网上有很多帖子 ...

  3. Servlet 下载文件及支持中文文件名

    Sevlet 下载pdf文件 支持中文文件名 package html2pdf.controller; import java.io.File; import java.io.FileInputStr ...

  4. php下载文件,添加响应头

    //下载,添加响应头信息 header('Content-type:application/octet-stream'); header('Content-Disposition:attachment ...

  5. servlet下载文件

    package myjava.cn; import java.io.FileInputStream; import java.io.IOException; import java.io.InputS ...

  6. web下载文件夹

    1.文件下载有两种方式:一种是超链接,一种是Servlet提供下载. 2.超链接下载时:当文件可以在网页直接打开时,会直接打开文件,而不是下载,当文件打开不了时,会提供下载窗口. 3.超链接下载原理 ...

  7. servlet实现文件上传,预览,下载和删除

      一.准备工作 1.1 文件上传插件:uploadify: 1.2 文件上传所需jar包:commons-fileupload-1.3.1.jar和commons-io-2.2.jar 1.3 将数 ...

  8. Servlet实现文件上传和下载

    对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具commo ...

  9. servlet技术之下载文件演示(DownloadServlet.class)

    servlet技术之下载文件演示(DownloadServlet.class) 文件是指把服务器端文件发送到客户端,Servlet能够向客户端发送任意格式的文件数据,例程的DownloadServle ...

随机推荐

  1. eclipse 查看变量或方法在什么地方被调用的快捷键

    选中方法名,点鼠标右键,菜单里有个”打开调用层次结构 ( Open Call Hierarchy )“,选中或者按下快捷键Ctrl+Alt+H,就在下面栏目里能看到调用的树形结构了. 或者: 1.双击 ...

  2. lnmp编译安装

    lnmp超详细编译安装教程 linux采用的是centos,软件包统一放在/usr/local/src目录下.由于 centos源比较老,而且更新起来也比较慢,此处建议你换成163源.提示:如果你真打 ...

  3. css 去除点击之后的虚线

    链接在被点击时会出现虚线框,即使松开了也仍然存在,在有的时候显得不美观.既然不好看,那就不要它.怎样去掉呢? 方法一 IE下可使用其私有的html属性:hideFoucs,在标签的结构中加入hidef ...

  4. mobx源码解读4

    这节介绍一下mobx的变动因子的稳定性. mobx整个系统是由ObservableValue, ComputedValue, Reaction这三个东西构建的 ObservableValue 是最小的 ...

  5. string、Empty和null三者的区别

    string.Empty和null三者的区别 本文转自  http://www.bitscn.com/pdb/dotnet/201003/181883.html 时间:2010-03-01 00:00 ...

  6. 介绍一款非常适合做微网站并且免费的CMS系统

    在微网站火热的今天,寻找一款具备 web app功能的CMS系统能够大大提高我们的工作效率,eBSite升级到3.0后,开始支持web app 皮肤,也就是创建一个站点,会同时绑定一个PC版皮肤与一个 ...

  7. Android菜鸟成长记16 -- JSON的解析

    JSON的定义  一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  8. SOCKS 5协议详解(转)

    笔者在实际学习中,由于在有些软件用到了socks5(如oicq,icq等),对其原理不甚了解,相信很多朋友对其也不是很了解,于是仔细研读了一下rfc1928,觉得有必要译出来供大家参考. 1.介绍: ...

  9. About Sustainability

    我不喜欢人们常说"紧张感", "危机感".这只会让人觉得疲惫,无非是自己拿鞭子抽着自己,最终会觉得难以继续.那么快乐到底从哪里来?成就感到底从哪里来呢? 我更喜 ...

  10. (转载)python2+selenium自动化测试系列(二)

    16.Selenium2+python自动化16-alert\confirm\prompt 17.Selenium2+python自动化17-JS处理滚动条 18.Selenium2+python自动 ...