JavaWeb学习记录(一)——response响应头之缓存设置与下载功能的实现

一、HTTP中常用响应头

  • Location: http://www.it315.org/index.jsp
  • Server:apache tomcat
  • Content-Encoding: gzip
  • Content-Length: 80
  • Content-Language: zh-cn
  • Content-Type: text/html; charset=GB2312
  • Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
  • Refresh: 1;url=http://www.it315.org
  • Content-Disposition: attachment; filename=aaa.zip
  • Transfer-Encoding: chunked
  • Set-Cookie:SS=Q0=5Lb_nQ; path=/search
  • ETag: W/"7777-1242234904000"
  • Expires: -1
  • Cache-Control: no-cache
  • Pragma: no-cache
  • Connection: close/Keep-Alive
  • Date: Tue, 11 Jul 2000 18:23:51 GMT

二、设置缓存信息

  public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("-----------CacheServlet-------------");
        // 设置相应头信息
        // 设置缓存时间100秒
        // response.setDateHeader("Expires",
        // System.currentTimeMillis()+100*1000);
        // 禁止使用缓存
        // response.setDateHeader("Expires", 0);
        // response.setHeader("Cache-Control", "no-cache");
        // response.setHeader("Pragma", "no-cache");

response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        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>");
        // 读取文件
        String path = getServletContext().getRealPath("/a.txt");
        FileReader reader = new FileReader(new File(path));
        char buffer[] = new char[256];
        int len = 0;
        while ((len = reader.read(buffer)) != -1) {
            out.println(new String(buffer, 0, len));
        }
        reader.close();
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

/**
     * 最后一次修改的时间
     */
    @Override
    protected long getLastModified(HttpServletRequest req) {
        String path = getServletContext().getRealPath("/a.txt");
        File file = new File(path);
        return file.lastModified();
    }

a.txt文件内容:

a.txt在项目中的放置地址:

结果:

三、下载功能源代码如下

public class DownServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String path = request.getServletContext().getRealPath("/down/中国.png");
        File file = new File(path);
        // 下载的方式打开此操作(指定编码方式,下载文件名与源文件一致)
        response.addHeader("Content-Disposition", "attachment;fileName="
                + URLEncoder.encode(file.getName(), "UTF-8"));
        OutputStream os = response.getOutputStream();
        InputStream is = new FileInputStream(file);
        int len = 0;
        byte[] buffer = new byte[1024];
        while ((len = is.read(buffer)) != -1) {
            os.write(buffer, 0, len);
        }
        is.close();
        os.close();
    }

public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

}

本程序中下载文件的地址放置在该项目的如下位置:

时间: 2024-11-05 17:30:15

JavaWeb学习记录(一)——response响应头之缓存设置与下载功能的实现的相关文章

javaWeb学习记录:学生信息管理系统

初始版 初始版是没有加分页的.因为没怎么学过前端,界面很丑陋.主要技术:JSP,JavaBean,servlet,JDBC主要页面如下: 登录页面 主页 添加学生 查看所有学生 查询学生 工程目录 数据库 两个表,user表和student表.为了使用DBUtils工具,一定要注意数据库表的属性的命名和JavaBean的get(),set() 方法的匹配.比如t_user表里的uname,在JavaBean中是:private String uname,getUname(),setUname()

JavaWeb学习记录总结(二十九)--Servlet\Session\Cookie\Filter实现自动登录和记住密码

一.Servlet package autologin.servlet.login; import java.io.IOException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.H

javaweb学习记录(1)

Java基础学习笔录 1.运行java程序,出现bad version number in.class file 编译器()的版本号高于运行环境(jre)的版本号,可以降低编译器版本号,也可以通过提升运行环境来改变 2.Java程序调试:用debug环境调试(设置断点) 注意事项: 3.快捷键: 1)配置快捷键:windows/preference 搜索关键字keys;首先检索要快捷执行的方法现有的快捷键,,remove掉现有的快捷键,在building后面添加新的快捷键 2) 3) 重置透视图

JavaWeb学习记录(十四)——商城购物之字符串拼接实现最近浏览商品和购物车的功能

一.字符串拼接的工具类 package blank.util; import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;import java.util.Vector;import java.util.Map.Entry; public class StringUtil {        public static String jointStr(String sid

JavaWeb学习记录(六)——用户登录功能

使用JDBC.spring框架.servlet实现一个简单的用户登录功能. 一.mySql数据库 SET FOREIGN_KEY_CHECKS=0; -- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMEN

JavaWeb学习记录(八)——servlet获取配置信息

jdbc.properties内容如下: jdbcUrl=jdbc\:mysql\://localhost\:3306/animaluser=rootpass=root servlet获取资源信息代码如下public class ResourceServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)            throws Ser

JavaWeb学习记录(十六)——防止表单重复提交

产生随机字符串进行验证,如果产生的和Session存储的相同则可以提交,提交后删除session对应的属性值:否则表单提交不成功 一.产生随机字符串的工具类 package web10.util; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; public

JavaWeb学习记录(六)——用户登录功能之Cookie

private Cookie nameCookie=null;    private Cookie passCookie=null;    private Cookie cookieUser;    private UserDao userDao=new UserDaoImpl();    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletExc

JavaWeb学习记录(十七)——JSP九大隐式对象

public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; PageContext pageContext = null; HttpSession session = null; ServletContext application =