zoukankan      html  css  js  c++  java
  • [Java][Web]Response学习.缓存

    response.setHeader("expires", String.valueOf(System.currentTimeMillis() + 1000 * 3600));
    String dataString = "aaaaa";
    response.getWriter().write(dataString);

    如上代码,加上 expires 有效时间后,等同于给资源加了缓存。

    // 实现请求重定向 方法一
    response.setStatus(302);
    response.setHeader("location", "/day06");
    
    // 实现请求重定向 方法二
    response.sendRedirect("/day06");

    以上两方法都是发送请求重定向到 /day06 页面。服务器会收到两次请求,浏览器地址栏会发生变化。

    每次浏览器刷新时,会将上次动作重新提交,用重定向可以避开此问题。

    HTTP Status 500 - getOutputStream() has already been called for this response
    
    type Exception report
    
    message getOutputStream() has already been called for this response
    
    description The server encountered an internal error that prevented it from fulfilling this request.
    
    exception
    
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
        org.apache.catalina.connector.Response.getWriter(Response.java:662)
        org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:213)
        cn.itcast.response.ResponseDemo8.doGet(ResponseDemo8.java:27)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    note The full stack trace of the root cause is available in the Apache Tomcat/7.0.77 logs.
    这是一个常见异常,原因是代码段里同时使用了 response.getOutputStream(); 和 response.getWriter();
  • 相关阅读:
    redis深度理解底层锁原理
    深度完整的了解MySQL锁
    今天的文章很不一般
    利用h5来进行定位当前位置
    workerman(环境+初识)
    Nginx(防止压力测试的恶意攻击)
    Java Web框架——自己动手实现一个简化版的Spring IOC框架
    设计模式——策略模式
    数据库——深入理解MySQL事务
    缓存——Redis和Memcache的对比
  • 原文地址:https://www.cnblogs.com/z5337/p/6837559.html
Copyright © 2011-2022 走看看